對於記憶體監控,在top里我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行記憶體和swap的數據交換,這是真正的記憶體不夠用了 ...
一、top
第一行,任務隊列信息,同 uptime 命令的執行結果
- 系統時間:15:23:10
- 運行時間:up 236 day,4min,
- 當前登錄用戶: 2個 user
- 負載均衡(uptime) load average: 1.90, 1.81, 1.79
- average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況。
- load average數據是每隔5秒鐘檢查一次活躍的進程數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了
第二行Tasks
- 總進程:160 total,
- 運行:1 running,
- 休眠:157 sleeping,
- 停止: 1 stopped,
- 僵屍進程: 0 zombie
第三行:CPU狀態
- 6.2%us【user space】— 用戶空間占用CPU的百分比。
- 0.7%sy【sysctl】— 內核空間占用CPU的百分比。
- 0.0%ni【】— 改變過優先順序的進程占用CPU的百分比
- 92.4%id【idolt】— 空閑CPU百分比
- 0.0%wa【wait】— IO等待占用CPU的百分比
- 0.0%hi【Hardware IRQ】— 硬體中斷占用CPU的百分比
- 0.6%si【Software Interrupts】— 軟中斷占用CPU的百分比
- 0.1%st(Steal time) :是當 hypervisor 服務另一個虛擬處理器的時候,虛擬 CPU 等待實際 CPU 的時間的百分比。
第四行,記憶體狀態
- 總記憶體:8035560k total,
- 已用:5679464k used,
- 可用:2356096k free,
- 緩存的記憶體容量:281576k buffers
第五行,swap交換分區信息(虛擬記憶體)
- 虛擬記憶體總容量: 1998844k total,
- 已用:0k used,
- 可用:1998844k free,
- 緩衝的交換區總量:3840756k cached
備註:
- 可用記憶體=free + buffer + cached
- 對於記憶體監控,在top里我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行記憶體和swap的數據交換,這是真正的記憶體不夠用了。
- 第四行中使用中的記憶體總量(used)指的是現在系統內核控制的記憶體數,
- 第四行中空閑記憶體總量(free)是內核還未納入其管控範圍的數量。
- 納入內核管理的記憶體不見得都在使用中,還包括過去使用過的現在可以被重覆利用的記憶體,內核並不把這些可被重新使用的記憶體交還到free中去,因此在linux上free記憶體會越來越少,但不用為此擔心。