在linux下有很多系統效能分析工具,比較常見的有top、free、ps、time、timex、uptime等。下文將介
紹vmstat的使用。
用vmstat監視記憶體使用情況
vmstat是virtual meomory statistics(虛擬記憶體統計)的縮寫,可對作業系統的虛擬記憶體、程序、
cpu活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個程序進行深入分析。
vmstat的語法如下:
vmstat [-v] [-n] [delay [count]]
其中,-v表示列印出版本資訊;-n表示在週期性迴圈輸出時,輸出的頭部資訊僅顯示一次;delay
是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。對於vmstat輸出各字段的含義,
可執行man vmstat檢視
oracle@oracle [/home/oracle] vmstat 30
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 7 191060 46436 8516 6320140 0 0 25145 3988 2953 2568 7 2 45 47 0
0 8 191060 46772 8944 6262940 0 0 18306 4123 2762 821 6 2 42 50 0
0 8 191060 46048 9476 6214968 0 0 16523 5260 2444 3257 7 2 39 52 0
0 8 191060 45504 10584 6260116 3 0 14665 5954 2553 2630 5 5 40 49 0
0 7 191060 80140 11088 6280616 0 0 20427 2419 2942 612 4 2 55 39 0
1 6 191060 46632 10948 6305656 0 0 17997 4201 1295 430 4 3 60 33 0
1 8 191060 45676 10240 6191764 7 0 29717 888 1258 1532 5 6 58 31 0
0 9 191060 45600 8608 6180256 0 0 24880 2717 1220 1470 3 1 56 40 0
0 10 191060 44984 9056 6169620 0 0 24803 1591 1224 1480 3 1 51 44 0
0 9 191060 46476 9816 6165352 0 0 20735 2587 1186 1154 3 1 50 46 0
0 8 191060 46524 11084 6011804 9 0 15602 5370 1223 1671 5 2 46 47 0
ps: 30秒寫一次,沒有限制,如果有限制列印5次: vmstat 30 5
procs
r: 等待執行的程序數
b: 處在非中斷睡眠狀態的程序數 (等待io程序數)
w: 被交換出去的可執行的程序數。
此數由 linux 計算得出,但 linux 並不耗盡交換空間
準測r,b≈0
memory
swpd: 虛擬記憶體使用情況,單位:kb (切換到交換記憶體上得記憶體)
如果swpd的值不為0,或者還比較大,但是si,so的值長期為0,這種情況不必擔心影響系統效能
free: 空閒的記憶體,單位kb (空閒的物理記憶體)
buff: 被用來做為快取的記憶體數,單位:kb (作為buffercache的記憶體,對塊裝置的讀寫進行緩衝)
cache: 作為page cache的記憶體,檔案系統的cache
如果cache的值大的時候,說明cache出得檔案數多,如果頻繁訪問到的檔案都被cache到,那麼磁
盤的讀io bi會非常小。
swap
si: 從磁碟交換到記憶體的交換頁數量,單位:kb/秒
so: 從記憶體交換到磁碟的交換頁數量,單位:kb/秒
記憶體夠用的時候這兩個值都是0,如果這兩個值長期大於0,系統效能會受到影響,磁碟的io和cpu資
源都會唄消耗
如果free很少,但是si so也很少(大多數時候為0),不用擔心效能受到影響。
io
bi: 傳送到塊裝置的塊數,單位:塊/秒 (讀磁碟)
bo: 從塊裝置接收到的塊數,單位:塊/秒 (寫磁碟)
這兩個值越大,能看到cpu在io等待的值也會越大。
system
in: 每秒的中斷數,包括時鐘中斷
cs: 每秒的環境(上下文)切換次數
這兩個值越大,會看到由核心消耗的cpu時間會越大。
cpu
按 cpu 的總使用百分比來顯示
us: cpu 使用時間
sy: cpu 系統使用時間
id: 閒置時間
wa: io等待消耗的cpu時間百分比
通常情況下 sy所占用的時間百分比小於10%,否則就需要檢查系統消耗cpu情況,
在單使用者下最理想的狀態是使cpu處於100%工作狀態,
如果在多使用者環境中us+sys》80,程序就會在執行佇列中花費等待時間,響應時間和吞吐量就會下降。
wa值高時,說明io等待比較嚴重,可能由於磁碟大量隨機訪問,也有可能磁碟出現瓶頸(塊操作)
wa>40表明磁碟io沒有也許存在不合理的平衡,或者對磁碟操作比較頻繁。
us持續大於50,服務高峰期可以接受。
vmstat的使用詳解
vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,記憶體使用,虛擬記憶體交換情況,io讀寫情況。這個命令是我檢視linux unix最喜愛的命令,乙個是linux unix都支援,二是相比top,我可以看到整個機器的cpu,記憶體...
關於vmstat命令的使用詳解1 0
vmstat命令 用來檢視並獲取程序,虛擬記憶體,頁面交換空間以及cpu活動狀況的資訊,綜合這些資訊可以分析系統當前的負載情況。1 用法 vmstat report virtual memory statistics a,active display active and inactive memo...
詳解中括號語法及點語法
點語法 點語法根據物件中的鍵來獲取相應的值.let obj a a console.log obj.a a 建立相應的鍵值對 obj.b b console.log obj.b b 中括號語法 中括號語法也能根據物件中的鍵來獲取值.let obj a a console.log obj a a 需要...