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

相關資料

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: