如何在 Linux 中獲得總讀取和總寫入 IOPS?
如何在 Linux 中使用命令行或以程式方式分別讀取和寫入 IOPS?我已經安裝了
sysstat
軟體包。請告訴我如何使用
sysstat
包命令分別計算這些。或者,是否可以使用文件系統計算它們?
例如:
/proc
或/sys
或/dev
iostat
是sysstat
包的一部分,如果需要,它能夠顯示整體 iops,或者通過讀/寫分隔顯示它們。使用 -d 標誌執行
iostat
僅顯示設備資訊頁面,使用 -x 顯示詳細資訊(單獨的讀/寫統計資訊)。您可以通過在命令行上簡單地添加它來指定您想要資訊的設備。嘗試執行
iostat -dx
並查看摘要以了解輸出。您還可以iostat -dx 1
用於顯示持續刷新的輸出,這對於故障排除或實時監控很有用,使用
awk
, 欄位 4 將為您提供reads/second,而欄位 5 將為您提供writes/second。僅讀取/秒:
iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'
僅寫入/秒:
iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'
讀取/秒和寫入/秒用斜線分隔:
iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'
總體 IOPS(大多數人談論的內容):
iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'
例如,使用我的主驅動器 /dev/sda 執行最後一個命令,如下所示:
dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70
請注意,您也不需要是 root 才能執行它,這對非特權使用者很有用。
TL;DR:如果您只是對 感興趣
sda
,以下命令將為您提供總體 IOPSsda
:
iostat -d sda | grep sda | awk '{ print $2; }'
如果您想將所有設備的 IOPS 相加,可以再次使用 awk:
iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'
這會產生如下輸出:
dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88