linux性能調試之iostat
iostat用來監控調試linux系統的IO性能。
一般用法:
iostat -xdct time_interval count [disk]
-x:顯示擴展統計項,如果不使用-x參數只會列印基本統計
-d:顯示磁碟佔用率
-c:顯示CPU佔用率
-t:每次顯示前列印時間戳
示例:
注意點:第一條輸出表示從啟動開始的統計信息,從第二條開始表示time_interval內的統計信息
參數介紹:
avg-cpu:
%user:CPU處在用戶模式下的時間百分比。
%nice:CPU處在帶NICE值的用戶模式下的時間百分比。
%system:CPU處在系統模式下的時間百分比。
%iowait:CPU等待輸入輸出完成時間的百分比。---因為iostat是為了監控IO性能設計的,所以著重關注iowait
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。
%idle:CPU空閑時間百分比。
Device:
rrqm/s: 每秒進行 merge 的讀操作數目---merge的意思是將幾個小批量且連續的IO訪問合併
wrqm/s: 每秒進行 merge 的寫操作數目
r/s: 每秒發起的讀請求次數
w/s: 每秒發起的寫請求次數
rsec/s: 每秒讀扇區數,一個扇區512位元組
wsec/s: 每秒寫扇區數,一個扇區512位元組
avgrq-sz: 平均每次設備 I/O 操作的數據大小(以扇區為單位)
avgqu-sz: 平均 I/O 隊列長度---IO隊列越長代表等待被執行的IO操作越多
await: 平均每次設備 I/O 操作的等待時間(毫秒)---等待時間 = 隊列中等待時間 + 服務時間
svctm: 平均每次設備 I/O 操作的服務時間(毫秒)---不要相信這個值
%util: IO操作的CPU佔用率
典型問題:
IO問題綜合表述都是IO操作消耗了過多的CPU資源,出現下面情況可以認為設備的IO需要優化:
%iowait,%util,avgqu-sz高或者高出平均值
r/s w/s持續高或者高出平均值
avgqu-sz高
優化方向:
應用程序優化,減少IO操作次數
使用多塊磁碟,將針對大塊磁碟的大量讀寫優化為針對多塊磁碟的同樣量讀寫
增加文件系統inode cache數量
使用固態硬碟提高讀寫速度
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
TAG:全球大搜羅 |