Linux

在以下情況下用於找出 Linux 機器的總 CPU 和記憶體使用情況的最佳命令

  • July 12, 2012

這些幾乎都是新手提出的問題。(我已經查看了其他相關的問題和答案,但似乎都沒有完全回答我自己的原始問題。)

我需要在 Java 程序中遠端檢索、解析和報告 Linux 機器的 CPU 和記憶體使用情況。這些應該在兩個單獨的命令而不是一個命令中完成,以將它們解耦,以便將來需要更改一個命令時更容易。

所以我的問題是:

  • 為此目的,用於檢索電腦的總 CPU 使用率的最佳命令是什麼?
  • 為此目的檢索機器的總記憶體使用量的最佳命令是什麼?

最好,我的意思是命令的輸出是:

  • 標準(獨立/在 Linux 風格中應該是相同的——不是強制性的,但會很好。目標作業系統雖然是 RHEL 5)
  • 可以很容易地解析(不會與我不感興趣的其他資訊混雜在一起)。

謝謝!

top 命令顯示記憶體和 CPU 資訊以及其他統計資訊。

如果您想從腳本或應用程序中呼叫它,請使用“-n 1”標誌,這樣它就不會在互動模式下執行。

例如讓 CPU 使用率執行

top -n 1 | grep "Cpu"
(result)
Cpu(s):  1.6%us,  1.8%sy,  0.0%ni, 92.1%id,  0.6%wa,  0.1%hi,  3.8%si,  0.0%st

記憶體使用呼叫

top -n 1 | grep "Mem"
(result)
Mem:   1035240k total,   773088k used,   262152k free,   160348k buffers

我建議不要重新發明輪子,而是在您打算監控的系統上使用 SNMP 守護程序,並在 Java 應用程序中使用 SNMP 客戶端庫。

您希望監控的兩個項目都包含在net-snmp的標準 MIB/OID 中。

然後,您不必擔心從其他實用程序的輸出中提取您需要的變數,或者您將如何安全地傳輸該資訊(可能是遠端 shell)的可移植性。

引用自:https://serverfault.com/questions/29598