Linux

如何設置伺服器以監控一段時間內的資源使用情況並生成報告

  • November 9, 2020

我正在做一個研究項目,我們通常在伺服器上開始工作,大約需要一兩天的時間來執行,然後我們去看看結果。問題在於,在某些情況下,我們正在使伺服器資源匱乏,並且由於某些作業失敗,它正在影響我們的結果。

我想生成一份報告,我們可以回顧一下以確定伺服器資源的使用情況,並將其與作業交叉引用。

我試過用 atop 做這個(使用它的 rawfile 格式)但是在不同的機器上讀取這種格式有很多問題(即不同版本的 linux 或 atop 等)

所以我想知道是否有更優雅的解決方案?最終,我需要能夠深入了解每個程序級別的資源消耗,並查看用於實例化程序的命令(如 htop 中的命令列。)

您可能可以從

sar -f /var/log/sysstat/sa6 

看昨天系統大雅

以及 vmstat

這使您能夠開始將問題縮小到小時。從那裡您可以開始查看伺服器日誌以查看是否有錯誤。在日誌上使用 grep 並查找您的程序名稱和關鍵字,例如問題、錯誤。

您應該嘗試一下nmon,您可以從 EPEL 儲存庫中獲取它。

您可以安排一個 cron 作業來創建每日報告,例如,這將在每天早上 7 點生成一份報告:

- name: nmon cron
 cron:
   name: "Generate nmon daily at 7:00"
   minute: "0"
   hour: "7"
   job: "/bin/nmon -fT -s300 -c290 -m /root/nmon"
   user: root
   cron_file: nmon

報告的大小各不相同,例如第一個來自測試伺服器,第二個來自 Oracle 生產伺服器:

[root@xxxxxx379 ~]# du -sh nmon/xxxxxx379_201108_0700.nmon
316K    nmon/xxxxxx379_201108_0700.nmon

[root@xxxx203 ~]# du -sh nmon/xxxx203_201108_0700.nmon
1.8M    nmon/xxxx203_201108_0700.nmon

然後,您可以通過多種方式繪製統計數據(輸出為 csv)。

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