在所有監控 Linux 系統性能的工具中,Linux 的 top 命令是最好的也是最知名的一個(htop 是其升級版)。top 命令提供了 Linux 系統運行中的進程的動態實時視圖。它能顯示系統的概覽信息和 Linux 內核當前管理的進程列表。它顯示了大量的系統信息,如 CPU 使用、記憶體使用、交... ...
Linux 基礎-查看進程命令 ps 和 top
1,使用 ps 命令找出 CPU 占用高的進程
ps
是 進程狀態 (process status)
的縮寫,它能顯示系統中活躍的/運行中的進程的信息。它提供了當前進程及其詳細信息,諸如用戶名、用戶 ID
、CPU
使用率、記憶體使用、進程啟動日期時間、命令名等等的快照。只列印命令名字而不是命令的絕對路徑,以運行下麵的格式 ps 命令:
~$ ps -eo pid,ppid,%mem,%cpu,comm --sort=-%cpu | head
運行結果如下:
上面命令語句的各部分參數解釋:
ps
:命令名字-e
:選擇所有進程-o
:自定義輸出格式–sort=-%cpu
:基於 CPU 使用率對輸出結果排序head
:顯示結果的前 10 行PID
:進程的 IDPPID
:父進程的 ID%MEM
:進程使用的 RAM 比例%CPU
:進程占用的 CPU 比例Command
:進程名字
2,通過 top 命令定位占用 cpu 高的進程
- 查看
cpu
占用最高進程(查看前3位):top
,然後按下M
(大寫M
)。 - 查看記憶體占用最高進程:
top
,然後按下P
(大寫P
)。 - 可視化查看所有用戶所有進程使用情況:
ps axf
。
在所有監控 Linux
系統性能的工具中,Linux
的 top
命令是最好的也是最知名的一個(htop
是其升級版)。top
命令提供了 Linux
系統運行中的進程的動態實時視圖。它能顯示系統的概覽信息和 Linux
內核當前管理的進程列表。它顯示了大量的系統信息,如 CPU
使用、記憶體使用、交換記憶體、運行的進程數、目前系統開機時間、系統負載、緩衝區大小、緩存大小、進程 PID
等等。預設情況下,top
命令的輸出結果按 CPU
占用進行排序,每 5
秒中更新一次結果。
ps -ef # 查看所有進程
top # 實時顯示進程狀態
Linux
系統下執行 top
命令得到以下結果(第一列為進程的 PID
,第二列為進程所屬用戶):
上圖各個參數的意義:
PID
:進程的IDUSER
:進程所有者PR
:進程的優先順序別,越小越優先被執行NInice
:值VIRT
:進程占用的虛擬記憶體RES
:進程占用的物理記憶體SHR
:進程使用的共用記憶體S
:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值為負數%CPU
:進程占用CPU的使用率%MEM
:進程使用的物理記憶體和總記憶體的百分比TIME+
:該進程啟動後占用的總的CPU時間,即占用CPU使用時間的累加值。COMMAND
:進程啟動命令名稱
通過上圖可以看出排在一行的進程 PID
2438占用 cpu
過高,定位到了進程 id
。如果只想觀察 進程PID
2438的 CPU
和記憶體以及負載情況,可以使用以下命令:
top -p 2438
結果如下:
還可以通過 top
命令定位問題進程中每個線程
占用 cpu
情況,如查看進程 PID
2438 的每一個線程占用 cpu 的情況,使用如下命令:
top -p 2438 -H
結果如下(單線程,所以只顯示一行):
3,htop 系統監控與進程管理軟體
與 top
只提供最消耗資源的進程列表不同,htop
提供所有進程的列表,並且使用彩色標識出處理器、swap
和記憶體狀態。可以通過 htop
查看單個進程的線程,然後按 <F2>
來進入 htop
的設置菜單。選擇“設置”欄下麵的“顯示選項”,然後開啟“樹狀視圖”和“顯示自定義線程名”選項。按 <F10>
退出設置。