監(jiān)控Linux系統(tǒng)資源與進(jìn)程的工具
[非內(nèi)部程序,需要安裝]它以一定的頻率記錄系統(tǒng)的運行狀態(tài),所采集的數(shù)據(jù)包含系統(tǒng)資源(CPU、內(nèi)存、磁盤和網(wǎng)絡(luò))使用情況和進(jìn)程運行情況,并能以日志文件的方式保存在磁盤中,服務(wù)器出現(xiàn)問題后,我們可獲取相應(yīng)的atop日志文件進(jìn)行分析。atop是一款開源軟件,我們可以從這里獲得其源碼和rpm安裝包。
atop(選項)(參數(shù))
ATOP列:該列顯示了主機(jī)名、信息采樣日期和時間點
PRC列:該列顯示進(jìn)程整體運行情況
CPU列:該列顯示CPU整體(即多核CPU作為一個整體CPU資源)的使用情況,我們知道CPU可被用于執(zhí)行進(jìn)程、處理中斷,也可處于空閑狀態(tài)(空閑狀態(tài)分兩種,一種是活動進(jìn)程等待磁盤IO導(dǎo)致CPU空閑,另一種是完全空閑)
CPU列各個字段指示值相加結(jié)果為N00%,其中N為cpu核數(shù)。
cpu列:該列顯示某一核cpu的使用情況,各字段含義可參照CPU列,各字段值相加結(jié)果為100%
CPL列:該列顯示CPU負(fù)載情況
MEM列:該列指示內(nèi)存的使用情況
SWP列:該列指示交換空間的使用情況
PAG列:該列指示虛擬內(nèi)存分頁情況
swin、swout字段:換入和換出內(nèi)存頁數(shù)
DSK列:該列指示磁盤使用情況,每一個磁盤設(shè)備對應(yīng)一列,如果有sdb設(shè)備,那么增多一列DSK信息
NET列:多列NET展示了網(wǎng)絡(luò)狀況,包括傳輸層(TCP和UDP)、IP層以及各活動的網(wǎng)口信息
每個時間點采樣頁面組合起來就形成了一個atop日志文件,我們可以使用"atop -r XXX"命令對日志文件進(jìn)行查看。那以什么形式保存atop日志文件呢?
對于atop日志文件的保存方式,我們可以這樣:
其實atop開發(fā)者已經(jīng)提供了以上日志保存方式,相應(yīng)的atop.daily腳本可以在源碼目錄下找到。在atop.daily腳本中,我們可以通過修改INTERVAL變量改變atop信息采樣周期(默認(rèn)為10分鐘);通過修改以下命令中的數(shù)值改變?nèi)罩颈4嫣鞌?shù)(默認(rèn)為28天):
(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )&
最后,我們修改cron文件,每天凌晨執(zhí)行atop.daily腳本:
0 0 * * * root /etc/cron.daily/atop.daily