Linux

如何在 bash 中獲取過去 10 秒的平均 CPU 使用率?

  • November 5, 2021

我需要一個命令來echo計算 Ubuntu 18 中過去 10 秒的平均 CPU 使用率。

必須滿足以下每個條件:

  1. 它必須是輕量級的,佔用空間非常小,執行後台腳本不斷寫入文件系統是不行的。
  2. 該值必須自動考慮核心數(我不知道之前的核心數)。
  3. 該值必須是介於 0 和 1 之間的數字。不應有任何其他輸出,因為它將由腳本而非人類讀取。或者建議一種強大的算法來解析建議命令的輸出,無論它是什麼。
  4. sudo要求很好,但腳本必須能夠通過 SSH 作為命令執行,並且它必須具有正確的程序返回行為(0成功的退出程式碼)。

內置命令和功能是首選,但其他軟體也可以,只要它在官方儲存庫中可用。

sysstat軟體包提供sar了一個系統活動數據收集器。

sar -u ALL 10 1

發布命令啟動後接下來10 秒的平均cpu 統計資訊。輸出就像

Linux 5(...)    11/05/21        _x86_64_        (1 CPU)

17:22:35        CPU     %user     %nice   %system   %iowait    %steal     %idle
17:22:36        all      8.85     20.75      2.46      0.00      0.00     67.94
Average:        all      8.85     20.75      2.46      0.00      0.00     67.94

引用自:https://unix.stackexchange.com/questions/511501