Linuxのiostat
コマンドでメモリ使用率を取得する方法を紹介します。
環境
- OS:CentOS Linux release 8.1.1911
[root@centos8 ~]# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
[root@centos8 ~]#
1. iostatコマンド
iostat
コマンドを実行すると、「CPU使用率の情報」と「I/Oデバイスの使用状況」が表示されます。
[root@centos8 ~]# iostat
Linux 4.18.0-147.8.1.el8_1.x86_64 (centos8) 2021年12月05日 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.57 0.08 0.92 1.28 0.00 97.15
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 2.47 92.18 22.54 595320 145558
scd0 0.00 0.16 0.00 1040 0
dm-0 2.64 90.16 23.19 582271 149739
dm-1 0.02 0.34 0.00 2220 0
[root@centos8 ~]#
-d
オプションを付けてiostat -d
を実行すると、「I/Oデバイスの使用状況」のみが表示されます。
[root@centos8 ~]# iostat -d
Linux 4.18.0-147.8.1.el8_1.x86_64 (centos8) 2021年12月05日 _x86_64_ (1 CPU)
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 1.85 67.83 16.79 595336 147328
scd0 0.00 0.12 0.00 1040 0
dm-0 1.98 66.34 17.28 582287 151651
dm-1 0.01 0.25 0.00 2220 0
[root@centos8 ~]#
-d
オプションと'-x'オプションを付けてiostat -dx
を実行すると、「拡張ディスク統計情報」が表示されます。
[root@centos8 ~]# iostat -dx
Linux 4.18.0-147.8.1.el8_1.x86_64 (centos8) 2021年12月05日 _x86_64_ (1 CPU)
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 1.39 0.46 67.81 16.78 0.00 0.17 0.33 27.25 36.65 28.51 0.06 48.68 36.59 0.78 0.14
scd0 0.00 0.00 0.12 0.00 0.00 0.00 0.00 0.00 52.67 0.00 0.00 38.52 0.00 0.96 0.00
dm-0 1.35 0.63 66.33 17.27 0.00 0.00 0.00 0.00 37.08 26.32 0.07 49.01 27.45 0.71 0.14
dm-1 0.01 0.00 0.25 0.00 0.00 0.00 0.00 0.00 31.29 0.00 0.00 22.65 0.00 0.70 0.00
[root@centos8 ~]#
出力項目の内容については「LinuxのiostatコマンドでサーバーのI/Oデバイスの使用状況を確認する」を参照してください。
2. IOPSの値
ここでIOPS(Input/Output Per Second)(1秒間のI/O回数)は、
-
iostat -d
コマンドの場合、「tps」の値 -
iostat -dx
コマンドの場合、「r/s」+「w/s」の値
となります。
3. iostatコマンドの実行結果をファイルに出力
1秒間隔でiostat -dx
コマンドの実行結果を表示させる場合、iostat -dx 1
を実行します。
[root@centos8 ~]# iostat -dx 1
Linux 4.18.0-147.8.1.el8_1.x86_64 (centos8) 2021年12月05日 _x86_64_ (1 CPU)
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 1.30 0.43 63.30 15.70 0.00 0.16 0.33 27.04 36.65 28.23 0.06 48.68 36.14 0.78 0.13
scd0 0.00 0.00 0.11 0.00 0.00 0.00 0.00 0.00 52.67 0.00 0.00 38.52 0.00 0.96 0.00
dm-0 1.26 0.59 61.91 16.16 0.00 0.00 0.00 0.00 37.08 26.10 0.06 49.01 27.19 0.71 0.13
dm-1 0.01 0.00 0.24 0.00 0.00 0.00 0.00 0.00 31.29 0.00 0.00 22.65 0.00 0.70 0.00
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
iostat -dx
コマンドの実行結果に「時刻」を付けて表示させる場合、以下のコマンドを実行します。
iostat -dx 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 }'
[root@centos8 ~]# iostat -dx 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 }'
2021/12/05 18:16:44 Linux 4.18.0-147.8.1.el8_1.x86_64 (centos8) 2021年12月05日 _x86_64_ (1 CPU)
2021/12/05 18:16:44
2021/12/05 18:16:44 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:16:44 sda 1.28 0.43 62.48 15.50 0.00 0.16 0.33 27.01 36.65 28.20 0.06 48.68 36.08 0.78 0.13
2021/12/05 18:16:44 scd0 0.00 0.00 0.11 0.00 0.00 0.00 0.00 0.00 52.67 0.00 0.00 38.52 0.00 0.96 0.00
2021/12/05 18:16:44 dm-0 1.25 0.59 61.11 15.95 0.00 0.00 0.00 0.00 37.08 26.08 0.06 49.01 27.16 0.71 0.13
2021/12/05 18:16:44 dm-1 0.01 0.00 0.23 0.00 0.00 0.00 0.00 0.00 31.29 0.00 0.00 22.65 0.00 0.70 0.00
2021/12/05 18:16:44
2021/12/05 18:16:45 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:16:45 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:45 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:45 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:45 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:45
2021/12/05 18:16:46 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:16:46 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:46 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:46 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:46 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:46
2021/12/05 18:16:47 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:16:47 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:47 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:47 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:47 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:16:47
ファイル(ここでは「iostat.log」)に出力する場合、以下のコマンドを実行します。
パイプをリフレッシュするために system(":")
を使用します。
iostat -dx 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { system(":") }' > iostat.log
[root@centos8 ~]# iostat -dx 1 | awk '{ print strftime("%Y/%m/%d %H:%M:%S"), $0 } { system(":") }' > iostat.log
[root@centos8 ~]# cat iostat.log
2021/12/05 18:18:50 Linux 4.18.0-147.8.1.el8_1.x86_64 (centos8) 2021年12月05日 _x86_64_ (1 CPU)
2021/12/05 18:18:50
2021/12/05 18:18:50 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:18:50 sda 1.27 0.42 61.66 15.29 0.00 0.16 0.33 26.99 36.65 28.19 0.06 48.68 36.06 0.78 0.13
2021/12/05 18:18:50 scd0 0.00 0.00 0.11 0.00 0.00 0.00 0.00 0.00 52.67 0.00 0.00 38.52 0.00 0.96 0.00
2021/12/05 18:18:50 dm-0 1.23 0.58 60.31 15.74 0.00 0.00 0.00 0.00 37.08 26.08 0.06 49.01 27.15 0.71 0.13
2021/12/05 18:18:50 dm-1 0.01 0.00 0.23 0.00 0.00 0.00 0.00 0.00 31.29 0.00 0.00 22.65 0.00 0.70 0.00
2021/12/05 18:18:50
2021/12/05 18:18:51 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:18:51 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:51 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:51 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:51 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:52
2021/12/05 18:18:52 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
2021/12/05 18:18:52 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:52 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:52 dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:52 dm-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
2021/12/05 18:18:53
[root@centos8 ~]#
長時間、実行結果を取得する場合、バックグラウンドで動かして、ログアウトしても終了しないようにしたいこともあります。
その場合、nohup
を使用して以下のコマンドを実行します。
nohup bash -c "iostat -dx 1 | awk '{print strftime(\"%y/%m/%d %H:%M:%S\"), \$0} { system(\":\") }'" < /dev/null > iostat.log 2>&1 &
[root@centos8 ~]# nohup bash -c "iostat -dx 1 | awk '{print strftime(\"%y/%m/%d %H:%M:%S\"), \$0} { system(\":\") }'" < /dev/null > iostat.log 2>&1 &
[1] 4054
[root@centos8 ~]#
出力ファイル名に時刻を持たせたい場合、以下のコマンドを実行します。
nohup bash -c "iostat -dx 1 | awk '{print strftime(\"%y/%m/%d %H:%M:%S\"), \$0} { system(\":\") }'" < /dev/null > iostat_$(date "+%Y%m%d_%H%M%S").log 2>&1 &
[root@centos8 ~]# nohup bash -c "iostat -dx 1 | awk '{print strftime(\"%y/%m/%d %H:%M:%S\"), \$0} { system(\":\") }'" < /dev/null > iostat_$(date "+%Y%m%d_%H%M%S").log 2>&1 &
[1] 4124
[root@centos8 ~]# ls iostat_*
iostat_20211205_182259.log
[root@centos8 ~]#
以上