Linux性能分析工具top命令详解
top命令是linux下常用的性能分析工具,能夠?qū)崟r的顯示系統(tǒng)中各個進程的資源占用情況,常用于服務(wù)端性能分析。
top命令說明:
top命令的結(jié)果分為兩部分:
?
統(tǒng)計信息:前五行是系統(tǒng)的整體統(tǒng)計信息。
進程信息:統(tǒng)計信息下方類似表格的區(qū)域顯示的是進程的詳細信息,默認5秒刷新一次。
?
統(tǒng)計信息說明:
第1行:top任務(wù)隊列信息(系統(tǒng)運行狀態(tài)及平均負載),與uptime命令結(jié)果相同。
? ? ? ? ? ? ?第一段:系統(tǒng)當前時間,例如:10:57:04
? ? ? ? ? ? ?第二段:系統(tǒng)運行時間,未重啟的時間,時間越長系統(tǒng)越穩(wěn)定。例如:up 778 days, 17:53;格式:up xx ? ? ? ? ? ? ? ? ? ?days, HH:mm
? ? ? ? ? ? ?第三段:登錄用戶數(shù),例如:3 users,表示當前有3個用戶登錄。
? ? ? ? ? ? ?第四段:系統(tǒng)負載,即任務(wù)隊列的平均長度,3個數(shù)值分別統(tǒng)計最近1、5、15分鐘的系統(tǒng)平均負載。
? ? ? ? ? ? ? ? ? ?系統(tǒng)平均負載:單核CPU情況下,0.00表示沒有任何負載,1.00表示剛好滿負荷,超過1表示超負 ? ? ? ? ? ? ? ? ? ?荷,理想值是0.7。
? ? ? ? ? ? ? ? ? ?多核CPU負載:CPU核數(shù)*0.7理想值=理想負荷,例如:8核CPU負載不超過5.6表示沒有出現(xiàn)高負 ? ? ? ? ? ? ? ? ? ? 載。
第2行:Tasks任務(wù)進程相關(guān)信息
? ? ? ? ? ? 第一段:進程總數(shù),405 total表示總共運行405個進程。
? ? ? ? ? ? 第二段:正在運行的進程數(shù),例如:1 running表示有一個正在運行的進程。
? ? ? ? ? ? 第三段:正在睡眠的進程數(shù),例如:404 sleeping。
? ? ? ? ? ? 第四段:停止的進程數(shù),例如:0 stopped。
? ? ? ? ? ? 第五段:僵尸進程數(shù),例如:0 zombile。
第3行:CPU相關(guān)信息,如果是多核CPU,按數(shù)字1可以顯示多核CPU信息,此時第一段將轉(zhuǎn)換為CPU核數(shù),數(shù)字1可以來回切換。
? ? ? ? ? ? 第一段:us用戶空間占用CPU百分比,例如:Cpu(s):5.8%us。
? ? ? ? ? ? 第二段:sy內(nèi)核空間占用CPU百分比,例如:1.2%sy。
? ? ? ? ? ? 第三段:ni用戶進程空間內(nèi)改變過優(yōu)先級的進程占用的百分比,例如:0.00%ni。
? ? ? ? ? ? 第四段:id空閑CPU百分比,例如:94.2%id。
? ? ? ? ? ? 第五段:wa等待輸入輸出的CPU時間百分比,例如:0.00%wa。
? ? ? ? ? ? 第六段:hi CPU服務(wù)于硬件中斷所耗費的時間總額,例如:0.0%hi。
? ? ? ? ? ? 第七段:si CPU服務(wù)軟中斷所耗費的時間總額,例如:0.0%si。
? ? ? ? ? ? 第八段:st Steal time 虛擬機被hypervisor偷去的CPU時間(如果當前處于一個hypervisor下的vm,實際上 ? ? ? ? ? ? ? ? ?hypervisor也是要消耗一部分CPU處理時間的)。
第4行:Mem 內(nèi)存相關(guān)信息(Mem: ?32815228k total, 32146340k used, ? 668888k free, ? ?73948k buffers)
? ? ? ? ? ? 第一段:物理內(nèi)存總量,例如:?32815228k total。
? ? ? ? ? ? 第二段:使用的物理內(nèi)存總量,例如:Mem: ?32815228k total。
? ? ? ? ? ? 第三段:空閑內(nèi)存總量,例如:668888k free。
? ? ? ? ? ? 第四段:用作內(nèi)核緩存的內(nèi)存量,例如:73948k buffers。
第5行:Swap 交換分區(qū)相關(guān)信息(Swap: ?8524272k total, ?7075992k used, ?1448280k free, ?7757408k cached)
? ? ? ? ? ? 第一段:交換區(qū)總量,例如:Swap: ?8524272k total。
? ? ? ? ? ? 第二段:使用交換區(qū)總量,例如:7075992k used。
? ? ? ? ? ? 第三段:空閑交換區(qū)總量,例如:1448280k free。
? ? ? ? ? ? 第四段:緩沖的交換區(qū)總量,例如:?7757408k cached。
?
進程信息說明:
在top命令中按f可以查看顯示的列信息,按對應(yīng)的字母來開啟或者關(guān)閉列,大寫字母表示開啟,小寫字母表示關(guān)閉,帶*號的標識默認列。
? ? ?* A: PID ? ? ? ?= Process Id(進程ID)
? ? ?* E: USER ? ? ? = User Name(進程所有者的用戶名)
? ? ?* H: PR ? ? ? ? = Priority(優(yōu)先級)
? ? ?* I: NI ? ? ? ? = Nice value(nice值,負值表示高優(yōu)先級,正值表示低優(yōu)先級)
? ? ?* O: VIRT ? ? ? = Virtual Image (kb)(進程使用的虛擬內(nèi)存總量,單位kb,VIRT=SWAP+RES)
? ? ?* Q: RES ? ? ? ?= Resident size (kb)(進程使用的,未被換出的物理內(nèi)存大小,單位kb,RES=CODE+DATA)
? ? ?* T: SHR ? ? ? ?= Shared Mem size (kb)(共享內(nèi)存大小,單位kb)
? ? ?* W: S ? ? ? ? ?= Process Status(進程狀態(tài),D=不可終端的進程狀態(tài),R=運行,S=睡眠,T=跟蹤/停止,Z=僵尸 ? ? ? ? ? ? ? ? ? ? 進程)
? ? ?* K: %CPU ? ? ? = CPU usage(上次更新到現(xiàn)在的CPU時間占用百分比)
? ? ?* N: %MEM ? ? ? = Memory usage (RES)(進程使用的物理內(nèi)存占用百分比)
? ? ?* M: TIME+ ? ? ?= CPU Time, hundredths(進程使用的CPU時間占比,單位1/100秒)
? ? ?b: PPID ? ? ? = Parent Process Pid(父進程ID)
? ?? c: RUSER ? ? ?= Real user name
? ? ?d: UID ? ? ? ?= User Id(進程的所有者的用戶ID)
? ?? f: GROUP ? ? ?= Group Name(進程所有者的組名)
? ?? g: TTY ? ? ? ?= Controlling Tty(啟動進程的終端名,不是從終端啟動的進程則顯示為?)
? ?? j: P ? ? ? ? ?= Last used cpu (SMP)(最后使用的CPU,僅在多CPU環(huán)境下有意義)
? ?? p: SWAP ? ? ? = Swapped size (kb)(進程使用的虛擬內(nèi)存中,被換出的大小,單位kb)
? ?? l: TIME ? ? ? = CPU Time(進程使用的CPU時間總計,單位秒)
? ?? r: CODE ? ? ? = Code size (kb)(可執(zhí)行代碼占用物理內(nèi)存大小,單位kb)
? ?? s: DATA ? ? ? = Data+Stack size (kb)(可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb)
? ?? u: nFLT ? ? ? = Page Fault count(頁面錯誤次數(shù))
? ?? v: nDRT ? ? ? = Dirty Pages count(最后一次寫入到現(xiàn)在,被修改過的頁面數(shù))
? ? ?y: WCHAN ? ? ?= Sleeping in Function(若該進程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名)
? ? ?z: Flags ? ? ?= Task Flags <sched.h>(任務(wù)標志)
? ? ?* X: COMMAND ? ?= Command name/line(命令名/命令行)
?
top命令選項
? ?-b:以批處理模式操作;
? ?-c:顯示完整的治命令;
? ?-d:屏幕刷新間隔時間;
? ?-I:忽略失效過程;
? ?-s:保密模式;
? ?-S:累積模式;
? ?-i<時間>:設(shè)置間隔時間;
? ?-u<用戶名>:指定用戶名;
? ?-p<進程號>:指定進程;
? ?-n<次數(shù)>:循環(huán)顯示的次數(shù)。
?
top命令交互
常用交互操作?
基礎(chǔ)操作?
? ?1:顯示CPU詳細信息,每核顯示一行
? ? ?d / s :修改刷新頻率,單位為秒
? ? ?h:可顯示幫助界面
? ? ?n:指定進程列表顯示行數(shù),默認為滿屏行數(shù)
? ? ?q:退出top
面板隱藏顯示?
? ? ?l:隱藏/顯示第1行負載信息;
? ? ?t:隱藏/顯示第2~3行CPU信息;
? ? ?m:隱藏/顯示第4~5行內(nèi)存信息;
進程列表排序?
? ? ?M:根據(jù)駐留內(nèi)存大小進行排序;
? ? ?P:根據(jù)CPU使用百分比大小進行排序;
? ? ?T:根據(jù)時間/累計時間進行排序;
詳細交互指令:h / ? 可顯示幫助界面,原始為英文版,簡單翻譯如下:
Help for Interactive Commands - procps version 3.2.8
Window 1:Def: Cumulative mode Off. ?System: Delay 3.0 secs; Secure mode Off.
? Z,B ? ? ? Global: 'Z' change color mappings; 'B' disable/enable bold
? ? ? ? ? ? Z:修改顏色配置;B:關(guān)閉/開啟粗體
? l,t,m ? ? Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
? ? ? ? ? ? l:隱藏/顯示第1行負載信息;t:隱藏/顯示第2~3行CPU信息;m:隱藏/顯示第4~5行內(nèi)存信息;
? 1,I ? ? ? Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode
? ? ? ? ? ? 1:單行/多行顯示CPU信息;I:Irix/Solaris模式切換
? f,o ? ? . Fields/Columns: 'f' add or remove; 'o' change display order
? ? ? ? ? ? f:列顯示控制;o:列排序控制,按字母進行調(diào)整
? F or O ?. Select sort field ?選擇排序列
? <,> ? ? . Move sort field: '<' next col left; '>' next col right 上下移動內(nèi)容
? R,H ? ? . Toggle: 'R' normal/reverse sort; 'H' show threads
? ? ? ? ? ? R:內(nèi)容排序;H:顯示線程
? c,i,S ? . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
? ? ? ? ? ? c:COMMAND列命令名稱與完整命令行路徑切換;i:忽略閑置和僵死進程開關(guān);S:累計模式切換
? x,y ? ? . Toggle highlights: 'x' sort field; 'y' running tasks
? ? ? ? ? ? x:列排序;y:運行任務(wù)
? z,b ? ? . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
? ? ? ? ? ? z:顏色模式;b:粗體開關(guān) 僅適用于x,y模式中
? u ? ? ? . Show specific user only 按用戶進行過濾,當輸入錯誤可按Ctrl + Backspace進行刪除
? n or # ?. Set maximum tasks displayed 設(shè)置進程最大顯示條數(shù)
? k,r ? ? ? Manipulate tasks: 'k' kill; 'r' renice
? ? ? ? ? ? k:終止一個進程;r:重新設(shè)置一個進程的優(yōu)先級別
? d or s ? ?Set update interval ?改變兩次刷新之間的延遲時間(單位為s),如果有小數(shù),就換算成ms。輸入0值則系統(tǒng)將不斷刷新,默認值是5s;
? W ? ? ? ? Write configuration file 將當前設(shè)置寫入~/.toprc文件中
? q ? ? ? ? Quit ? ? ? 退出
? ? ? ? ? ( commands shown with '.' require a visible task display window )
? ? ? ? ? ? 注意:帶.的命令需要一個可見的任務(wù)顯示窗口
Press 'h' or '?' for help with Windows, any other key to continue
總結(jié)
以上是生活随笔為你收集整理的Linux性能分析工具top命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山西财经大学计算机考研资料汇总
- 下一篇: fpga嵌入linux系统,基于FPGA