一、top命令 top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。 top顯示系統當前的進程和其他狀況,是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程式為止. 比較準 ...
一、top命令
top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源占用狀況,類似於Windows的任務管理器。
top顯示系統當前的進程和其他狀況,是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前臺執行該命令,它將獨占前臺,直到用戶終止該程式為止.
比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.記憶體使用和執行時間對任務進行排序;而且該命令的很多特性都可以通過互動式命令或者在個人定製文件中進行設定.
wang@wang:~/workpalce/git$ top top - 15:20:08 up 5:11, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 291 total, 1 running, 290 sleeping, 0 stopped, 0 zombie %Cpu(s): 2.1 us, 2.1 sy, 0.0 ni, 95.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2061712 total, 279984 free, 845504 used, 936224 buff/cache KiB Swap: 2094076 total, 2094076 free, 0 used. 925816 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1324 root 20 0 259472 67348 29672 S 12.6 3.3 2:34.22 Xorg 1856 wang 20 0 328808 112944 81768 S 4.7 5.5 2:42.80 compiz 3552 wang 20 0 154824 51544 40684 S 4.3 2.5 0:37.66 gnome-terminal- 7 root 20 0 0 0 0 S 1.0 0.0 0:24.70 rcu_sched 1289 mysql 20 0 573808 163916 17164 S 0.7 8.0 1:27.94 mysqld 2032 wang 20 0 53764 23568 21520 S 0.7 1.1 0:46.55 vmtoolsd 1022 root 20 0 25064 9432 7808 S 0.3 0.5 0:46.94 vmtoolsd 1331 root 20 0 136224 27212 22296 S 0.3 1.3 0:03.13 php-fpm7.0 1705 wang 20 0 119348 44812 23124 S 0.3 2.2 0:08.57 fcitx 2015 root 20 0 133740 28552 22628 S 0.3 1.4 0:02.77 apache2 2020 wang 20 0 65392 18824 16600 S 0.3 0.9 0:00.24 polkit-gnome-au 2145 zabbix 20 0 96464 4600 3008 S 0.3 0.2 0:04.84 zabbix_server 2186 zabbix 20 0 96464 5760 4168 S 0.3 0.3 0:12.76 zabbix_server 2191 zabbix 20 0 96464 1608 28 S 0.3 0.1 0:03.31 zabbix_server 2194 zabbix 20 0 96464 3936 2356 S 0.3 0.2 0:04.51 zabbix_server 5917 wang 20 0 9836 3580 2940 R 0.3 0.2 0:00.05 top 1 root 20 0 24132 5004 3592 S 0.0 0.2 0:07.48 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd
第一行是任務隊列信息:
15:20:08 當前時間 up 5:21 系統運行時間,格式為時:分 1 user 當前登錄用戶數 load average: 0.00, 0.00, 0.00 系統負載,即任務隊列的平均長度。三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
第二、三行為進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行:
total 進程總數 running 正在運行的進程數 sleeping 睡眠的進程數 stopped 停止的進程數 zombie 僵屍進程數 Cpu(s): 2.1% us 用戶空間占用CPU百分比 2.1% sy 內核空間占用CPU百分比 0.0% ni 用戶進程空間內改變過優先順序的進程占用CPU百分比 95.9% id 空閑CPU百分比 0.0% wa 等待輸入輸出的CPU時間百分比 0.0%hi: 硬體CPU中斷占用百分比 0.0%si: 軟中斷占用百分比 0.0%st: 虛擬機占用百分比
最後兩行為記憶體信息:
Mem:
2061712 total 物理記憶體總量
845504 used 使用的物理記憶體總量
279984 free 空閑記憶體總量
936224 buffers 用作內核緩存的記憶體量
Swap:
2094076 total 交換區總量
0k used 使用的交換區總量
2094076 free 空閑交換區總量
925816 cached 緩衝的交換區總量,記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在於記憶體中的交換區的大小,相應的記憶體再次被換出時可不必再對交換區寫入。
進程信息區統計信息區域的下方顯示了各個進程的詳細信息:
序號 列名 含義 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
常用操作:
top //每隔5秒顯式所有進程的資源占用情況 top -d 2 //每隔2秒顯式所有進程的資源占用情況 top -c //每隔5秒顯式進程的資源占用情況,並顯示進程的命令行參數(預設只有進程名) top -p 12345 -p 6789 //每隔5秒顯示pid是12345和pid是6789的兩個進程的資源占用情況 top -d 2 -c -p 123456 //每隔2秒顯示pid是12345的進程的資源使用情況,並顯式該進程啟動的命令行參數