日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
LinuxTop命令參數(shù)解析,提高系統(tǒng)管理效率(linuxtop命令參數(shù))

在Linux系統(tǒng)中,Top命令是一個(gè)常用的系統(tǒng)性能監(jiān)視工具。使用Top命令可以實(shí)時(shí)監(jiān)測Linux系統(tǒng)中各項(xiàng)資源的狀態(tài),包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等。Top命令的參數(shù)較多,掌握它們的含義并正確使用可以提高系統(tǒng)管理效率。下面將對(duì)Top命令的常用參數(shù)進(jìn)行介紹。

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元錦屏做網(wǎng)站,已為上家服務(wù),為錦屏各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

1. 顯示進(jìn)程列表

Top命令默認(rèn)顯示系統(tǒng)的進(jìn)程列表,并按照CPU占用率從高到低進(jìn)行排序。進(jìn)程列表中包括進(jìn)程ID、進(jìn)程名稱、用戶、CPU占用率、內(nèi)存占用率等信息。通過按下“P”鍵可以按照CPU占用率進(jìn)行排序,按下“M”鍵可以按照內(nèi)存占用率進(jìn)行排序。

2. 顯示特定用戶的進(jìn)程列表

如果需要查看特定用戶的進(jìn)程列表,可以使用“-U”參數(shù)。例如,輸入“top -U root”可以顯示root用戶的進(jìn)程列表。

3. 按CPU占用率進(jìn)行排序

使用Top命令最常用的參數(shù)之一就是按照CPU占用率進(jìn)行排序。通過按下“P”鍵可以實(shí)現(xiàn),也可以在命令行中添加“-o %CPU”參數(shù)進(jìn)行設(shè)置,例如“top -o %CPU”。

4. 顯示進(jìn)程的完整命令行

Top命令默認(rèn)只顯示進(jìn)程的名稱,如果需要查看進(jìn)程的完整命令行,可以在Top命令中按下“c”鍵。此外,也可以在命令行中添加“-c”參數(shù)進(jìn)行設(shè)置,例如“top -c”。

5. 顯示系統(tǒng)整體的CPU和內(nèi)存使用情況

除了顯示進(jìn)程列表外,Top命令還可以用來查看系統(tǒng)整體的CPU和內(nèi)存使用情況。在Top命令的頂部,可以看到CPU和內(nèi)存的使用情況,包括總量、已用量、空閑量等信息。

6. 設(shè)置刷新時(shí)間

Top命令的默認(rèn)刷新時(shí)間是3秒鐘。如果需要更改刷新時(shí)間,可以按下“d”鍵,然后在彈出的窗口中輸入所需的刷新時(shí)間,單位為秒。此外,也可以在命令行中添加“-d”參數(shù)進(jìn)行設(shè)置,例如“top -d 5”表示刷新時(shí)間為5秒。

7. 以批處理模式運(yùn)行Top命令

批處理模式是指將Top命令的輸出結(jié)果保存到文件中,而不是實(shí)時(shí)顯示在終端中。在命令行中添加“-b”參數(shù)即可將Top命令運(yùn)行在批處理模式下,例如“top -b > top.log”。

8. 顯示指定進(jìn)程的信息

如果需要查看單個(gè)進(jìn)程的詳細(xì)信息,可以在Top命令中輸入進(jìn)程的PID或者名稱,然后按下“Enter”鍵。此時(shí),Top命令會(huì)顯示該進(jìn)程的詳細(xì)信息,包括進(jìn)程狀態(tài)、線程數(shù)、CPU和內(nèi)存使用情況等。

Top命令是Linux系統(tǒng)中非常重要的一個(gè)工具,可以幫助管理員實(shí)時(shí)監(jiān)視系統(tǒng)資源的狀態(tài)。掌握Top命令的常用參數(shù)可以提高系統(tǒng)管理效率,縮短故障處理時(shí)間,從而提升整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。

相關(guān)問題拓展閱讀:

  • linux系統(tǒng)top給出的信息都有哪些

linux系統(tǒng)top給出的信息都有哪些

Linux新手,個(gè)人認(rèn)為首先就應(yīng)該了解納團(tuán)一下top命令各項(xiàng)的含義.

不用有事就問什么搜索引擎,先看看man top.

top – 16:12:56 up 1 day, 22 min, 4 users, load average: 0.02, 0.04, 0.05

Tasks: 158 total, 1 running, 156 sleeping, 0 stopped, 1 zombie

%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 98.8 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem:total,used,free,buffers

KiB Swap:total,used,free.cached Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

5761 eechen1076 R 6.2 0.2 0:00.01 top

16:12:56 up 1 day, 22 min, 4 users, load average: 0.02, 0.04, 0.05

這句等同于執(zhí)行 uptime 命令返回的內(nèi)容.

16:12:56 是當(dāng)前時(shí)間(date).

up 1 day, 22 min 表示系統(tǒng)已經(jīng)運(yùn)行1天又22分鐘(uptime -p).

4 users 表示當(dāng)前登錄系統(tǒng)的用戶(w,who).

load average 表示系統(tǒng)負(fù)載,分別是1分鐘,5分鐘,15分鐘前到現(xiàn)在的負(fù)載平均值.

Tasks: 158 total 表示系統(tǒng)的進(jìn)程數(shù)(數(shù)目等于ps -ef|wc -l的值減去2),按大寫H可以切換到線程模式.

running表示正在運(yùn)行的進(jìn)程,sleeping表示睡眠的進(jìn)程,stopped表示暫停的進(jìn)程,zombie表示已結(jié)束但還沒有從進(jìn)程表中刪除的僵尸進(jìn)程.

total表示總內(nèi)存,used表示已經(jīng)使用的內(nèi)存,free表示空閑的內(nèi)存,按E可以切換單位.

buffers(Buffer Cache)表示塊設(shè)備的讀寫緩沖區(qū)占用的內(nèi)存,cached(Page Cache)表示文件系統(tǒng)緩存占用的內(nèi)存.

buffers:塊設(shè)備緩沖 cached:文件系統(tǒng)緩存

如果cached的值很大,說明cache住的文件數(shù)很多.如果頻繁訪問到的文件都能被cache住,那么磁盤的讀I/O就非常小.

所謂塊設(shè)備是指對(duì)其信息的存取以”塊”為單位,如通常的光盤,硬磁盤,軟磁盤,磁帶等,塊長取512字節(jié)或1024字節(jié)或4096字節(jié).

塊設(shè)備可以直接通過塊設(shè)備特別文件來訪問,為了提高數(shù)據(jù)傳輸效率,塊設(shè)備驅(qū)動(dòng)程序內(nèi)部采用塊緩沖技術(shù).

Swap是交換空間,交換空間在物理內(nèi)存(RAM)被充滿時(shí)被使用.

如果系統(tǒng)需要更多的內(nèi)存資源,而物理內(nèi)存已經(jīng)充滿,內(nèi)存中不活躍的頁就會(huì)被移到交換空間去.

雖然交換空間可以為帶有少量內(nèi)存的機(jī)器提供幫助,但是這種方法不應(yīng)該宏茄慶被當(dāng)做是對(duì)內(nèi)存的取蔽握代.

交換空間位于硬盤驅(qū)動(dòng)器上,它比進(jìn)入物理內(nèi)存要慢.

load average的理解:

load average指的是處于task_running或task_uninterruptible狀態(tài)的進(jìn)程(或線程)數(shù)的平均值.

處于task_running狀態(tài)的進(jìn)程(或線程),可能正在使用CPU或排隊(duì)等待使用CPU.

處于task_uninterruptible狀態(tài)的進(jìn)程(或線程),可能正在等待I/O,比如等待磁盤I/O.這時(shí)I/O等待占用的CPU時(shí)間百分比iowait(wa)可能會(huì)比較高.

sudo strace -p `pidof top` 可見top從/proc讀取了很多信息.

man proc 查看 /proc/loadavg 的說明:

man proc | col -b > proc.txt

/proc/loadavg 內(nèi)容:

0.22 0.13 0.14 2/

0.22 0.13 0.14表示在過去的1分鐘,5分鐘,15分鐘,

正在運(yùn)行(task_running)或等待IO(task_uninterruptible)的任務(wù)的數(shù)量.

2/374中的2表示當(dāng)前運(yùn)行的線程數(shù),374則表示系統(tǒng)當(dāng)前存在的內(nèi)核調(diào)度實(shí)體(進(jìn)程/線程)的數(shù)量.

5306是系統(tǒng)最近創(chuàng)建的進(jìn)程PID編號(hào).

又比如:

load average: 31.09, 29.87, 29.92

表示在過去的1分鐘,5分鐘,15分鐘的時(shí)間里,CPU任務(wù)隊(duì)列中平均有30個(gè)程序(這里應(yīng)該是30個(gè)Java線程)在使用CPU.

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

root0.227t 0.012tS.:58 java

Java進(jìn)程的CPU使用率%CPU達(dá)到3090%,表示這個(gè)Java進(jìn)程正在使用31個(gè)CPU核心,

這樣對(duì)上了上面load average得出的數(shù)據(jù),也就是有30個(gè)左右的Java線程正在使用30個(gè)CPU核心.

按H(區(qū)分大小寫)切換到線程模式,因?yàn)橐粋€(gè)線程最多只能使用一個(gè)核心,所以線程模式下顯示的CPU使用率不會(huì)超過100%.

當(dāng)CPU和磁盤都忙不過來的時(shí)候,開再多的進(jìn)程也沒有任何意義,只會(huì)徒增CPU上下文切換和磁盤I/O等待,得不償失.

系統(tǒng)負(fù)載高,普遍是因?yàn)橄到y(tǒng)進(jìn)程數(shù)太多,I/O太多導(dǎo)致的.

load average小于1表示系統(tǒng)空閑,大于1表示系統(tǒng)開始繁忙.

Linux服務(wù)器的任務(wù)(進(jìn)程)數(shù)量保持在200個(gè)以下是比較好的,更好不要超過300個(gè).

us, user : time running un-niced user processes 用戶空間進(jìn)程占用CPU時(shí)間百分比

sy, system : time running kernel processes 內(nèi)核進(jìn)程占用CPU時(shí)間百分比

ni, nice : time running niced user processes 用戶空間內(nèi)改變過優(yōu)先級(jí)的進(jìn)程占用CPU時(shí)間百分比

id, idle : time spent in the kernel idle handler 空閑CPU時(shí)間百分比(100%表示系統(tǒng)完全空閑)

wa, iowait : time waiting for I/O completion I/O等待占用的CPU時(shí)間百分比

hi : time spent servicing hardware interrupts 硬件中斷占用CPU時(shí)間百分比

si : time spent servicing software interrupts 軟件中斷占用CPU時(shí)間百分比

st : time stolen from this vm by the hypervisor 虛擬化hypervisor從當(dāng)前虛擬機(jī)vm偷走的時(shí)間

如果st這個(gè)值很高的話,說明你的VPS提供商的CPU資源有限,而你沒能搶過別人,很有可能就是VPS提供商超售了.

按F選擇要顯示的列和查看每列的含義,默認(rèn)有下面這些列:

PID = Process Id

USER = Effective User Name

PR = Priority PR和NI的值越高越友好即越不競爭資源,比如PR 20和NI 0,另外,PR=NI+20.

NI = Nice Value 負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí),比如kworker的NI為-20,PR為0.

VIRT = Virtual Image (KiB)

RES = Resident Size (KiB) 常駐內(nèi)存,按E切換單位.

SHR = Shared Memory (KiB)

S= Process Status

%CPU = CPU Usage 四核處理器在Tasks模式下滿載為400%,在Threads模式(按H切換)下滿載為100%(一個(gè)線程最多只能使用一個(gè)核心).按Shift+P按CPU使用率排序.

%MEM = Memory Usage (RES) 滿載為100%,按Shift+M按RES內(nèi)存排序.

TIME+ = CPU Time, hundredths 進(jìn)程使用的CPU時(shí)間總計(jì).比如2:32.45代表2分鐘32.45秒.

COMMAND = Command Name/Line

按F進(jìn)入域管理窗口后按A可以切換顯示模式,按空格選中要顯示的列,按S按指定列排序,用向右方向鍵選中列后可以調(diào)整順序.修改后按Shift+W保存設(shè)置到~/.toprc文件.

top里面按Shift+M是按內(nèi)存排序,按E是切換內(nèi)存單位,按Shfit+W保存設(shè)置.

然后執(zhí)行top -n1 -b可以看到按內(nèi)存排序的所有進(jìn)程的信息.

或者ps后用sort排序:

ps aux | sort -k4nr | head -n5

top里按C或者使用-c參數(shù)可以看到進(jìn)程的絕對(duì)路徑和啟動(dòng)參數(shù),就可以得到類似ps -ef和ps aux提供的信息了.

看進(jìn)程路徑: top -p `pidof firefox` -c -n1

看進(jìn)程線程: top -p `pidof firefox` -H -n1

Linux Process Status:

R (task_running) : 可執(zhí)行狀態(tài)

S (task_interruptible): 可中斷的睡眠狀態(tài)

D (task_uninterruptible): 不可中斷的睡眠狀態(tài)

T (task_stopped or task_traced): 暫停狀態(tài)或跟蹤狀態(tài)

Z (task_dead – exit_zombie): 退出狀態(tài),進(jìn)程成為僵尸進(jìn)程

X (task_dead – exit_dead): 退出狀態(tài),進(jìn)程即將被銷毀

running進(jìn)程:

只有在該狀態(tài)的進(jìn)程才可能在CPU上運(yùn)行。

而同一時(shí)刻可能有多個(gè)進(jìn)程處于可執(zhí)行狀態(tài),這些進(jìn)程的task_struct結(jié)構(gòu)(進(jìn)程控制塊)被放入對(duì)應(yīng)CPU的可執(zhí)行隊(duì)列中(一個(gè)進(jìn)程最多只能出現(xiàn)在一個(gè)CPU的可執(zhí)行隊(duì)列中)。

進(jìn)程調(diào)度器的任務(wù)就是從各個(gè)CPU的可執(zhí)行隊(duì)列中分別選擇一個(gè)進(jìn)程在該CPU上運(yùn)行。

很多操作系統(tǒng)教科書將正在CPU上執(zhí)行的進(jìn)程定義為RUNNING狀態(tài)、而將可執(zhí)行但是尚未被調(diào)度執(zhí)行的進(jìn)程定義為READY狀態(tài),這兩種狀態(tài)在Linux下統(tǒng)一為TASK_RUNNING狀態(tài)。

sleeping進(jìn)程:

處于這個(gè)狀態(tài)的進(jìn)程因?yàn)榈却衬呈录陌l(fā)生(比如等待socket連接、等待信號(hào)量),而被掛起。

這些進(jìn)程的task_struct結(jié)構(gòu)被放入對(duì)應(yīng)事件的等待隊(duì)列中。當(dāng)這些事件發(fā)生時(shí)(由外部中斷觸發(fā)、或由其他進(jìn)程觸發(fā)),對(duì)應(yīng)的等待隊(duì)列中的一個(gè)或多個(gè)進(jìn)程將被喚醒。

通過ps命令我們會(huì)看到,一般情況下,進(jìn)程列表中的絕大多數(shù)進(jìn)程都處于task_interruptible狀態(tài)(除非機(jī)器的負(fù)載很高)。

畢竟CPU就這么一兩個(gè),進(jìn)程動(dòng)輒幾十上百個(gè),如果不是絕大多數(shù)進(jìn)程都在睡眠,CPU又怎么響應(yīng)得過來。

stopped進(jìn)程:

向進(jìn)程發(fā)送一個(gè)sigstop信號(hào),它就會(huì)因響應(yīng)該信號(hào)而進(jìn)入task_stopped狀態(tài),除非該進(jìn)程本身處于task_uninterruptible狀態(tài)而不響應(yīng)信號(hào)。

sigstop與sigkill信號(hào)一樣,是非常強(qiáng)制的。不允許用戶進(jìn)程通過signal系列的系統(tǒng)調(diào)用重新設(shè)置對(duì)應(yīng)的信號(hào)處理函數(shù)。

向進(jìn)程發(fā)送一個(gè)sigcont信號(hào),可以讓其從task_stopped狀態(tài)恢復(fù)到task_running狀態(tài)。

當(dāng)進(jìn)程正在被跟蹤時(shí),它處于task_traced這個(gè)特殊的狀態(tài)?!罢诒桓櫋敝傅氖沁M(jìn)程暫停下來,等待跟蹤它的進(jìn)程對(duì)它進(jìn)行操作。

比如在gdb中對(duì)被跟蹤的進(jìn)程下一個(gè)斷點(diǎn),進(jìn)程在斷點(diǎn)處停下來的時(shí)候就處于task_traced狀態(tài)。而在其他時(shí)候,被跟蹤的進(jìn)程還是處于前面提到的那些狀態(tài)。

對(duì)于進(jìn)程本身來說,task_stopped和task_traced狀態(tài)很類似,都是表示進(jìn)程暫停下來。

而task_traced狀態(tài)相當(dāng)于在task_stopped之上多了一層保護(hù),處于task_traced狀態(tài)的進(jìn)程不能響應(yīng)sigcont信號(hào)而被喚醒。

只能等到調(diào)試進(jìn)程通過ptrace系統(tǒng)調(diào)用執(zhí)行ptrace_cont、ptrace_detach等操作(通過ptrace系統(tǒng)調(diào)用的參數(shù)指定操作),或調(diào)試進(jìn)程退出,被調(diào)試的進(jìn)程才能恢復(fù)task_running狀態(tài)。

zombie進(jìn)程:

在Linux進(jìn)程的狀態(tài)中,僵尸進(jìn)程是非常特殊的一種,它是已經(jīng)結(jié)束了的進(jìn)程,但是沒有從進(jìn)程表中刪除。

太多了會(huì)導(dǎo)致進(jìn)程表里面條目滿了,進(jìn)而導(dǎo)致系統(tǒng)崩潰,倒是不占用其他系統(tǒng)資源。

它已經(jīng)放棄了幾乎所有內(nèi)存空間,沒有任何可執(zhí)行代碼,也不能被調(diào)度,

僅僅在進(jìn)程列表中保留一個(gè)位置,記載該進(jìn)程的退出狀態(tài)等信息供其他進(jìn)程收集,除此之外,僵尸進(jìn)程不再占有任何內(nèi)存空間。

進(jìn)程在退出的過程中,處于TASK_DEAD狀態(tài)。在這個(gè)退出過程中,進(jìn)程占有的所有資源將被回收,除了task_struct結(jié)構(gòu)(以及少數(shù)資源)以外。

于是進(jìn)程就只剩下task_struct這么個(gè)空殼,故稱為僵尸。

之所以保留task_struct,是因?yàn)閠ask_struct里面保存了進(jìn)程的退出碼、以及一些統(tǒng)計(jì)信息。

而其父進(jìn)程很可能會(huì)關(guān)心這些信息。比如在shell中,$?變量就保存了最后一個(gè)退出的前臺(tái)進(jìn)程的退出碼,而這個(gè)退出碼往往被作為if語句的判斷條件。

當(dāng)然,內(nèi)核也可以將這些信息保存在別的地方,而將task_struct結(jié)構(gòu)釋放掉,以節(jié)省一些空間。

但是使用task_struct結(jié)構(gòu)更為方便,因?yàn)樵趦?nèi)核中已經(jīng)建立了從pid到task_struct查找關(guān)系,還有進(jìn)程間的父子關(guān)系。

釋放掉task_struct,則需要建立一些新的數(shù)據(jù)結(jié)構(gòu),以便讓父進(jìn)程找到它的子進(jìn)程的退出信息。

子進(jìn)程在退出的過程中,內(nèi)核會(huì)給其父進(jìn)程發(fā)送一個(gè)信號(hào),通知父進(jìn)程來“收尸”。

父進(jìn)程可以通過wait系列的系統(tǒng)調(diào)用(如wait4、waitid)來等待某個(gè)或某些子進(jìn)程的退出,并獲取它的退出信息。

然后wait系列的系統(tǒng)調(diào)用會(huì)順便將子進(jìn)程的尸體(task_struct)也釋放掉。

這個(gè)信號(hào)默認(rèn)是SIGCHLD,但是在通過clone系統(tǒng)調(diào)用創(chuàng)建子進(jìn)程時(shí),可以設(shè)置這個(gè)信號(hào)。

如果他的父進(jìn)程沒安裝SIGCHLD信號(hào)處理函數(shù)調(diào)用wait或waitpid()等待子進(jìn)程結(jié)束,又沒有顯式忽略該信號(hào),那么它就一直保持僵尸狀態(tài),子進(jìn)程的尸體(task_struct)也就無法釋放掉。

如果這時(shí)父進(jìn)程結(jié)束了,那么init進(jìn)程自動(dòng)會(huì)接手這個(gè)子進(jìn)程,為它收尸,它還是能被清除的。

但是如果如果父進(jìn)程是一個(gè)循環(huán),不會(huì)結(jié)束,那么子進(jìn)程就會(huì)一直保持僵尸狀態(tài),這就是為什么系統(tǒng)中有時(shí)會(huì)有很多的僵尸進(jìn)程。

當(dāng)進(jìn)程退出的時(shí)候,會(huì)將它的所有子進(jìn)程都托管給別的進(jìn)程(使之成為別的進(jìn)程的子進(jìn)程)。

托管的進(jìn)程可能是退出進(jìn)程所在進(jìn)程組的下一個(gè)進(jìn)程(如果存在的話),或者是1號(hào)進(jìn)程。

所以每個(gè)進(jìn)程、每時(shí)每刻都有父進(jìn)程存在。除非它是1號(hào)進(jìn)程。1號(hào)進(jìn)程,pid為1的進(jìn)程,又稱init進(jìn)程。

Linux系統(tǒng)啟動(dòng)后,之一個(gè)被創(chuàng)建的用戶態(tài)進(jìn)程就是init進(jìn)程。它有兩項(xiàng)使命:

1、執(zhí)行系統(tǒng)初始化腳本,創(chuàng)建一系列的進(jìn)程(它們都是init進(jìn)程的子孫);

2、在一個(gè)死循環(huán)中等待其子進(jìn)程的退出事件,并調(diào)用waitid系統(tǒng)調(diào)用來完成“收尸”工作;

init進(jìn)程不會(huì)被暫停、也不會(huì)被殺死(這是由內(nèi)核來保證的)。它在等待子進(jìn)程退出的過程中處于task_interruptible狀態(tài),“收尸”過程中則處于task_running狀態(tài)。

關(guān)于linux top命令參數(shù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792


本文名稱:LinuxTop命令參數(shù)解析,提高系統(tǒng)管理效率(linuxtop命令參數(shù))
URL網(wǎng)址:http://m.5511xx.com/article/djescjh.html