i/o計測アプリケーション
CentOSならepelリポジトリで入手可能
関連xfs/hw-raid
[root@s fio-cdm]# yum --enablerepo=epel install fio
この手のベンチマークアプリでwindowsならCrystalDiskMarkがある。
それに模した計測ができるfioなスクリプトがある。参照: https://github.com/buty4649/fio-cdm
これを参考にして手持ちのHDDを計測してみた
まずはそのfioなスクリプトを入手
[root@s src]# git clone https://github.com/buty4649/fio-cdm.git
[root@s src]# cd fio-cdm
[root@c fio-cdm]# ls
LICENSE README.md fio-cdm
[root@c fio-cdm]#
このスクリプトをそのまま実行してみたのだが、、なんか?な感じだった
[root@s fio-cdm]# ./fio-cdm /share
| | Read(MB/s)|Write(MB/s)|
|------|-----------|-----------|
| Seq | 181.175| 138.024|
| 512K | 45.725| 137.653|
| 4K | 49693.000| 24.419|
|4KQD32| 95043.000| 2.667|
[root@s fio-cdm]#
なので、生データをそのまま表示してみた fio/計測1
単に、4Kと4DQD32のReadは単位の接頭辞なしのByte表記みたい。
SSDなディレクトリを対象に計測すると
[root@s fio-cdm]# ./fio-cdm /tmp
| | Read(MB/s)|Write(MB/s)|
|------|-----------|-----------|
| Seq | 454.505| 375.504|
| 512K | 415.584| 375.504|
| 4K | 32.310| 158.146|
|4KQD32| 155.034| 267.224|
[root@s fio-cdm]#
と表記された。
*上記fio-cmdはfioのversionが2ならOK
だが、いまはfioがversion3になってfioの出力フォーマットが変更されたため使えません。
fio version3向けの fio-cmd を作られた方がおられました。
https://mecobalamin.hatenablog.com/entry/2019/05/17/203406
敬意を表します。
kBの取り扱いに支障がありましたので、修正してみました fio/fio-cdm_200428.sh
bonnie++との比較 †
bonnie++で示した bonnie++-1.03e にて計測してみた
[root@s ~]# ./bonnie++/sbin/bonnie++ -d /share -n 256:1024:1024:16 -u root
Sequential Output | Sequential Input | Random Seeks | Sequential Create | Random Create |
Per Char | Block | Rewrite | Per Char | Block | Create | Read | Delete | Create | Read | Delete |
158741(99) | 179745(5) | 79391(4) | 139863(91) | 236876(6) | 277.0(1) | 16954(25) | 42731(14) | 68769(104) | 19115(28) | 247214(95) | 50341(103) |
ちなにみ bonnie++-1.96 だと
[root@s ~]# bonnie++ -d /share -n 256:1024:1024:16 -u root
(略
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
s.sybyl.local 63G 975 97 181171 4 81927 3 5618 93 223490 5 299.6 8
Latency 25650us 57697us 701ms 13444us 173ms 1107ms
Version 1.96 ------Sequential Create------ --------Random Create--------
s.sybyl.local -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
256:1024:1024/16 16705 25 194794 67 57208 87 16613 24 282046 91 48045 91
Latency 6189ms 285ms 11169us 4317ms 19271us 3482us
[root@s ~]#
1.03eと1.96で、Sequential OutputのBlockとRewrite、Sequential InputのBlock、RandomのSeeksはほぼ同じかな。
version | Sequential Output | Sequential Input | Random |
Block | Rewrite | Block | Seeks |
1.03e | 179745 | 79391 | 236876 | 277.0 |
1.96 | 181171 | 81927 | 223490 | 299.6 |
これとfioの結果を比較して、、、
[root@s fio-cdm]# ./fio-cdm /share
| | Read(MB/s)|Write(MB/s)|
|------|-----------|-----------|
| Seq | 181.175| 138.024|
| 512K | 45.725| 137.653|
| 4K | 49693.000| 24.419|
|4KQD32| 95043.000| 2.667|
[root@s fio-cdm]#
Seqは同じくらいかな....
ddコマンドで比較 †
もっと単純なコマンドで比較してみた
[root@s ~]# cd /share/
[root@s share]# time dd if=/dev/zero of=./zero1 bs=1G count=10 conv=fsync
10+0 レコード入力
10+0 レコード出力
10737418240 バイト (11 GB) コピーされました、 58.8793 秒、 182 MB/秒
real 0m58.887s
user 0m0.000s
sys 0m4.594s
[root@s share]#
となる。これって書込みなのだが、fio/bonnie++の値からReadなのかな?
hdparam †
readのみの計測ならhdparmがある。
[root@s ~]# yum install hdparm
/shareを有するデバイスは/dev/sdb1なので、計測は下記のようにして行う
[root@s share]# hdparm -t /dev/sdb1
/dev/sdb1:
Timing buffered disk reads: 528 MB in 3.00 seconds = 175.91 MB/sec
[root@s share]#
ついでにssdな/tmpを含む/dev/sda4を計測してみた
[root@s share]# hdparm -t /dev/sda4
/dev/sda4:
Timing buffered disk reads: 1154 MB in 3.00 seconds = 384.33 MB/sec
[root@s share]#
デバイス全体では
[root@s share]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 1310 MB in 3.00 seconds = 435.99 MB/sec
[root@s share]#
とあり、fioの値に似てくる
Sequential readな部分はどのソフトでも同じような値を出すみたい。