Linux系統如何查找磁盤I/O讀寫過高的進程?


首先,模擬磁盤I/O讀寫高的情況

# 拷貝大文件進行測試
[root@proxy1 ~]# \cp -rp /mnt/cdrom/ /tmp/

1、通過"iostat -x 1 10"命令查看相關磁盤使用信息

表示每隔1秒刷新一次,刷新10次

如果沒有iostat命令,使用yum -y install sysstat安裝

由圖可知scd0也就是被拷貝的磁盤的%util幾乎超過了100%,原因就是頻繁的讀取數據造成的;

字段說明

Device	# 設備名稱
tps		# 每秒的IO讀、寫請求數量,多個邏輯請求可以組合對設備的單個I/O請求;
Blk_read/s	#從設備讀取的數據量,以每秒若干塊(千字節、兆字節)表示;塊相當於扇區,塊大小為512字節
Blk_wrtn/s	#寫入設備的數據量,以每秒若干塊表示;
Blk_read	#讀取塊的總數(千字節、兆字節)
Blk_wrtn	#寫入塊的總數(千字節、兆字節)

rrqm/s		#每秒合並到設備的讀請求數;
wrqm/s		#每秒合並到設備的寫入請求數;
r/s			#每秒完成的讀I/O設備次數;
w/s			#每秒完成的寫I/O設備次數;
rsec/s(rkB/s,rMB/s)		#每秒讀取設備的扇區數,每扇區大小為512字節;
wsec/s(wkB/s,wMB/s)		#每秒寫入設備的扇區數,每扇區大小為512字節;

avgrq-sz	#平均每次設備I/O操作的數據量(扇區為單位);
abgqu-sz	#平均每次發送給設備的I/O隊列長度
await		#平均每次I/O請求等待時間(包括等待隊列時間和處理時間,毫秒為單位)
r_await		#平均每次I/O讀請求等待時間;
w_await		#平均每次I/O寫請求等待時間;
svctm		#平均每次設備I/O操作的處理時間(毫秒);
%util		#一秒中有百分之多少的時間用於I/O操作,當該值接近100%,設備飽和發生;

2、通過"iotop"命令

如果沒有該命令,使用yum -y install iotop命令進行安裝

通過這個命令可以看見比較詳細的信息,如:進程號、磁盤讀取量、磁盤寫入量、I/O百分比,以及命令等;

3、通過"pidstat"命令

命令的含義:展示I/O統計,每秒更新一次;

pidstat -d 1


免責聲明!

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



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