yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

雑にLinuxでDisk性能とか見る方法

hdparam

$ hdparm -tT  /dev/mapper/vg_00-lv_root

/dev/mapper/vg_00-lv_root:
 Timing cached reads:   15752 MB in  1.99 seconds = 7920.19 MB/sec
 Timing buffered disk reads: 602 MB in  3.01 seconds = 200.17 MB/sec

fio

[global]
ioengine=libaio
iodepth=1
size=1g
direct=1
runtime=60
directory=${TARGET}
stonewall

[Seq-Read]
bs=128k
rw=read

[Seq-Write]
bs=128k
rw=write

[Rand-Read-512K]
bs=512k
rw=randread

[Rand-Write-512K]
bs=512k
rw=randwrite

[Rand-Read-4K]
bs=4k
rw=randread

[Rand-Write-4K]
bs=4k
rw=randwrite

みたいな設定ファイルを作って

# mkdir fio_target
# TARGET_DIR="$(pwd)/fio_target"
# ls -l
-rw-rw-r-- 1 yumetodo yumetodo  329  8月 14 16:24 fio.txt
drwxr-xr-x 2 root     root      6  8月 14 16:30 fio_target
# TARGET=${TARGET_DIR} fio -f fio.txt --output-format=json | tee /tmp/fioresult_hostname.json

すると計測できる。あとはjqでjq '.jobs[]|select(.jobname == "Seq-Read")|{"128kread_bw_bytes": .read.bw_bytes}'とかして必要なやつだけ取り出す

UnixBench

Dhrystone 2 using register variables       39643828.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     6746.9 MWIPS (8.9 s, 7 samples)
Execl Throughput                               3371.3 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        533058.1 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          140689.9 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1581604.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                              669822.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  80602.7 lps   (10.0 s, 7 samples)
Process Creation                               7833.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5743.2 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1241.8 lpm   (60.0 s, 2 samples)
System Call Overhead                         415196.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   39643828.0   3397.1
Double-Precision Whetstone                       55.0       6746.9   1226.7
Execl Throughput                                 43.0       3371.3    784.0
File Copy 1024 bufsize 2000 maxblocks          3960.0     533058.1   1346.1
File Copy 256 bufsize 500 maxblocks            1655.0     140689.9    850.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    1581604.7   2726.9
Pipe Throughput                               12440.0     669822.4    538.4
Pipe-based Context Switching                   4000.0      80602.7    201.5
Process Creation                                126.0       7833.5    621.7
Shell Scripts (1 concurrent)                     42.4       5743.2   1354.5
Shell Scripts (8 concurrent)                      6.0       1241.8   2069.6
System Call Overhead                          15000.0     415196.9    276.8
                                                                   ========
System Benchmarks Index Score                                         949.0

みたいな結果が得られる