top 命令
top 命令可以實時動態地查看系統的整體運行情況,是一個綜合了多方信息監測系統性能和運行信息的實用工具。通過 top 命令所提供的互動式界面,用熱鍵可以管理。
語法
top(選項)
選項
- -b:以批處理模式操作;
- -c:顯示完整的治命令;
- -d:屏幕刷新間隔時間;
- -I:忽略失效過程;
- -s:保密模式;
- -S:累積模式;
- -i<時間>:設置間隔時間;
- -u<用戶名>:指定用戶名;
- -p<進程號>:指定進程;
- -n<次數>:循環顯示的次數。
top 交互命令
在 top 命令執行過程中可以使用的一些交互命令。這些命令都是單字母的,如果在命令行中使用了 -s 選項, 其中一些命令可能會被屏蔽。
- h:顯示幫助畫面,給出一些簡短的命令總結說明;
- k:終止一個進程;
- i:忽略閒置和僵死進程,這是一個開關式命令;
- q:退出程序;
- r:重新安排一個進程的優先級別;
- S:切換到累計模式;
- s:改變兩次刷新之間的延遲時間(單位爲s),如果有小數,就換算成ms。輸入0值則系統將不斷刷新,默認值是5s;
- f或者F:從當前顯示中添加或者刪除項目;
- o或者O:改變顯示項目的順序;
- l:切換顯示平均負載和啓動時間信息;
- m:切換顯示內存信息;
- t:切換顯示進程和CPU狀態信息;
- c:切換顯示命令名稱和完整命令行;
- M:根據駐留內存大小進行排序;
- P:根據CPU使用百分比大小進行排序;
- T:根據時間/累計時間進行排序;
- w:將當前設置寫入~/.toprc文件中。
實例
輸出內容詳解
第一行;這行信息與uptime輸出的信息一樣;
- 11:35:56:系統當前時間;
- up 51 min:系統已運行時間;
- 1 user:當前連接系統的終端數;
- load average: 0.00, 0.01, 0.05:系統負載;後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況;如果平均負載值大於0.7*CPU內核數,就需要引起關注;
第二行;表示進程數信息;
- 87 total:總進程數;
- 3 running:正在運行的進程數;
- 84 sleeping:正在睡眠的進程數;
- 0 stopped:停止的進程數;
- 0 zombie:殭屍進程數;
第三行;表示CPU狀態信息;這裏顯示數據是所有CPU的平均值,如果想看每一個CPU的處理情況,按1即可;摺疊,再次按1;
- 0.7 us:用戶空間佔用CPU百分比;
- 0.3 sy:內核空間佔用CPU百分比;
- 0.0 ni:用戶進程空間內改變過優先級的進程佔用CPU百分比;
- 99.0 id:CPU空閒率;
- 0.0 wa:等待IO的CPU時間百分比;
- 0.0 hi:硬中斷(Hardware IRQ)佔用CPU的百分比;
- 0.0 si:軟中斷(Software Interrupts)佔用CPU的百分比;
- 0.0 st:這個虛擬機被hypervisor偷去的CPU時間(譯註:如果當前處於一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的);
第四行;物理內存使用信息;
- 1016476 total:物理內存總量;
- 522952 free:使用的物理內存總量;
- 276456 used:空閒內存總量;
- 217068 buff/cache:用作內核緩衝/緩存的內存量;
第五行;交換空間使用信息;我們要時刻監控交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了;
- 839676 total:交換區總量;
- 839676 free:交換區空閒量;
- 0 used:交換區使用量;
- 573936 avail Mem:可用於進程下一次分配的物理內存數量;
第六行;空行;
第七行;各個進程的狀態信息;
- PID:進程id;
- USER:進程所有者;
- PR:進程優先級;
- NI:nice值;越小優先級越高,最小-20,最大20(用戶設置最大19);
- VIRT:進程使用的虛擬內存總量,單位kb;VIRT=SWAP+RES;
- RES:進程使用的、未被換出的物理內存大小,單位kb;RES=CODE+DATA;
- SHR:共享內存大小,單位kb;
- S:進程狀態;D=不可中斷的睡眠狀態、R=運行、S=睡眠、T=跟蹤/停止、Z=殭屍進程;
- %CPU:上次更新到現在的CPU時間佔用百分比;
- %MEM:進程使用的物理內存百分比;
- TIME+:進程使用的CPU時間總計;
- COMMAND命令名/命令行。