在Linux系統中,查詢佔用CPU最高的程序通常有以下幾種方法:
1. 使用top
命令
top
命令提供了一個實時的、動態重新整理的系統資源使用情況檢視,其中包括CPU使用率最高的程序。
top
執行後,螢幕頂部會顯示系統整體CPU使用情況,下方則列出各個正在執行的程序及其資源佔用情況。預設情況下,程序列表按照CPU使用率(%CPU)降序排列,即最上方的程序是當前佔用CPU最高的。
- 按
Shift
+P
(或Shift
+O
)可以手動按CPU使用率對程序列表進行降序排序。 - 按
q
退出top
命令。
2. 使用htop
命令
htop
是top
的增強版,提供了更友好的彩色介面和更多互動功能。若已安裝htop
,可以使用以下命令:
htop
同樣,htop
會預設按CPU使用率降序排列程序列表。可以透過滑鼠或鍵盤導航檢視和排序程序。
3. 使用ps
命令結合sort
和head
命令
ps
命令可以列出系統中的程序狀態,結合sort
命令按CPU使用率排序,再用head
命令顯示佔用CPU最多的程序。
ps -eo pid,%cpu,cmd --sort=-%cpu | head -n 5
解釋:
ps -eo pid,%cpu,cmd
:列出程序ID(pid
)、CPU使用率(%cpu
)和命令列(cmd
)。--sort=-%cpu
:按CPU使用率降序排序(-
表示降序)。head -n 5
:僅顯示前5個程序,即佔用CPU最高的前5個程序。您可以根據需要更改數字5
。
4. 使用pgrep
與ps
聯合查詢
如果您知道要查詢的程序的一部分名稱,可以使用pgrep
找到匹配的程序ID,再用ps
查詢其詳細資訊:
pgrep -f "partial_process_name" | xargs ps -p -o %cpu,cmd
解釋:
pgrep -f "partial_process_name"
:查詢包含partial_process_name
的程序ID。xargs ps -p -o %cpu,cmd
:將pgrep
找到的程序ID作為引數傳遞給ps
,查詢這些程序的CPU使用率(%cpu
)和命令列(cmd
)。
5. 使用psutil
庫(Python指令碼)
如果您熟悉Python,可以使用第三方庫psutil
編寫指令碼來獲取CPU使用率最高的程序:
import psutil
for proc in sorted(psutil.process_iter(['pid', 'name', 'cpu_percent']), key=lambda p: p.info['cpu_percent'], reverse=True):
print(f"{proc.info['pid']} {proc.info['name']} {proc.info['cpu_percent']:.2f}%")
執行此指令碼,會列印出系統中CPU使用率最高的程序及其PID和名稱,按CPU使用率降序排列。
綜上所述,使用top
、htop
、ps
結合sort
和head
命令,或者編寫Python指令碼(使用psutil
庫),都可以有效地找出Linux系統中佔用CPU最高的程序。根據實際需求和環境,選擇合適的方法即可。