系統管理員除了需要對特定的進程內存占用情況跟蹤觀察外,更多的時候需要監控整個系統的內存使用信息。AIX Vmstat 和 svmon 能夠幫助我們輕易的獲得這方面的數據。
AIX vmstat
vmstat(Virtual Memory Statistics) 命令能夠幫助我們監控內核進程,虛擬內存,磁盤和處理器統計信息。 它是對系統的整體情況進行統計,不足之處就是無法對某個特定進程做分析。AIX Vmstat 的輸出可以是以百分比表示的平均值,也可以是其統計的總和。
如果沒有指定任何的參數,AIX vmstat 將會輸出系統從開機啟動之後所有的虛擬內存活動。
我們經常使用類似AIX vmstat 5 5 的命令參數,代表著表示在 5 秒時間做 5 次采樣。
清單 4.AIX vmstat5 5 命令監控內存資源使用狀況
- System Configuration: lcpu=4 mem=1024MB
- kthr memory page faults cpu
- ----- ----------- ------------------------ ------------ -----------
- r b avm fre re pi po fr sr cy in sy cs us sy id wa
- 0 0 208817 44828 0 0 0 0 0 0 3 60 220 0 0 99 0
- 0 0 208817 44828 0 0 0 0 0 0 2 27 225 0 0 99 0
- 0 0 208817 44828 0 0 0 0 0 0 4 29 219 0 0 99 0
下面將對輸出的結果中涉及到的內存管理相關字段進行說明:
memory:物理內存和虛擬內存的使用信息。如果虛擬內存被訪問,那麼將被認為是活動的。.
avm 活動的虛擬內存頁面
fre 空閒內存列表的大小。注:很大一部分的實際內存都被用來作為文件系統的緩存用來加快應用程序的運行速度,所以空閒內存大小一般保持在很小的數值。
page:缺頁異常和分頁活動信息。此數值是間隔時間內的平均值,以秒為單位。
re 頁面調度輸入 / 輸出列表
pi 從頁面空間輸入的頁面
po 寫入頁面空間的頁面
fr 釋放的頁面
sr 通過頁面替換算法掃描頁面的頻率
cy 頁面替換算法運行的時鐘周期
內存的瓶頸問題我們可以通過 sr( 頁面掃描頻率 ) 來觀察,如果掃描頻率過高,始終維持高於 200 頁說明存在內存瓶頸,同樣的道理如果 page 項中的 pi( 調入的頁面數 ) 和 po( 調出的頁面數 ) 不為 0,說明系統必須經常性被動的通過頁面的調入調出程序來維持系統的穩定運行,表明也有可能存在內存瓶頸。
解決的方法可以通過簡單的增加內存或者優化設計應用程序來減少對內存的使用率。AIX vmstat的知識,我們就講解到這裡了。