top命令默認在一個特定間隔(3秒)後刷新顯示。要手動刷新,用戶能夠輸入回車或者空格。java
top - 18:32:45 up 230 days, 2:01, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st Mem: 3974188k total, 2811108k used, 1163080k free, 144292k buffers Swap: 2097148k total, 46184k used, 2050964k free, 595092k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 4478 root 20 0 3760m 669m 7808 S 1.3 17.2 195:53.36 java 7488 root 20 0 4799m 1.0g 13m S 1.0 26.0 30:55.04 java 25690 root 20 0 3428m 95m 5104 S 0.7 2.5 2156:22 java 24582 bo.wang 20 0 15024 1304 1004 R 0.3 0.0 0:00.15 top 25741 root 20 0 3432m 109m 3404 S 0.3 2.8 2482:59 java 1 root 20 0 19232 220 84 S 0.0 0.0 0:01.07 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 1:06.49 migration/0 4 root 20 0 0 0 0 S 0.0 0.0 6:10.11 ksoftirqd/0 5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/0 6 root RT 0 0 0 0 S 0.0 0.0 0:49.52 watchdog/0 7 root RT 0 0 0 0 S 0.0 0.0 1:14.84 migration/1 8 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper/1 9 root 20 0 0 0 0 S 0.0 0.0 5:03.11 ksoftirqd/1 10 root RT 0 0 0 0 S 0.0 0.0 0:43.21 watchdog/1 11 root 20 0 0 0 0 S 0.0 0.0 25:15.13 events/0 12 root 20 0 0 0 0 S 0.0 0.0 27:57.65 events/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/0 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events/1 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/0 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long/1 17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef 18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef
前五行顯示的是統計信息。緩存
top - 18:32:45 up 230 days, 2:01, 1 user, load average: 0.00, 0.00, 0.00
同 uptime 命令的執行結果同樣,uptime 命令執行結果:安全
[bo.wang@l-zcgtest1 ~]$ uptime
18:45:02 up 230 days, 2:14, 1 user, load average: 0.00, 0.00, 0.00
(1)18:45:02 當前時間網絡
(2)up 230 days, 2:14, 系統連續運行時間tcp
(3)1 user, 當前登陸用戶數函數
(4)load average: 0.00, 0.00, 0.00 系統負載,即任務隊列的平均長度。 三個數值分別爲 1分鐘、5分鐘、15分鐘前到當前時刻的平均值。工具
Tasks: 93 total, 1 running, 92 sleeping, 0 stopped, 0 zombie
(1)total 進程總數spa
(2)running 正在運行的進程數命令行
(3)sleeping 睡眠的進程數線程
(4)stopped 中止的進程數
(5)zombie 殭屍進程數
Cpu(s): 0.8%us, 0.5%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st
(1)0.8%us 用戶空間佔用CPU百分比
(2)0.5%sy 內核(系統)空間佔用CPU百分比
(3)0.0%ni 用戶進程空間內改變過優先級的進程佔用CPU百分比
(4)98.5%id 空閒CPU百分比
(5)0.0%wa 等待輸入輸出的CPU時間百分比
(6)0.0%hi 硬件CPU中斷佔用百分比
(7)0.0%si 軟中斷佔用百分比
(8)0.2%st 虛擬機佔用百分比
Mem: 3974188k total, 2811108k used, 1163080k free, 144292k buffers
(1)total 物理內存總量
(2)used 使用的物理內存總量
(3)free 空閒內存總量
(4)buffers 用做內核緩存的內存量
Swap: 2097148k total, 46184k used, 2050964k free, 595092k cached
(1)total 交換區總量
(2)used 使用的交換區總量
(3)free 空閒交換區總量
(4)cached 緩衝的交換區總量
空閒內存 = 空閒內存總量free + 內核緩存的內存量 buffers + 緩衝的交換區總量cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
各列含義以下:
序號 列名 含義 a PID 進程id b PPID 父進程id c RUSER Real user name d UID 進程全部者的用戶id e USER 進程全部者的用戶名 f GROUP 進程全部者的組名 g TTY 啓動進程的終端名。不是從終端啓動的進程則顯示爲 ? h PR 優先級 i NI nice值。負值表示高優先級,正值表示低優先級 j P 最後使用的CPU,僅在多CPU環境下有意義 k %CPU 上次更新到如今的CPU時間佔用百分比 l TIME 進程使用的CPU時間總計,單位秒 m TIME+ 進程使用的CPU時間總計,單位1/100秒 n %MEM 進程使用的物理內存百分比 o VIRT 虛擬內存。進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES p SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。 q RES 常駐內存。進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA r CODE 可執行代碼佔用的物理內存大小,單位kb s DATA 可執行代碼之外的部分(數據段+棧)佔用的物理內存大小,單位kb t SHR 共享內存。單位kb u nFLT 頁面錯誤次數 v nDRT 最後一次寫入到如今,被修改過的頁面數。 w S 進程狀態(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/中止,Z=殭屍進程) x COMMAND 命令名/命令行 y WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名 z Flags 任務標誌,參考 sched.h
備註:默認狀況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。能夠經過下面的快捷鍵來更改顯示內容
top工具備兩種使用方法:
命令行加選項。其語法格式:top [選項]
top工具的內置命令或交互命令的使用
(1)-d n 指定每兩次屏幕信息刷新之間的時間間隔。n 爲具體的秒數。
(2)-p pid 經過指定監控進程ID來僅僅監控某個進程的狀態。pid 爲具體進程ID。 若是是多個進程,只要$ top -p pid1,pid2,pid3
(3)-q 該選項將使top沒有任何延遲的進行刷新。若是調用程序有超級用戶權限,那麼top將以儘量高的優先級運行。
(4)-S 指定累計模式
(5)-s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
(6)-i 使top界面不顯示任何閒置或者僵死進程。只顯示運行中的線程。
(7)-c COMMAND 選項顯示整個命令行而不僅是顯示命令名。
(8)-b top顯示的時候,將每一次顯示的結果都打印出來,不會將上一次的結果給沖掉
(9)-u username 顯示某個用戶的進程信息,username 爲具體用戶名,好比 root。
(10)-H 顯示線程的信息,不顯示進程信息。
(3)A: 根據單窗口切換成多窗口,能夠看到四個不一樣的窗口,能夠經過a或者w來切換多個窗口。 四個窗口的名字分別爲:Def,Job,Mem,Usr。
(1)f : 進入一個動態配置top的界面中,按a-z便可顯示或隱藏指定的列,按 Esc 或 Enter 均可保存並退回到 top 信息。
(2)o: 進入一個動態配置top的界面中, 能夠改變列的顯示順序,按小寫的 a-z 能夠將相應的列向右移動,而大寫的 A-Z 能夠將相應的列向左移動。按 Esc 或 Enter 均可保存並退回到 top 信息。
(3)R: top界面第一列數據進行倒序排列。
(4)k : 終止一個進程。系統將提示用戶輸入須要終止的進程PID,以及須要發送給該進程什麼樣的信號。通常的終止進程可使用15信號;若是不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被屏蔽。
(5)i: 隱藏閒置和僵死進程。這是一個開關式命令。
(6)q: 退出top程序,Ctrl + C 也能夠退出。
(7)S: 切換到累計模式。
(8)s : 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位爲s。若是有小數,就換算成ms。輸入0值則系統將不斷刷新,默認值是5 s。須要注意的是若是設置過小的時間,極可能會引發不斷刷新,從而根原本不及看清顯示的狀況,並且系統負載也會大大增長。
(9)r: 從新安排一個進程的優先級別。系統提示用戶輸入須要改變的進程PID以及須要設置的進程優先級值。輸入一個正值將使優先級下降,反之則可使該進程擁有更高的優先權。默認值是10。
(10)l:切換顯示平均負載和啓動時間信息。即顯示隱藏第一行。
(11)m: 切換顯示內存信息。即顯示隱藏內存行。
(12)t : 切換顯示進程和CPU狀態信息。即顯示隱藏CPU行。
(13)c: 切換顯示命令名稱和完整命令行。 顯示完整的命令。 這個功能頗有用。
(14)M : 根據駐留內存大小RES進行從大到小排序。
(15)P: 根據CPU使用百分比大小%CPU進行從高到底排序。
(16)T: 根據時間/累計時間TIME+進行從多到少排序。
(17)W: 將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法
(18)h或者? 顯示幫助畫面,給出一些簡短的命令總結說明,按 Esc 或 Enter 均可退回到 top 信息。
(19)1:在第三行顯示多核CPU信息。
(1)監控Java線程數
ps -eLf | grep java | wc -l
java能夠換成 COMMAND 中的程序名,來監控指定程序的線程名。
(2)監控網絡客戶鏈接數
netstat -n | grep tcp | grep 3306 | wc -l
3306 是MySQL的端口,能夠換成須要監控的其餘接口。
(3)進程中運行的線程數量
ls /proc/PID/task | wc -l
PID 是你想查看的進程號。通常top界面第一列就是PID。
(4)輸出進程內存的情況,能夠用來分析線程堆棧
pmap PID
PID 是你想查看的進程號。通常top界面第一列就是PID。
(5)CPU佔用最多的前10個進程
ps auxw|head -1;ps auxw|sort -rn -k3|head -10
(6)內存消耗最多的前10個進程
ps auxw|head -1;ps auxw|sort -rn -k4|head -10
(7)虛擬內存使用最多的前10個進程
ps auxw|head -1;ps auxw|sort -rn -k5|head -10