fio 2.17をCentOS 7.2へインストールしてI/O性能を測定
最終更新日:2020/11/21 | 公開日:2017/01/29
目次
概要
ディスクのI/O性能を測定するために、LinuxのI/Oベンチマークツールである fio をインストールします。 CentOS 7.2のインストールメディアにはfioのパッケージが同梱されていなかったので、 ソースコードをダウンロードしてコンパイルします。 テストしたサーバ環境にはgccコンパイラがインストールされていなかったので、 まずはコンパイルに必要なパッケージ群からインストールします。
サーバ構成
OSバージョン
CentOS 7.2.1511 x86_64
ソフトウェア・パッケージ一覧
fioソースコードのtarファイル。今回使用したバージョンは2.17です。
- fio-2.17.tar.gz
gccコンパイラと依存パッケージは以下の通りです。
- gcc-4.8.5-4.el7.x86_64.rpm
- cpp-4.8.5-4.el7.x86_64.rpm
- glibc-devel-2.17-105.el7.x86_64.rpm
- glibc-headers-2.17-105.el7.x86_64.rpm
- libmpc-1.0.1-3.el7.x86_64.rpm
- mpfr-3.1.1-4.el7.x86_64.rpm
- kernel-headers-3.10.0-327.el7.x86_64.rpm
環境構築
インストール
コンパイラのインストール
CentOS 7.2のインストールメディアをDVDドライブに挿入し、以下のコマンドを実行します。
# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
# cd /media/cdrom/Packages/
# rpm -ihv gcc-4.8.5-4.el7.x86_64.rpm \ ←引数は1行で入力しても良い
> cpp-4.8.5-4.el7.x86_64.rpm \
> glibc-devel-2.17-105.el7.x86_64.rpm \
> glibc-headers-2.17-105.el7.x86_64.rpm \
> libmpc-1.0.1-3.el7.x86_64.rpm \
> mpfr-3.1.1-4.el7.x86_64.rpm \
> kernel-headers-3.10.0-327.el7.x86_64.rpm
警告: gcc-4.8.5-4.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID f4a80eb5: NOKEY
準備しています... ################################# [100%]
更新中 / インストール中...
1:mpfr-3.1.1-4.el7 ################################# [ 14%]
2:libmpc-1.0.1-3.el7 ################################# [ 29%]
3:cpp-4.8.5-4.el7 ################################# [ 43%]
4:kernel-headers-3.10.0-327.el7 ################################# [ 57%]
5:glibc-headers-2.17-105.el7 ################################# [ 71%]
6:glibc-devel-2.17-105.el7 ################################# [ 86%]
7:gcc-4.8.5-4.el7 ################################# [100%]
# cd /
# umount /media/cdrom
fioのソースコードをダウンロード
fioのソースコードはtarファイルで提供されています。 wgetコマンドでダウンロードします。
# wget http://brick.kernel.dk/snaps/fio-2.17.tar.gz --2017-01-29 02:45:49-- http://brick.kernel.dk/snaps/fio-2.17.tar.gz brick.kernel.dk (brick.kernel.dk) をDNSに問いあわせています... 216.160.245.99 brick.kernel.dk (brick.kernel.dk)|216.160.245.99|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 664471 (649K) [application/x-gzip] `fio-2.17.tar.gz' に保存中 100%[==================================================================================================>] 664,471 167KB/s 時間 3.9s 2017-01-29 02:45:53 (167 KB/s) - `fio-2.17.tar.gz' へ保存完了 [664471/664471] # ls -l fio-2.17.tar.gz -rw-r--r-- 1 root root 664471 1月 18 00:53 fio-2.17.tar.gz
fioのコンパイルとインストール
ダウンロードしたfioのtarファイルを展開し、ビルド、インストールします。
# tar zxvf fio-2.17.tar.gz fio-2.17/ fio-2.17/.gitignore fio-2.17/.travis.yml fio-2.17/COPYING fio-2.17/FIO-VERSION-GEN fio-2.17/GFIO-TODO fio-2.17/HOWTO fio-2.17/MORAL-LICENSE fio-2.17/Makefile fio-2.17/README (中略) fio-2.17/tools/plot/samples/fio-logs.tar.gz fio-2.17/trim.c fio-2.17/trim.h fio-2.17/unit_tests/ fio-2.17/unit_tests/steadystate_tests.py fio-2.17/verify-state.h fio-2.17/verify.c fio-2.17/verify.h fio-2.17/workqueue.c fio-2.17/workqueue.h # ls -ld fio-2.17 drwxrwxr-x 15 root root 4096 1月 18 00:51 fio-2.17 ←tarを展開して生成されたディレクトリ # cd fio-2.17/ # make ←ソースからプログラムをビルド Makefile:20: config-host.mak: そのようなファイルやディレクトリはありません FIO_VERSION = fio-2.17 Running configure for you... Operating system Linux CPU x86_64 Big endian no Compiler gcc Cross compile no Static build no Wordsize 64 zlib no Linux AIO support no POSIX AIO support yes POSIX AIO support needs -lrt yes POSIX AIO fsync yes Solaris AIO support no __sync_fetch_and_add yes libverbs no rdmacm no Linux fallocate yes POSIX fadvise yes POSIX fallocate yes sched_setaffinity(3 arg) yes sched_setaffinity(2 arg) no clock_gettime yes CLOCK_MONOTONIC yes CLOCK_MONOTONIC_RAW yes CLOCK_MONOTONIC_PRECISE no clockid_t yes gettimeofday yes fdatasync yes sync_file_range yes EXT4 move extent yes Linux splice(2) yes GUASI no Fusion-io atomic engine no libnuma no strsep yes strcasestr yes strlcat no getopt_long_only() yes inet_aton yes socklen_t yes __thread yes RUSAGE_THREAD yes SCHED_IDLE yes TCP_NODELAY yes Net engine window_size yes TCP_MAXSEG yes RLIMIT_MEMLOCK yes pwritev/preadv yes pwritev2/preadv2 no IPv6 helpers yes Rados Block Device engine no rbd blkin tracing no setvbuf yes Gluster API engine no s390_z196_facilities no HDFS engine no MTD yes libpmem no libpmemblk no NVML pmemblk engine no NVML dev-dax engine no lex/yacc for arithmetic no getmntent yes getmntinfo no Static Assert yes bool yes march_armv8_a_crc_crypto no Consider installing zlib-dev (zlib-devel), some fio features depend on it. CC crc/crc16.o CC crc/sha512.o CC crc/crc7.o CC crc/sha1.o CC crc/crc32c.o CC crc/crc32c-arm64.o CC crc/crc32.o CC crc/murmur3.o CC crc/crc32c-intel.o CC crc/xxhash.o CC crc/test.o CC crc/sha256.o CC crc/fnv.o CC crc/md5.o CC crc/crc64.o CC lib/rand.o CC lib/rbtree.o CC lib/ieee754.o CC lib/pattern.o CC lib/mountcheck.o CC lib/num2str.o CC lib/strntol.o CC lib/bloom.o CC lib/lfsr.o CC lib/memalign.o CC lib/output_buffer.o CC lib/getrusage.o CC lib/zipf.o CC lib/hweight.o CC lib/flist_sort.o CC lib/axmap.o CC lib/prio_tree.o CC lib/gauss.o CC gettime.o CC ioengines.o CC init.o CC stat.o CC log.o CC time.o CC filesetup.o CC eta.o CC verify.o CC memory.o CC io_u.o CC parse.o CC mutex.o CC options.o CC smalloc.o CC filehash.o CC profile.o CC debug.o CC engines/cpu.o CC engines/mmap.o CC engines/sync.o CC engines/null.o CC engines/net.o CC server.o CC client.o CC iolog.o CC backend.o CC libfio.o CC flow.o CC cconv.o CC gettime-thread.o CC helpers.o CC json.o CC idletime.o CC td_error.o CC profiles/tiobench.o CC profiles/act.o CC io_u_queue.o CC filelock.o CC workqueue.o CC rate-submit.o CC optgroup.o CC helper_thread.o CC steadystate.o CC engines/posixaio.o CC engines/falloc.o CC engines/e4defrag.o CC engines/splice.o CC oslib/strlcat.o CC engines/mtd.o CC oslib/libmtd.o CC oslib/libmtd_legacy.o CC diskutil.o CC fifo.o CC blktrace.o CC cgroup.o CC trim.o CC engines/sg.o CC engines/binject.o CC oslib/linux-dev-lookup.o CC fio.o LINK fio CC t/log.o CC t/genzipf.o CC oslib/strcasestr.o LINK t/fio-genzipf CC t/btrace2fio.o LINK t/fio-btrace2fio CC t/dedupe.o CC t/debug.o CC t/arch.o LINK t/fio-dedupe CC t/verify-state.o LINK t/fio-verify-state CC t/stest.o LINK t/stest CC t/ieee754.o LINK t/ieee754 CC t/axmap.o LINK t/axmap CC t/lfsr-test.o LINK t/lfsr-test CC t/gen-rand.o LINK t/gen-rand # make install ←ビルドしたプログラムをインストール install -m 755 -d /usr/local/bin install fio t/fio-genzipf t/fio-btrace2fio t/fio-dedupe t/fio-verify-state ./tools/fio_generate_plots ./tools/plot/fio2gnuplot ./tools/genfio ./tools/fiologparser.py ./tools/fio_latency2csv.py ./tools/hist/fiologparser_hist.py /usr/local/bin install -m 755 -d /usr/local/man/man1 install -m 644 ./fio.1 /usr/local/man/man1 install -m 644 ./tools/fio_generate_plots.1 /usr/local/man/man1 install -m 644 ./tools/plot/fio2gnuplot.1 /usr/local/man/man1 install -m 644 ./tools/hist/fiologparser_hist.py.1 /usr/local/man/man1 install -m 755 -d /usr/local/share/fio install -m 644 ./tools/plot/*gpm /usr/local/share/fio/
設定
インストール後の設定作業はありません。
動作テスト
fioのバージョン確認
fioコマンドが実行できるか確認します。 以下のコマンドでバージョンが表示されればインストールは成功しています。
# fio -version fio-2.17
利用方法
I/O性能の測定
fioでI/O性能の測定を行います。 シーケンシャルリード、シーケンシャルライト、ランダムリード、ランダムライトの4種類の測定を行います。 各測定での共通条件として、I/Oのブロックサイズは4KBで、1つ当たり100MiBのサイズのファイルに対して、16並行でI/Oを実行することとします。
テスト後はカレントディレクトリにジョブ名を含むテスト用のファイルが生成されたままになりますので削除します。
シーケンシャルリードの測定
# fio -name=r -direct=1 -rw=read -bs=4k -size 100M -numjobs=16 -runtime=16 -group_reporting r: (g=0): rw=read, bs=4096B-4096B,4096B-4096B,4096B-4096B, ioengine=psync, iodepth=1 ... fio-2.17 Starting 16 processes r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) r: Laying out IO file(s) (1 file(s) / 100MiB) Jobs: 16 (f=16): [R(16)][100.0%][r=8368KiB/s,w=0KiB/s][r=2092,w=0 IOPS][eta 00m:00s] r: (groupid=0, jobs=16): err= 0: pid=10497: Sun Jan 29 03:25:17 2017 read: IOPS=2269, BW=9079KiB/s (9297kB/s)(142MiB/16003msec) clat (usec): min=376, max=1099.7k, avg=7045.40, stdev=18118.37 lat (usec): min=376, max=1099.7k, avg=7045.67, stdev=18118.37 clat percentiles (usec): | 1.00th=[ 1112], 5.00th=[ 1272], 10.00th=[ 1288], 20.00th=[ 1320], | 30.00th=[ 2672], 40.00th=[ 4448], 50.00th=[ 8896], 60.00th=[ 9408], | 70.00th=[ 9664], 80.00th=[ 9920], 90.00th=[10304], 95.00th=[10688], | 99.00th=[15808], 99.50th=[19840], 99.90th=[209920], 99.95th=[477184], | 99.99th=[823296] lat (usec) : 500=0.02%, 750=0.04%, 1000=0.12% lat (msec) : 2=27.53%, 4=8.72%, 10=46.87%, 20=16.22%, 50=0.27% lat (msec) : 100=0.05%, 250=0.08%, 500=0.04%, 750=0.02%, 1000=0.01% lat (msec) : 2000=0.01% cpu : usr=0.10%, sys=0.44%, ctx=36349, majf=0, minf=536 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwt: total=36323,0,0, short=0,0,0, dropped=0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=9079KiB/s (9297kB/s), 9079KiB/s-9079KiB/s (9297kB/s-9297kB/s), io=142MiB (149MB), run=16003-16003msec Disk stats (read/write): dm-0: ios=35952/0, merge=0/0, ticks=272656/0, in_queue=272753, util=100.00%, aggrios=36323/1, aggrmerge=0/0, aggrticks=275483/1, aggrin_queue=275460, aggrutil=100.00% sda: ios=36323/1, merge=0/0, ticks=275483/1, in_queue=275460, util=100.00% # ls -l r.* -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.0.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.1.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.10.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.11.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.12.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.13.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.14.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.15.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.2.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.3.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.4.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.5.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.6.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.7.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.8.0 -rw-r--r-- 1 root root 104857600 1月 29 03:24 r.9.0 # rm -f ./r.* # ls -l r.* ls: r.* にアクセスできません: そのようなファイルやディレクトリはありません
シーケンシャルライトの測定
# fio -name=w -direct=1 -rw=write -bs=4k -size=100M -numjobs=16 -runtime=16 -group_reporting w: (g=0): rw=write, bs=4096B-4096B,4096B-4096B,4096B-4096B, ioengine=psync, iodepth=1 ... fio-2.17 Starting 16 processes w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) w: Laying out IO file(s) (1 file(s) / 100MiB) Jobs: 16 (f=16): [W(16)][100.0%][r=0KiB/s,w=6491KiB/s][r=0,w=1622 IOPS][eta 00m:00s] w: (groupid=0, jobs=16): err= 0: pid=10523: Sun Jan 29 03:30:04 2017 write: IOPS=1182, BW=4730KiB/s (4844kB/s)(73.1MiB/16005msec) clat (usec): min=999, max=445480, avg=13523.88, stdev=13468.31 lat (usec): min=999, max=445481, avg=13524.34, stdev=13468.32 clat percentiles (msec): | 1.00th=[ 10], 5.00th=[ 10], 10.00th=[ 10], 20.00th=[ 10], | 30.00th=[ 10], 40.00th=[ 10], 50.00th=[ 10], 60.00th=[ 10], | 70.00th=[ 13], 80.00th=[ 20], 90.00th=[ 23], 95.00th=[ 25], | 99.00th=[ 26], 99.50th=[ 27], 99.90th=[ 31], 99.95th=[ 437], | 99.99th=[ 437] lat (usec) : 1000=0.01% lat (msec) : 2=0.02%, 4=0.01%, 10=65.81%, 20=14.86%, 50=19.22% lat (msec) : 500=0.08% cpu : usr=0.05%, sys=0.27%, ctx=18946, majf=0, minf=517 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwt: total=0,18927,0, short=0,0,0, dropped=0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=4730KiB/s (4844kB/s), 4730KiB/s-4730KiB/s (4844kB/s-4844kB/s), io=73.1MiB (77.6MB), run=16005-16005msec Disk stats (read/write): dm-0: ios=0/18641, merge=0/0, ticks=0/273527, in_queue=273619, util=100.00%, aggrios=0/18930, aggrmerge=0/0, aggrticks=0/276697, aggrin_queue=276686, aggrutil=100.00% sda: ios=0/18930, merge=0/0, ticks=0/276697, in_queue=276686, util=100.00% # ls -l w.* -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.0.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.1.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.10.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.11.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.12.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.13.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.14.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.15.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.2.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.3.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.4.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.5.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.6.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.7.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.8.0 -rw-r--r-- 1 root root 104857600 1月 29 03:30 w.9.0 # rm -f ./w.* # ls -l w.* ls: w.* にアクセスできません: そのようなファイルやディレクトリはありません
ランダムリードの測定
# fio -name=rr -direct=1 -rw=randread -bs=4k -size 100M -numjobs=16 -runtime=16 -group_reporting rr: (g=0): rw=randread, bs=4096B-4096B,4096B-4096B,4096B-4096B, ioengine=psync, iodepth=1 ... fio-2.17 Starting 16 processes rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) rr: Laying out IO file(s) (1 file(s) / 100MiB) Jobs: 16 (f=16): [r(16)][100.0%][r=1048KiB/s,w=0KiB/s][r=262,w=0 IOPS][eta 00m:00s] rr: (groupid=0, jobs=16): err= 0: pid=10552: Sun Jan 29 03:31:50 2017 read: IOPS=264, BW=1058KiB/s (1083kB/s)(16.7MiB/16121msec) clat (usec): min=909, max=1517.5k, avg=60265.76, stdev=84500.66 lat (usec): min=910, max=1517.5k, avg=60266.17, stdev=84500.67 clat percentiles (msec): | 1.00th=[ 5], 5.00th=[ 8], 10.00th=[ 10], 20.00th=[ 14], | 30.00th=[ 19], 40.00th=[ 25], 50.00th=[ 34], 60.00th=[ 45], | 70.00th=[ 61], 80.00th=[ 88], 90.00th=[ 141], 95.00th=[ 200], | 99.00th=[ 371], 99.50th=[ 469], 99.90th=[ 1045], 99.95th=[ 1385], | 99.99th=[ 1516] lat (usec) : 1000=0.02% lat (msec) : 2=0.05%, 4=0.61%, 10=11.21%, 20=20.43%, 50=31.50% lat (msec) : 100=19.59%, 250=13.84%, 500=2.35%, 750=0.28%, 2000=0.12% cpu : usr=0.01%, sys=0.06%, ctx=4292, majf=0, minf=530 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwt: total=4263,0,0, short=0,0,0, dropped=0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): READ: bw=1058KiB/s (1083kB/s), 1058KiB/s-1058KiB/s (1083kB/s-1083kB/s), io=16.7MiB (17.5MB), run=16121-16121msec Disk stats (read/write): dm-0: ios=4254/0, merge=0/0, ticks=273348/0, in_queue=276242, util=100.00%, aggrios=4263/2, aggrmerge=0/0, aggrticks=278011/9, aggrin_queue=278015, aggrutil=100.00% sda: ios=4263/2, merge=0/0, ticks=278011/9, in_queue=278015, util=100.00% # ls -l rr.* -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.0.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.1.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.10.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.11.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.12.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.13.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.14.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.15.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.2.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.3.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.4.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.5.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.6.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.7.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.8.0 -rw-r--r-- 1 root root 104857600 1月 29 03:31 rr.9.0 # rm -f ./rr.* # ls -l rr.* ls: rr.* にアクセスできません: そのようなファイルやディレクトリはありません
ランダムライトの測定
# fio -name=rw -direct=1 -rw=randwrite -bs=4k -size=100M -numjobs=16 -runtime=16 -group_reporting rw: (g=0): rw=randwrite, bs=4096B-4096B,4096B-4096B,4096B-4096B, ioengine=psync, iodepth=1 ... fio-2.17 Starting 16 processes rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) rw: Laying out IO file(s) (1 file(s) / 100MiB) Jobs: 16 (f=16): [w(16)][100.0%][r=0KiB/s,w=1139KiB/s][r=0,w=284 IOPS][eta 00m:00s] rw: (groupid=0, jobs=16): err= 0: pid=10576: Sun Jan 29 03:33:32 2017 write: IOPS=291, BW=1166KiB/s (1194kB/s)(18.3MiB/16051msec) clat (msec): min=5, max=147, avg=54.77, stdev=10.12 lat (msec): min=5, max=147, avg=54.77, stdev=10.12 clat percentiles (msec): | 1.00th=[ 21], 5.00th=[ 44], 10.00th=[ 46], 20.00th=[ 49], | 30.00th=[ 51], 40.00th=[ 53], 50.00th=[ 55], 60.00th=[ 57], | 70.00th=[ 59], 80.00th=[ 62], 90.00th=[ 65], 95.00th=[ 70], | 99.00th=[ 78], 99.50th=[ 82], 99.90th=[ 145], 99.95th=[ 145], | 99.99th=[ 147] lat (msec) : 10=0.19%, 20=0.75%, 50=26.50%, 100=72.22%, 250=0.34% cpu : usr=0.01%, sys=0.10%, ctx=4732, majf=0, minf=504 IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued rwt: total=0,4680,0, short=0,0,0, dropped=0,0,0 latency : target=0, window=0, percentile=100.00%, depth=1 Run status group 0 (all jobs): WRITE: bw=1166KiB/s (1194kB/s), 1166KiB/s-1166KiB/s (1194kB/s-1194kB/s), io=18.3MiB (19.2MB), run=16051-16051msec Disk stats (read/write): dm-0: ios=0/4631, merge=0/0, ticks=0/273865, in_queue=274299, util=100.00%, aggrios=0/4687, aggrmerge=0/0, aggrticks=0/277708, aggrin_queue=277703, aggrutil=100.00% sda: ios=0/4687, merge=0/0, ticks=0/277708, in_queue=277703, util=100.00% # ls -l rw.* -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.0.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.1.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.10.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.11.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.12.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.13.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.14.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.15.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.2.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.3.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.4.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.5.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.6.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.7.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.8.0 -rw-r--r-- 1 root root 104857600 1月 29 03:33 rw.9.0 # rm -f ./rw.* # ls -l rw.* ls: rw.* にアクセスできません: そのようなファイルやディレクトリはありません