Linux
在以下情況下用於找出 Linux 機器的總 CPU 和記憶體使用情況的最佳命令
這些幾乎都是新手提出的問題。(我已經查看了其他相關的問題和答案,但似乎都沒有完全回答我自己的原始問題。)
我需要在 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)的可移植性。