如何在 Linux 中使用命令列檢查 CPU 使用率?
簡介
監控 Linux 系統的效能對於確保其最佳執行至關重要。確定系統性能的關鍵因素之一是 CPU 使用率。
CPU 使用率是指處理器花費在執行系統上各種程序和應用程式指令的時間百分比。在 Linux 中,有許多工具可用於監控 CPU 使用率,但使用命令列工具可以提供一種快速有效的方法來檢查此指標。
檢查 CPU 使用率的基本命令列工具
在 Linux 中使用命令列監控 CPU 使用率時,您有多種選擇。讓我們從大多數 Linux 發行版上都可用的某些基本工具開始。
top:top 命令概述以及如何使用它來檢查 CPU 使用率
top 命令是一個強大的工具,用於監控系統程序,包括 CPU 使用率。當您執行 top 時,您會看到一個正在執行的程序列表,預設情況下按其 CPU 使用率(以及其他指標,如記憶體使用率)排序。
您可以隨時按 'q' 退出。要按其他標準(如記憶體使用率或程序 ID)對程序進行排序,請按 'F' 並選擇所需的排序選項。
$ sudo top
輸出
top - 12:34:56 up 1 day, 00:00:00, 1 user, load average: 0.50, 0.75, 0.80 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie %Cpu(s): 10.5 us, 3.8 sy, 0.0 ni, 84.1 id, 1.6 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 3963.2 total, 1023.2 free, 2056.7 used, 883.3 buff/cache MiB Swap: 4096.0 total, 4096.0 free, 0.0 used. 1523.4 avail Mem
htop:htop 簡介,一個具有附加功能的更高階的 top 版本
如果您正在尋找比 top 更高階但仍然相當易於使用的工具,那麼 htop 可能是您需要的。htop 在功能上類似於 top,但附帶了一些額外的功能,使其更加實用。
例如,htop 允許根據名稱或狀態過濾程序,並且可以顯示與特定程序組關聯的所有執行緒。要使用 htop,只需在終端中鍵入“htop”並按回車鍵。
$ sudo htop
輸出
1 [||||| 18.6%] Tasks: 195, 16 thr; 1 running 2 [||||| 17.2%] Load average: 0.74 0.89 0.93 3 [||||| 16.9%] Uptime: 2 days, 3 hours, 15 mins 4 [|||||| 21.8%] 5 [||||| 18.7%] Mem[||||||||||||||| 1.67G/7.79G] 6 [|||| 12.4%] Swp[| 0K/0K] PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1370 root 20 0 3.1G 437M 136M S 10.1 5.6 12:48.24 /usr/bin/compiz 2398 john 20 0 1.8G 272M 76M S 8.3 3.5 5:21.53 /usr/bin/firefox
Glances:Glances 概述,一個包含 CPU 使用率資訊的綜合系統監控工具
Glances 是一個比 top 或 htop 更全面的系統監控工具。它提供有關係統效能的即時資訊,包括 CPU 使用率。
Glances 還提供有關磁碟使用情況、網路活動和記憶體使用情況的資訊。要使用 glances,只需在終端中鍵入“glances”並按回車鍵。
$ glances
輸出
CPU: [##### ] 45.2%
總的來說,這些基本工具應該為您提供足夠的功能來監控大多數 Linux 系統上的 CPU 使用率。但是,如果您需要更高階的功能(如程序跟蹤或分析),您可能需要考慮我們接下來將介紹的一些更專業的工具。
檢查 CPU 使用率的高階命令列工具
Perf:效能分析的強大工具
Perf 是一個強大的效能分析工具,可用於監控和分析系統性能的各個方面,包括 CPU 使用率。它提供了廣泛的功能,用於分析應用程式、核心跟蹤和硬體事件監控。Perf 可以幫助識別 CPU 使用瓶頸、追蹤硬體問題並最佳化系統性能。
要使用 perf,您需要在 Linux 系統上安裝 perf 工具。您可以使用發行版的包管理器安裝它。
$ perf stat -e cpu-clock python my_script.py Performance counter stats for 'python my_script.py': 10,387,682,725 cpu-clock (msec) # CPU clock cycles 0.498089 seconds time elapsed
Sysstat:跟蹤系統活動
Sysstat 是一組工具,其中包括 sar(系統活動報告器),可用於收集和報告系統活動,包括一段時間內的 CPU 使用率。Sar 收集各種系統統計資訊,例如 CPU 使用率、記憶體使用率、磁碟 I/O 操作、網路流量等等。
要使用 sar,您需要在 Linux 系統上安裝 sysstat 包。您可以使用發行版的包管理器安裝它。
安裝後,sar 會自動在後臺執行並定期收集資料。您可以使用“sar”命令後跟各種選項(例如時間範圍(-s 開始時間 -e 結束時間)或輸出格式(-o 輸出檔案))來檢視 sar 報告。
$ sar -u 1 5
輸出
Linux 5.4.0-81-generic (hostname) 06/17/23 _x86_64_ (2 CPU) 07:36:19 AM CPU %user %nice %system %iowait %steal %idle 07:36:20 AM all 3.25 0.00 0.75 0.00 0.00 95.00 07:36:21 AM all 2.50 0.00 0.50 0.00 0.00 97.00 07:36:22 AM all 1.50 0.00 0.50 0.00 0.00 98.00 07:36:23 AM all 2.50 0.00 0.00 0.00 0.00 97.50 07:36:24 AM all 3.50 0.00 0.00 0.00 0.00 96.50 Average: all 2.85 0.00 0.35 0.00 0.00 96.90
檢查 CPU 使用率的細分主題
使用 awk 或 Grep 命令與 top 或 Htop 輸出結合,以過濾和提取有關 CPU 使用率的特定資訊
雖然 top 和 htop 命令提供了對整體系統 CPU 使用率的深刻見解,但有時我們可能需要進一步深入並提取更具體的資訊。這就是 awk 和 grep 的強大功能所在。這些命令可用於根據特定條件過濾 top 或 htop 輸出,例如按程序名稱排序或僅顯示活動程序。
例如,如果我們只想顯示使用超過某個 CPU 使用率閾值的程序,我們可以使用以下命令與 awk 結合使用:
$ top -b -n 1 | awk '{if ($9 > 10) print}'
此命令將僅顯示 CPU 使用率大於 10% 的程序。我們還可以將 grep 命令與 Top 結合使用以過濾掉特定的程序名稱。
使用 Pidstat 或 ps 命令監控單個程序
通常,僅監控整體系統 CPU 使用率是不夠的。有時我們需要關注可能正在使用過量 CPU 資源的單個程序。
這時 pidstat 就派上用場了。pidstat 命令允許我們監控單個程序的統計資訊,包括一段時間內的 CPU 使用率。
要監控特定程序,只需執行以下命令:
$ pidstat -p [process id] [interval] [count]
這將為我們提供有關該特定程序在給定間隔內指定次數的資源消耗的詳細報告。或者,我們可以使用 ps 命令及其 aux 選項,該選項提供有關所有正在執行的程序的詳細資訊,包括其 PID 和其他相關詳細資訊,如記憶體/CPU 使用率等。
$ ps aux
透過將這些細分主題與 top 和 htop 等基本工具結合使用,我們可以更深入地瞭解系統 CPU 使用情況,並採取措施對其進行最佳化以獲得更好的效能。
結論
使用 命令列工具 檢查 Linux 中的 CPU 使用率可以提供有關係統效能的有價值資訊,並幫助診斷程序或組的問題。雖然 top 和 htop 等基本工具為大多數使用者提供了足夠的資訊;但 perf 或 sysstat 等高階工具可以提供對效能指標的更詳細見解。
通過了解使用者、系統和空閒時間等細微差別,並結合使用正確的命令列工具來檢查 CPU 使用率;系統管理員或使用者可以保持其系統的最佳執行,並在排查效能問題時做出明智的決策。總而言之,定期監控您的 CPU 使用率將確保您以最佳方式利用資源,同時使您的程式儘可能流暢地執行!