atop
監控Linux系統資源與進程的工具
補充說明
[非內部程序,需要安裝]它以一定的頻率記錄系統的運行狀態,所採集的數據包含系統資源(CPU、內存、磁盤和網絡)使用情況和進程運行情況,並能以日誌文件的方式保存在磁盤中,服務器出現問題後,我們可獲取相應的atop日誌文件進行分析。atop是一款開源軟件,我們可以從這裏獲得其源碼和rpm安裝包。
語法
1atop(選項)(參數)
說明
ATOP列:該列顯示了主機名、信息採樣日期和時間點
PRC列:該列顯示進程整體運行情況
- sys、usr字段分別指示進程在內核態和用戶態的運行時間
- #proc字段指示進程總數
- #zombie字段指示殭屍進程的數量
- #exit字段指示atop採樣週期期間退出的進程數量
CPU列:該列顯示CPU整體(即多核CPU作爲一個整體CPU資源)的使用情況,我們知道CPU可被用於執行進程、處理中斷,也可處於空閒狀態(空閒狀態分兩種,一種是活動進程等待磁盤IO導致CPU空閒,另一種是完全空閒)
- sys、usr字段指示CPU被用於處理進程時,進程在內核態、用戶態所佔CPU的時間比例
- irq字段指示CPU被用於處理中斷的時間比例
- idle字段指示CPU處在完全空閒狀態的時間比例
- wait字段指示CPU處在“進程等待磁盤IO導致CPU空閒”狀態的時間比例
CPU列各個字段指示值相加結果爲N00%,其中N爲cpu核數。
cpu列:該列顯示某一核cpu的使用情況,各字段含義可參照CPU列,各字段值相加結果爲100%
CPL列:該列顯示CPU負載情況
- avg1、avg5和avg15字段:過去1分鐘、5分鐘和15分鐘內運行隊列中的平均進程數量
- csw字段指示上下文交換次數
- intr字段指示中斷髮生次數
MEM列:該列指示內存的使用情況
- tot字段指示物理內存總量
- free字段指示空閒內存的大小
- cache字段指示用於頁緩存的內存大小
- buff字段指示用於文件緩存的內存大小
- slab字段指示系統內核佔用的內存大小
SWP列:該列指示交換空間的使用情況
- tot字段指示交換區總量
- free字段指示空閒交換空間大小
PAG列:該列指示虛擬內存分頁情況
swin、swout字段:換入和換出內存頁數
DSK列:該列指示磁盤使用情況,每一個磁盤設備對應一列,如果有sdb設備,那麼增多一列DSK信息
- sda字段:磁盤設備標識
- busy字段:磁盤忙時比例
- read、write字段:讀、寫請求數量
NET列:多列NET展示了網絡狀況,包括傳輸層(TCP和UDP)、IP層以及各活動的網口信息
- XXXi 字段指示各層或活動網口收包數目
- XXXo 字段指示各層或活動網口發包數目
atop日誌
每個時間點採樣頁面組合起來就形成了一個atop日誌文件,我們可以使用"atop -r XXX"命令對日誌文件進行查看。那以什麼形式保存atop日誌文件呢?
對於atop日誌文件的保存方式,我們可以這樣:
- 每天保存一個atop日誌文件,該日誌文件記錄當天信息
- 日誌文件以"atop_YYYYMMDD"的方式命名
- 設定日誌失效期限,自動刪除一段時間前的日誌文件
其實atop開發者已經提供了以上日誌保存方式,相應的atop.daily腳本可以在源碼目錄下找到。在atop.daily腳本中,我們可以通過修改INTERVAL變量改變atop信息採樣週期(默認爲10分鐘);通過修改以下命令中的數值改變日誌保存天數(默認爲28天):
1(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )&
最後,我們修改cron文件,每天凌晨執行atop.daily腳本:
10 0 * * * root /etc/cron.daily/atop.daily
相關資料
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。