linux服務器磁盤IO持續飆高排查


問題發現

今天早上上班后無意間看看監控,發現有台機的磁盤IO持續飆高,瞬間有了種想看看到底是什么情況導致的念頭,光想沒用,直接開干...
通過堡壘機直接干到了那台機上...
yum -y install sysstat 進行安裝iostat命令

cpu屬性值說明:
%user:CPU處在用戶模式下的時間百分比。
%nice:CPU處在帶NICE值的用戶模式下的時間百分比。
%system:CPU處在系統模式下的時間百分比。
%iowait:CPU等待輸入輸出完成時間的百分比。如該值過高,表示硬盤存在I/O瓶頸
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。
%idle:CPU空閑時間百分比。如該值高,表示CPU較空閑,
如該值高但系統響應慢時,可能是CPU等待分配內存,應加大內存容量。
如該值持續低於10,表明CPU處理能力相對較低,系統中最需要解決的資源是CPU

tps:該設備每秒的傳輸次數
kB_read/s:每秒從設備(drive expressed)讀取的數據量;
kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量;
kB_read:  讀取的總數據量;
kB_wrtn:寫入的總數量數據量;

由上圖可知,vdb磁盤的 %util【IO】幾乎都在100%,原因是頻繁的讀取數據造成的

Device:設備名稱
rrqm/s:每秒合並到設備的讀請求數。即delta(rmerge)/s 
wrqm/s:每秒合並到設備的寫入請求數。即delta(wmerge)/s 
r/s:每秒完成的讀I/O設備次數。即delta(rio)/s 
w/s:每秒完成的寫I/0設備次數。即delta(wio)/s 
rkB/s: 每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。(需要計算)
wkB/s: 每秒寫K字節數。是 wsect/s 的一半。(需要計算)
avgrq-sz:平均每次設備I/O操作的數據量(扇區為單位)。即delta(rsec+wsec)/delta(rio+wio) 
avgqu-sz:平均每次發送給設備的I/O隊列長度。
await:平均每次IO請求等待時間。(包括等待隊列時間和處理時間,毫秒為單位)
r_await:平均每次IO讀請求等待時間。(包括等待隊列時間和處理時間,毫秒為單位)
w_await:平均每次IO寫請求等待時間。(包括等待隊列時間和處理時間,毫秒為單位)
svctm:平均每次設備I/O操作的處理時間(毫秒)。警告!不要再相信這個字段值,這個字段將在將來的sysstat版本中刪除。 
%util:一秒中有百分之多少的時間用於I/O操作,或者說一秒中有多少時間I/O隊列是非空的。當該值接近100%時,設備飽和發生。

rsec/s (rkB/s, rMB/s):每秒讀取設備的扇區數(千字節、兆字節)。每扇區大小為512字節
wsec/s (wkB/s, wMB/s):每秒寫入設備的扇區數(千字節、兆字節)。每扇區大小為512字節

使用iotop命令找到IO占用高的進程

iotop -oP可看到比較詳細信息,如:進程號,磁盤讀取量,磁盤寫入量,IO百分比,涉及到的命令是什么等

pidstat 命令

iotop -oP展示I/O統計,每秒更新一次
可見其中 mongod 命令占用了大量的讀IO,之后可根據 PID 查看相關進程信息


.
.
.
.
游走在各發行版間老司機QQ群:905201396
不要嫌啰嗦的新手QQ群:756805267
Debian適應QQ群:912567610


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM