top 命令主要用于查看進(jìn)程的相關(guān)信息,同時(shí)它也會(huì)提供系統(tǒng)平均負(fù)載,cpu 信息和內(nèi)存信息。下面的截圖展示了 top 命令默認(rèn)提供的信息:
創(chuàng)新互聯(lián)秉承實(shí)現(xiàn)全網(wǎng)價(jià)值營(yíng)銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站,小程序定制開發(fā),網(wǎng)頁設(shè)計(jì)制作,移動(dòng)網(wǎng)站建設(shè),成都全網(wǎng)營(yíng)銷推廣幫助傳統(tǒng)企業(yè)實(shí)現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級(jí)專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對(duì)客戶都以感恩的心態(tài)奉獻(xiàn)自己的專業(yè)和所長(zhǎng)。
系統(tǒng)平均負(fù)載
top 命令輸出中的第一行是系統(tǒng)的平均負(fù)載,這和 uptime 命令的輸出是一樣的:
13:05:49 表示系統(tǒng)當(dāng)前時(shí)間。
up 7 days 表示系統(tǒng)最后一次啟動(dòng)后總的運(yùn)行時(shí)間。
1 user 表示當(dāng)前系統(tǒng)中只有一個(gè)登錄用戶。
load average: 0.01, 0.04, 0.00 表示系統(tǒng)的平均負(fù)載,最后的三個(gè)數(shù)字分別表示最后一分鐘的系統(tǒng)平均負(fù)載,最后五分鐘的系統(tǒng)平均負(fù)載,最后十五分鐘的系統(tǒng)平均負(fù)載。
小寫字母 i 可以控制是否顯示系統(tǒng)平均負(fù)載信息。
任務(wù)信息匯總
在 linux 系統(tǒng)中,一般把進(jìn)程和線程統(tǒng)稱為任務(wù)。第二行信息是對(duì)當(dāng)前系統(tǒng)中所有任務(wù)的統(tǒng)計(jì):
Tasks:270 total 表示當(dāng)前系統(tǒng)的進(jìn)程總數(shù)。
1 running 表示當(dāng)前系統(tǒng)中有 1 個(gè)正在運(yùn)行的進(jìn)程。
269 sleeping 表示當(dāng)前系統(tǒng)中有 269 個(gè)休眠的進(jìn)程。
0 stopped 表示停止?fàn)顟B(tài)的進(jìn)程數(shù)為 0。
0 zombie 表示處于僵死狀態(tài)的進(jìn)程數(shù)為 0。
CPU 信息
第三行顯示 CPU 的使用情況:
這里一共有八個(gè)字段,是我們了解 CPU 負(fù)載的主要依據(jù),下面我們逐一介紹。
us
進(jìn)程在用戶地址空間中消耗 CPU 時(shí)間的百分比。像 shell程序、各種語言的編譯器、數(shù)據(jù)庫(kù)應(yīng)用、web 服務(wù)器和各種桌面應(yīng)用都算是運(yùn)行在用戶地址空間的進(jìn)程。這些程序如果不是處于 idle 狀態(tài),那么絕大多數(shù)的 CPU 時(shí)間都是運(yùn)行在用戶態(tài)。
sy
進(jìn)程在內(nèi)核地址空間中消耗 CPU 時(shí)間的百分比。所有進(jìn)程要使用的系統(tǒng)資源都是由 Linux 內(nèi)核處理的。當(dāng)處于用戶態(tài)(用戶地址空間)的進(jìn)程需要使用系統(tǒng)的資源時(shí),比如需要分配一些內(nèi)存、或是執(zhí)行 IO 操作、再或者是去創(chuàng)建一個(gè)子進(jìn)程,此時(shí)就會(huì)進(jìn)入內(nèi)核態(tài)(內(nèi)核地址空間)運(yùn)行。事實(shí)上,決定進(jìn)程在下一時(shí)刻是否會(huì)被運(yùn)行的進(jìn)程調(diào)度程序就運(yùn)行在內(nèi)核態(tài)。對(duì)于操作系統(tǒng)的設(shè)計(jì)來說,消耗在內(nèi)核態(tài)的時(shí)間應(yīng)該是越少越好。在實(shí)踐中有一類典型的情況會(huì)使 sy 變大,那就是大量的 IO 操作,因此在調(diào)查 IO 相關(guān)的問題時(shí)需要著重關(guān)注它。
ni
ni 是 nice 的縮寫,可以通過 nice 值調(diào)整進(jìn)程用戶態(tài)的優(yōu)先級(jí)。這里顯示的 ni 表示調(diào)整過 nice 值的進(jìn)程消耗掉的 CPU 時(shí)間。如果系統(tǒng)中沒有進(jìn)程被調(diào)整過 nice 值,那么 ni 就顯示為 0。
id
CPU 處于 idle 狀態(tài)的百分比。一般情況下, us + ni + id 應(yīng)該接近 100%。
wa
CPU 等待磁盤 IO 操作的時(shí)間。和 CPU 的處理速度相比,磁盤 IO 操作是非常慢的。有很多這樣的操作,比如:CPU 在啟動(dòng)一個(gè)磁盤讀寫操作后,需要等待磁盤讀寫操作的結(jié)果。在磁盤讀寫操作完成前,CPU 只能處于空閑狀態(tài)。Linux 系統(tǒng)在計(jì)算系統(tǒng)平均負(fù)載時(shí)會(huì)把 CPU 等待 IO 操作的時(shí)間也計(jì)算進(jìn)去,所以在我們看到系統(tǒng)平均負(fù)載過高時(shí),可以通過 wa 來判斷系統(tǒng)的性能瓶頸是不是過多的 IO 操作造成的。
hi & si
這兩個(gè)值表示系統(tǒng)處理中斷消耗的時(shí)間。中斷分為硬中斷和軟中斷,hi 表示處理硬中斷消耗的時(shí)間,si 表示處理軟中斷消耗的時(shí)間。硬中斷是硬盤、網(wǎng)卡等硬件設(shè)備發(fā)送給 CPU 的中斷消息,當(dāng) CPU 收到中斷消息后需要進(jìn)行適當(dāng)?shù)奶幚?消耗 CPU 時(shí)間)。軟中斷是由程序發(fā)出的中斷,最終也會(huì)執(zhí)行相應(yīng)的處理程序(消耗 CPU 時(shí)間)。
st
只有 Linux 在作為虛擬機(jī)運(yùn)行時(shí) st 才是有意義的。它表示虛機(jī)等待 CPU 資源的時(shí)間(虛機(jī)分到的是虛擬 CPU,當(dāng)需要真實(shí)的 CPU 時(shí),可能真實(shí)的 CPU 正在運(yùn)行其它虛機(jī)的任務(wù),所以需要等待)。
小寫字母 t 可以控制是否顯示任務(wù)信息匯總和 CPU 信息。沒錯(cuò),它能控制是否顯示兩行信息。
內(nèi)存信息
內(nèi)存信息包含兩行內(nèi)容,內(nèi)存和交換空間:
top 命令中這部分的輸出和 free 命令的輸出基本相同,筆者在《linux free 命令》一文已經(jīng)詳細(xì)介紹過,這里不再贅述。
控制顯示單位
top 命令默認(rèn)以 K 為單位顯示內(nèi)存大小,這讓人十分抓狂。好在我們可以通過大寫字母 E 來切換內(nèi)存信息區(qū)域的顯示單位(注意,E 不能控制任務(wù)區(qū)域中的內(nèi)存單位),下圖以 GB 顯示內(nèi)存大?。?/p>
小寫字母 m 可以控制是否顯示內(nèi)存信息。
任務(wù)詳情
內(nèi)存信息下面是一個(gè)空行(其實(shí)是與用戶交互的區(qū)域),空行的下面就是任務(wù)詳情區(qū)域:
默認(rèn)情況下這里會(huì)顯示 12 列數(shù)據(jù),都是我們比較關(guān)心的進(jìn)行相關(guān)的信息,下面我們一個(gè)一個(gè)的介紹。
PID 表示進(jìn)程 ID。
USER 表示進(jìn)程所有者的有效用戶名稱。簡(jiǎn)單說就是以哪個(gè)用戶權(quán)限啟動(dòng)的進(jìn)程。比如上圖中有兩個(gè)進(jìn)程是用戶 nick 啟動(dòng)的,還有一個(gè)是用戶 prometheus 啟動(dòng)的,其它都是 root 用戶啟動(dòng)的。
PR 表示進(jìn)程執(zhí)行的優(yōu)先級(jí),PR 的值是以 Linux 內(nèi)核的視角看到的進(jìn)程執(zhí)行的優(yōu)先級(jí)。
NI 從用戶視角看到的進(jìn)程執(zhí)行優(yōu)先級(jí)。注意上圖中 NI 值為 -20 的兩個(gè)進(jìn)程,它們的 PR 值都是 0。
VIRT 表示進(jìn)程使用的虛擬內(nèi)存大小。
RES 表示進(jìn)程使用的物理內(nèi)存大小。
SHR 表示進(jìn)程使用的共享內(nèi)存的大小。
S 表示進(jìn)程當(dāng)前的狀態(tài)。S 值有下面幾種:
D 不可中斷的睡眠狀態(tài)(uninterruptible sleep)
R 正在運(yùn)行的狀態(tài)(running)
S 睡眠狀態(tài)(sleeping)
T 跟蹤或停止?fàn)顟B(tài)(traced or stopped)
Z 僵尸狀態(tài)(zombie)
%CPU 表示進(jìn)程使用 CPU 的百分比。
%MEM 表示進(jìn)程使用內(nèi)存的百分比。
TIME+ 表示進(jìn)程累計(jì)使用的 CPU 時(shí)間。
COMMAND 表示運(yùn)行進(jìn)程對(duì)應(yīng)的程序。
一般情況下這些信息足夠了,但是如果你還想要更多的信息,你可以嘗試添加更多的列。按下小寫字母 f 可以進(jìn)入任務(wù)信息的配置界面:
在這里你可以選擇要顯示的列,并且可以配置以哪一列進(jìn)行排序。
顯示內(nèi)存大小的單位問題在任務(wù)詳情區(qū)域也同樣存在,默認(rèn)的單位也是 KB。要改變它的單位需要使用小寫字母 e 來進(jìn)行切換,比如我可以把它切換為以 MB 為單位:
這樣看起來就直觀多了!
top 是一個(gè)非常復(fù)雜的命令,上面介紹的內(nèi)容僅僅是一些皮毛而已。即便如此,你也可以用它來干不少的事情了!如果你想了解更多詳細(xì)的信息,請(qǐng)參考 top 的使用手冊(cè)。我們接下來介紹一些常見的用例。
顯示多個(gè) CPU 核心的詳細(xì)信息
無論系統(tǒng)中有多少個(gè) CPU 核心,默認(rèn)的 CPU 信息總是輸出一行,即所有核心加起來的綜合數(shù)據(jù)。能不能查看各個(gè) CPU 核心單獨(dú)的數(shù)據(jù)呢?答案是,可以的。按鍵盤上的數(shù)字 1 就可以在不同的視圖之間切換了:
以某列對(duì)進(jìn)程排序
按小寫字母 f 進(jìn)入排序設(shè)置界面,選擇某一列,按小寫 's' 指定排序,然后退出。
奇怪的是默認(rèn)主界面上并看不出是以哪列排序的!可以使用小寫字母 x 來粗體顯示當(dāng)前排序的列:
可以看到 %CPU 列的字體加粗了嗎?雖然不太明顯,但勉強(qiáng)可以看到了。
還有一些預(yù)定義的命令可以直接完成以某列排序的功能,比如大寫字母 M 以 %MEM 列排序;大寫字母 N 以 PID 列排序;大寫字母 P 以 %CPU 列排序;大寫字母 T 以 TIME+ 列排序。
M %MEM
N PID
P %CPU
T TIME+
反轉(zhuǎn)排序的結(jié)果是常見的需求,大寫字母 R 可以將當(dāng)期排序的結(jié)果反轉(zhuǎn)。
顯示進(jìn)程執(zhí)行的完整命令
默認(rèn) COMMAND 列只顯示程序的名字,并不包含程序的路徑。有時(shí)能夠看到程序的完整路徑是很方便的。你可以通過小寫字母 c 來切換 COMMAND 列的顯示模式:
不僅是程序的完整路徑,連啟動(dòng)程序的參數(shù)都顯示出來了!
隱藏 idle 的進(jìn)程
在我們調(diào)查問題時(shí),總希望以最快的方式找到繁忙的進(jìn)程。但是 top 命令會(huì)把所有的進(jìn)程列出,這就需要我們通過昏花的老眼去掃描一行行的進(jìn)程信息。還好,我們可以借助小寫字母 i 來控制是否顯示處于 idle 狀態(tài)的進(jìn)程!使用這個(gè)命令后你會(huì)發(fā)現(xiàn)世界好清爽啊!
只顯示某個(gè)用戶的進(jìn)程
如果你想查看以某個(gè)用戶權(quán)限啟動(dòng)的進(jìn)程,可以使用小寫字母 u 。這會(huì)提示你輸入用戶的名稱,在你輸入用戶名稱后,按回車鍵:
上圖中筆者輸入的用戶名為 nick,按回車鍵后就會(huì)過濾出所有以用戶 nick 權(quán)限啟動(dòng)的進(jìn)程。
top 命令的配置文件
top 命令是有配置文件的,也就是說你通過命令修改的配置都可以保存下來。保存配置的命令為大寫字母 W。在你修改了 top 命令的配置后按下大寫字母 W,然后退出 top 命令并再次執(zhí)行 top 命令,此時(shí)你的修改仍然在起作用。
幫助文檔
幫助文檔永遠(yuǎn)都是我們的好朋友,小寫字母 h 或者是 ? 可以打開 top 命令的幫助文檔。不要太驚奇,文檔有點(diǎn)長(zhǎng)喲!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
本文題目:linuxtop命令詳解
分享地址:http://m.newbst.com/article48/gdcihp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、小程序開發(fā)、自適應(yīng)網(wǎng)站、商城網(wǎng)站、用戶體驗(yàn)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)