OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2017/01/29

OSSでLinuxサーバ構築

fio 2.17をCentOS 7.2へインストールしてI/O性能を測定

トップページOSSでLinuxサーバ構築 > fio 2.17をCentOS 7.2へインストールしてI/O性能を測定
このエントリーをはてなブックマークに追加

概要

 ディスクの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

サーバ構築

インストール

(1) コンパイラのインストール

 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

(2) 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

(3) 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.* にアクセスできません: そのようなファイルやディレクトリはありません

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■