【随笔】vmstat性能监测
vmstat命令是最常見的Linux/Unix監控工具,可以展現給定時間間隔的服務器的狀態值,包括服務器的CPU使用率,內存使用,虛擬內存交換情況,IO讀寫情況。相比top,vmstat可以看到整個機器的CPU,內存,IO的使用情況,而不是單單看到各個進程的CPU使用率和內存使用率(使用場景不一樣)。
使用vmstat命令可以輸出一條服務器狀態信息:
可以在vmstat命令后添加2個參數,第一個參數表示間隔多長時間獲取一次信息,單位為秒,第二個參數表示輸出幾個信息后停止獲取:
第二個參數是缺省的,如果省略,則會一直輸出狀態信息,直至使用"Ctrl + C"停止vmstat:
現在來詳細解釋下這些參數:
procs
r --> 當前等待運行的進程隊列,如果其超過了cpu內核數目,則表示這個cpu負載過高,cpu很繁忙,服務器的狀態很危險。
b--> 表示阻塞的進程。
memory
swpd--> 虛擬內存已使用的大小,也就是已經有多少內存已經被交換到了交換文件貨磁盤,如果大于0,表示機器物理內存不足了,如果不是程序內存泄露的原因,那么就該升級內存了或者把耗內存的任務遷移到其他機器。
free--> 空閑的物理內存的大小,或者說是未分配的可用內存。
buff--> 正在使用中的內存。
cache--> 直接用來記憶我們打開的文件,給文件做緩沖,也有一種說法是顯示了有多少內存可以被交換到交換文件或者磁盤上。
swap
si--> 每秒從磁盤讀入虛擬內存的大小,如果這個值大于0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。
so--> 每秒虛擬內存寫入磁盤的大小,如果這個值大于0,同上。
io
bi--> 塊設備每秒接收的塊數量,這里的塊設備是指系統上所有的磁盤和其他塊設備,默認塊大小是1024byte。
bo--> 塊設備每秒發送的塊數量,例如我們讀取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO過于頻繁,需要調整。
system
in--> 每秒CPU的中斷次數,包括時間中斷。
cs--> 每秒系統為了處理任務而上下文切換的次數,例如我們調用系統函數,就要進行上下文切換,線程的切換,也要進程上下文切換,這個值要越小越好,太大了,要考慮調低線程或者進程的數目。上下文切換次數過多表示你的CPU大部分浪費在上下文切換,導致CPU干正經事的時間少了,CPU沒有充分利用。
cpu
us--> 用戶CPU使用時間,即處理器在非內核程序消耗的時間。
sy--> 系統CPU使用時間,即處理內核相關任務消耗的時間,如果太高,表示系統調用時間長,例如是IO操作頻繁。
id--> 空閑CPU使用時間,一般來說,id + us + sy = 100。
wt--> 等待IO CPU時間。
顯示活躍和非活躍內存
在vmstat后加入-a選項
顯示磁盤統計數據總結
vmstat也可以打印系統磁盤活動統計。使用-D選項
顯示單位
可以選擇你想打印的顯示單位字符。在-S后跟上k (小寫,1000)、 K (大寫,1024)、 m (小寫,1000000)、 M (大寫,1048576)字節. 如果你不想選擇單位,默認使用的是K (1024)。
顯示某個磁盤分區的詳細統計數據
可以使用-p選項跟上設備名
總結
以上是生活随笔為你收集整理的【随笔】vmstat性能监测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: veket智能机器人
- 下一篇: ( vant ) 新手踩坑