Linux

如何在 Linux 中獲得總讀取和總寫入 IOPS?

  • February 20, 2017

如何在 Linux 中使用命令行或以程式方式分別讀取和寫入 IOPS?我已經安裝了sysstat軟體包。

請告訴我如何使用sysstat包命令分別計算這些。

或者,是否可以使用文件系統計算它們?

例如: /proc/sys/dev

iostatsysstat包的一部分,如果需要,它能夠顯示整體 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,以下命令將為您提供總體 IOPS sda

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

引用自:https://unix.stackexchange.com/questions/225095