標籤:iostat
iostat主要用於監控系統裝置的IO負載情況,iostat首次運行時顯示自系統啟動開始的各項統計資訊,之後運行iostat將顯示自上次運行該命令以後的統計資訊。使用者可以通過指定統計的次數和時間來獲得所需的統計資訊。
[[email protected] app]# yum list|grep iostatpcp-import-iostat2pcp.x86_64 3.11.8-7.el7 base [[email protected] app]# yum -y install pcp-import-iostat2pcp[[email protected] app]# iostatLinux 3.10.0-514.el7.x86_64 (localhost.localdomain) 10/24/2017 _x86_64_(1 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 0.44 0.00 0.30 0.04 0.00 99.22Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.43 9.55 14.19 737417 1095615scd0 0.00 0.00 0.00 44 0[[email protected] app]#
各個輸出項目的含義如下:
avg-cpu段:總體cpu使用方式統計資訊,對於多核cpu,這裡為所有cpu的平均值
%user: 在使用者層級運行所使用的CPU的百分比.
%nice: nice操作所使用的CPU的百分比.
%sys: 在系統層級(kernel)運行所使用CPU的百分比.
%iowait: CPU等待硬體I/O時,所佔用CPU百分比.它指示cpu用於等待io請求完成的時間,主要看iowait的值。
%idle: CPU空閑時間的百分比.
Device段:各磁碟裝置的IO統計資訊
tps:每秒進程下發的IO讀、寫請求數量,該裝置每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device.)。"一次傳輸"意思是"一次I/O請求"。多個邏輯請求可能會被合并為"一次I/O請求"。"一次傳輸"請求的大小是未知的。
kB_read/s:每秒從裝置(drive expressed)讀取的block資料量(一扇區為512bytes),單位為K;
kB_wrtn/s:每秒向裝置(drive expressed)寫入的block資料量,單位為K;
kB_read:讀取的block總資料量,單位為K;
kB_wrtn:寫入的block總數量資料量,單位為K。
文法
iostat [options] [interval [count]]
參數
-d [facility]表示,顯示裝置(磁碟)使用狀態,預設監控所有的硬碟裝置,可以指定某一裝置,如-d sda。;
-k某些使用block為單位的列強制使用Kilobytes為單位,預設單位塊
-m 某些使用block為單位的列強制使用MB為單位,預設單位塊
[[email protected] app]# iostat -d -k 1 3 #沒1秒一次 重新整理3次磁碟的使用狀態Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 10/25/2017 _x86_64(1 CPU)Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnfd0 0.00 0.00 0.00 4 0sda 0.26 4.66 7.25 746585 1161425scd0 0.00 0.00 0.00 44 0Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnfd0 0.00 0.00 0.00 0 0sda 0.00 0.00 0.00 0 0scd0 0.00 0.00 0.00 0 0Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnfd0 0.00 0.00 0.00 0 0sda 0.00 0.00 0.00 0 0scd0 0.00 0.00 0.00 0 0[[email protected] app]# iostat -d -k 1 Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 10/25/2017 _x86_64(1 CPU)Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnfd0 0.00 0.00 0.00 4 0sda 0.26 4.66 7.25 746585 1161490scd0 0.00 0.00 0.00 44 0Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnfd0 0.00 0.00 0.00 0 0sda 0.00 0.00 0.00 0 0scd0 0.00 0.00 0.00 0 0^C[[email protected] app]# iostat -d sda 1 4Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 10/25/2017 _x86_64(1 CPU)Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.26 4.66 7.25 746585 1161502Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 1.01 0.00 1.01 0 1Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.00 0.00 0.00 0 0Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.00 0.00 0.00 0 0[[email protected] app]#
-x 顯示和io相關的擴充資料
[[email protected] app]# iostat -d sda -x -k 1 1Linux 3.10.0-514.el7.x86_64 (localhost.localdomain) 10/25/2017 _x86_64_(1 CPU)Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %utilsda 0.02 0.11 0.12 0.14 0 4.62 7.19 90.47 0.01 26.45 11.86 38.50 2.43 0.06[[email protected] app]#
rrqm/s:每秒這個裝置相關的讀取請求有多少被Merge了(當系統調用需要讀取資料的時候,VFS將請求發到各個FS,如果FS發現不同的讀取請求讀取的是相同Block的資料,FS會將這個請求合并Merge);
wrqm/s:每秒這個裝置相關的寫入請求有多少被Merge了。
rsec/s:每秒讀取的扇區數;
wsec/:每秒寫入的扇區數。
rKB/s:The number of read requests that were issued to the device per second,單位為K;
wKB/s:The number of write requests that were issued to the device per second,單位為K;
avgrq-sz 平均請求扇區的大小,單位是扇區
avgqu-sz 是平均請求隊列的長度。毫無疑問,隊列長度越短越好。
await: 每一個IO請求的處理的平均時間(單位是微秒毫秒)。這裡可以理解為IO的回應時間,一般地系統IO回應時間應該低於5ms,如果大於10ms就比較大了。
這個時間包括了隊列時間和服務時間,也就是說,一般情況下,await大於svctm,它們的差值越小,則說明隊列時間越短,反之差值越大,隊列時間越長,說明系統出了問題。
svctm 表示平均每次裝置I/O操作的服務時間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁碟效能很好,如果await的值遠高於svctm的值,則表示I/O隊列等待太長, 系統上啟動並執行應用程式將變慢。
%util: 在統計時間內所有處理IO時間,除以總共統計時間,util = (r/s+w/s) * (svctm/1000),util=(0.12+0.14)*(2.43/1000)=0.0006318,所以該參數暗示了裝置的繁忙程度
。一般地,如果該參數是100%表示裝置已經接近滿負荷運行了(當然如果是多磁碟,即使%util是100%,因為磁碟的並發能力,所以磁碟使用未必就到了瓶頸)。
-p device | ALL
與-x選項互斥,用於顯示塊裝置及系統磁碟分割的統計資訊.也可以在-p後指定一個裝置名稱,如:
# iostat -p hda
或顯示所有裝置
# iostat -p ALL
-c 擷取cpu部分狀態值
-t 在輸出資料時,列印搜集資料的時間.
-V 列印版本號碼和協助資訊.
本文出自 “我本不是菜鳥” 部落格,請務必保留此出處http://ityunwei2017.blog.51cto.com/7662323/1975864
linux-磁碟相關命令iostat