top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。top顯示系統(tǒng)當(dāng)前的進(jìn)程和其他狀況,是一個(gè)動(dòng)態(tài)顯示過程,可以自動(dòng)或者通過用戶按鍵來不斷刷新當(dāng)前狀態(tài)。如果在前臺(tái)執(zhí)行該命令,它將獨(dú)占前臺(tái),直到用戶終止該程序?yàn)橹?。比較準(zhǔn)確的說,top命令提供了實(shí)時(shí)的對(duì)系統(tǒng)處理器的狀態(tài)監(jiān)控,顯示系統(tǒng)中CPU最“敏感”的任務(wù)列表。top命令可以按CPU使用、內(nèi)存使用和執(zhí)行時(shí)間對(duì)任務(wù)進(jìn)行排序。而且該命令的很多特性都可以通過交互式命令或者在個(gè)人定制文件中進(jìn)行設(shè)定.。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、萍鄉(xiāng)ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的萍鄉(xiāng)網(wǎng)站制作公司
下面詳細(xì)介紹它的使用方法。
對(duì)于一個(gè)新手來說,如果從來沒有使用過top命令,在命令行模式下直接輸入top,可以查看到當(dāng)前所有進(jìn)程的信息。
輸出結(jié)果中,有很多指標(biāo)。下面介紹各個(gè)指標(biāo)都代表什么含義。
top命令輸出結(jié)果中,統(tǒng)計(jì)信息區(qū)前五行是系統(tǒng)整體的統(tǒng)計(jì)信息。
第一行是任務(wù)隊(duì)列信息,同 uptime 命令的執(zhí)行結(jié)果。其內(nèi)容如下:
第二、三行為進(jìn)程和CPU的信息。當(dāng)有多個(gè)CPU時(shí),這些內(nèi)容可能會(huì)超過兩行。內(nèi)容如下:
最后兩行為內(nèi)存信息。內(nèi)容如下:
進(jìn)程信息區(qū)統(tǒng)計(jì)信息區(qū)域的下方顯示了各個(gè)進(jìn)程的詳細(xì)信息。首先來認(rèn)識(shí)一下各列的含義。
默認(rèn)情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列??梢酝ㄟ^下面的快捷鍵來更改顯示內(nèi)容。
參考列表:
top命令通常用于動(dòng)態(tài)顯示進(jìn)程的變化信息,監(jiān)控Linux系統(tǒng)狀態(tài)。top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,跟windows下的資源管理器類似。
-d time:指定屏幕刷新時(shí)間的間隔,默認(rèn)為3秒;
-n NUM:設(shè)置循環(huán)顯示的次數(shù);
-p PID:指定要監(jiān)控的進(jìn)程ID;
-u USER|UID:按照給定的用戶名或UID顯示對(duì)應(yīng)用戶相關(guān)的進(jìn)程信息;
在使用top命令進(jìn)入其進(jìn)程的監(jiān)控界面后,可輸入一些交互指令來幫助對(duì)當(dāng)前顯示的信息進(jìn)行篩選,常見的交互指令有:
P:以占據(jù)CPU百分比排序;
M:以占據(jù)內(nèi)存百分比進(jìn)行排序;
T:以累積占用CPU時(shí)間進(jìn)行排序;
l:隱藏uptime信息;
t:隱藏tasks及CPU信息;
m:隱藏內(nèi)存信息;
s:修改刷新時(shí)間間隔;
k:終止指定的進(jìn)程;
top命令的信息輸出大致可以分為兩部分:
1、系統(tǒng)運(yùn)行的相關(guān)統(tǒng)計(jì)信息。
2、相關(guān)進(jìn)程的狀態(tài)及運(yùn)行信息。
其中系統(tǒng)運(yùn)行的相關(guān)統(tǒng)計(jì)信息,通常為top命令輸出信息的上面部分,如下圖:
其中每行代表的含義為:
第一行 :
第一行的輸出信息還可以通過uptime命令來進(jìn)程輸出:
第二行 :
第三行 :
第四行 :
第五行 :
total:交換分區(qū)的總量;
used:使用的交換分區(qū)總量;
free:空閑的交換分區(qū)總量;
cached:緩沖的交換分區(qū)總量;
而第二部分的top命令輸出如下圖所示:
從第一行往下的每一行都代表著一個(gè)進(jìn)程的運(yùn)行狀態(tài)信息,而第一行各字段的含義分別為:
top命令分為匯總區(qū)和任務(wù)明細(xì)區(qū)
當(dāng)前時(shí)間是15:39:37. 系統(tǒng)已經(jīng)運(yùn)行了90天,15個(gè)小時(shí),26分鐘。當(dāng)前有兩個(gè)活躍用戶
上下兩行以kb形式展示物理內(nèi)存和swap內(nèi)存的總計(jì),空閑(free), 已使用(total)的情況
其中buff/cache ,是在cpu讀寫硬盤數(shù)據(jù)時(shí),為了提速在內(nèi)存中開辟的緩沖(buffer針對(duì)寫)或緩存區(qū)域(cache針對(duì)讀)
avail mem 是創(chuàng)建新進(jìn)程時(shí),在不使用swap分區(qū)的情況下,能夠分配的內(nèi)存大小。這個(gè)大小可能比當(dāng)前的free還大,這是因?yàn)閎uff/cache中的內(nèi)存在創(chuàng)建進(jìn)程時(shí),若需要,也是可以搶占過來的。
總共有27個(gè)進(jìn)程,1個(gè)運(yùn)行,26的sleep中
load average后面的三組數(shù)字分別是1分鐘、5分鐘、15分鐘的工作負(fù)載情況。這里的Load指的出于R(runing)和D(Uninterruptible sleep)的兩種狀態(tài)下的進(jìn)程數(shù)
在單核cpu情況下。load average 為0.4的表示,其cpu利用率只有40%。 load average 為1,表示cpu利用率為100。load average 為2.12說明,cpu已經(jīng)超負(fù)荷112% (2.12減滿負(fù)荷1,即為超負(fù)荷部分)
在多核cpu的機(jī)器上,需要將以上的1,5,15的負(fù)載除以對(duì)應(yīng)的cpu核數(shù),才好評(píng)估對(duì)應(yīng)的cpu的負(fù)載情況
比如,這個(gè)cpu為40核的機(jī)器上,其cpu過去一分鐘的使用情況為:8.26/40=0.2065 ,說明cpu使用率只有20%
展示每個(gè)進(jìn)程的情況
在top名稱執(zhí)行后,按小k,可以進(jìn)入進(jìn)程殺死對(duì)話框
在后面輸入進(jìn)程號(hào),即可殺死進(jìn)程
在top命令下
按以下大寫字母,分別按不同的維度進(jìn)行排序
當(dāng)然你也可以在命令啟動(dòng)時(shí),直接對(duì)top加參數(shù)。比如以cpu使用情況排序
top命令默認(rèn)顯示的進(jìn)程的運(yùn)行情況,在top命令執(zhí)行后,按大寫的H,可進(jìn)入線程執(zhí)行情況頁面,再按一次H則會(huì)到進(jìn)程展示。或者在啟動(dòng)時(shí)對(duì)top加參數(shù) top -H
在top執(zhí)行后,按小c,則能夠展示進(jìn)程路徑,并且對(duì)內(nèi)核進(jìn)程的名稱(command列),加上方括號(hào)。再按c切換回去
當(dāng)然也可以在啟動(dòng)時(shí),加參數(shù) top -c
top執(zhí)行后按大V
在top啟動(dòng)后,按小寫u,在輸入框中輸入對(duì)應(yīng)的用戶名
或者在top啟動(dòng)時(shí),通過加參數(shù)來過濾用戶 top -u root
在top啟動(dòng)后,按大O,進(jìn)入過濾表達(dá)式的輸入框
表達(dá)式有以下幾種類型
輸入等號(hào)'=',清除filter表達(dá)式
在top命令下,按t或m來進(jìn)行進(jìn)度條顯示
首先基于 ps aux | grep processName 找到對(duì)應(yīng)進(jìn)程的pid
然后使用 top -c -p pid 方式單過濾查看該進(jìn)程的資源占用情況
top 命令是用來 動(dòng)態(tài)顯示 系統(tǒng)中進(jìn)程的命令。
演示:
在 top 命令的交互模式當(dāng)中可以執(zhí)行的命令:
執(zhí)行 top 命令查看結(jié)果:
top 命令的輸出內(nèi)容是動(dòng)態(tài)的,默認(rèn)每3秒刷新一次。
命令的輸出主要分為兩大部分:
第二部分輸出的內(nèi)容,主要是系統(tǒng)進(jìn)程信息。
這部分和ps命令的輸出比較類似,只是如果在終端中執(zhí)行top命令,不能看到所有的進(jìn)程,默認(rèn)是按cpu的占用率排序的,所以默認(rèn)只能看到cpu占比靠前的進(jìn)程。
例如:
進(jìn)入到 top 命令的交互界面,按“k”鍵,會(huì)提示輸入要?dú)⑺肋M(jìn)程的PID。
按兩次回車就可以殺死進(jìn)程指定進(jìn)程。(這種殺掉進(jìn)程的方式不常用)
下面我們以xinetd進(jìn)程為例:
按兩次回車嗎,xinetd進(jìn)程被kill掉了,等待3秒刷新。
如果在操作終端執(zhí)行 top 命令,并不能看到系統(tǒng)中所有的進(jìn)程,默認(rèn)看到的只是CPU占比靠前的進(jìn)程。如果我們想要看到所有的進(jìn)程,可以把 top 命令的結(jié)果重定向到文件當(dāng)中即可。
不過 top 命令是持續(xù)運(yùn)行的,這時(shí)就需要 -b 和 -n 選項(xiàng)了,具體命令如下: