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