search
LoginSignup
9

More than 5 years have passed since last update.

posted at

fioによるEBSボリュームの性能測定(RHEL6.5編)

残念ながらRHEL6.5の場合は、標準のyumレポジトリではインストールできないので、以下に手順を残しておきます。

epelレポジトリを使ってyum経由でインストールする

wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh epel-release-6-8.noarch.rpm

これでyumでインストールすればOKです。

yum install fio

epelレポジトリを有効にしないでインストールする方法

直接rpmを取得すれば良いので、以下のコマンドでインストールされます。

rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/fio-2.0.13-1.el6.x86_64.rpm

性能測定の方法

はじめに適当なIOPSのボリュームを作成し、インスタンスにAttachします(ここでは3000iopsのgp2のボリュームを作成しました)。
その後以下のようにファイルシステムを作成し適当な場所にマウントします。

mkfs.ext4 /dev/xvdf
mount /dev/xvdf /mnt

測定を行うには以下のようなコマンドを実行します。複数の例を載せているので好きなものを試してください。なおEBSの場合はランダムアクセスに最適化されています。

# シーケンシャルリード性能測定。ブロックサイズ16K
sudo fio --ioengine=libaio --iodepth=16 --direct=1 --size=100m --numjobs=16 --group_reporting --directory=/mnt --bs=16k --output=/home/ec2-user/result1.txt --name=sequential-read --rw=read

# シーケンシャルライト性能測定。ブロックサイズ16K
sudo fio --ioengine=libaio --iodepth=16 --direct=1 --size=100m --numjobs=16 --group_reporting --directory=/mnt --bs=16k --output=/home/ec2-user/result2.txt --name=sequential-write --rw=write

# ランダムI/O性能測定(リード比率70%)。ブロックサイズ16K
sudo fio --ioengine=libaio --iodepth=16 --direct=1 --size=100m --numjobs=16 --group_reporting --directory=/mnt --bs=16k --output=/home/ec2-user/result3.txt --name=random-r70w30 --rw=randrw --rwmixread=70

# ランダムI/O性能測定(リード比率30%)。ブロックサイズ16K
sudo fio --ioengine=libaio --iodepth=16 --direct=1 --size=100m --numjobs=16 --group_reporting --directory=/mnt --bs=16k --output=/home/ec2-user/result4.txt --name=random-r30w70 --rw=randrw --rwmixread=30

# ランダムI/O性能測定(リード比率0%)。ブロックサイズ16K
sudo fio --ioengine=libaio --iodepth=16 --direct=1 --size=100m --numjobs=16 --group_reporting --directory=/mnt --bs=16k --output=/home/ec2-user/result5.txt --name=random-r0w100 --rw=randrw --rwmixread=0

実行結果は上記の例ではファイルに出力している。ファイルを開くと以下のような感じになっています。ここで、readのiopsが934、writeのiopsが2197で合計すると、3131iopsとなり、プロビジョンした3000iopsとほぼ同等の値が出ていることが分かります。

random-r30w70: (groupid=0, jobs=16): err= 0: pid=1807: Sat Dec 20 00:40:23 2014
  read : io=488832KB, bw=14954KB/s, iops=934 , runt= 32689msec
    slat (usec): min=2 , max=102759 , avg=2699.31, stdev=12009.31
    clat (usec): min=102 , max=493087 , avg=75671.23, stdev=55478.45
     lat (usec): min=851 , max=493092 , avg=78370.75, stdev=56711.53
    clat percentiles (msec):
     |  1.00th=[   12],  5.00th=[   15], 10.00th=[   16], 20.00th=[   19],
     | 30.00th=[   43], 40.00th=[   60], 50.00th=[   71], 60.00th=[   81],
     | 70.00th=[   93], 80.00th=[  112], 90.00th=[  151], 95.00th=[  178],
     | 99.00th=[  255], 99.50th=[  306], 99.90th=[  379], 99.95th=[  424],
     | 99.99th=[  482]
    bw (KB/s)  : min=  179, max= 1912, per=6.27%, avg=937.88, stdev=276.78
  write: io=1122.4MB, bw=35157KB/s, iops=2197 , runt= 32689msec
    slat (usec): min=4 , max=103279 , avg=2593.33, stdev=11752.52
    clat (msec): min=1 , max=493 , avg=79.32, stdev=55.37
     lat (msec): min=1 , max=507 , avg=81.91, stdev=56.66
    clat percentiles (msec):
     |  1.00th=[   12],  5.00th=[   15], 10.00th=[   17], 20.00th=[   20],
     | 30.00th=[   51], 40.00th=[   65], 50.00th=[   74], 60.00th=[   83],
     | 70.00th=[   95], 80.00th=[  114], 90.00th=[  155], 95.00th=[  180],
     | 99.00th=[  255], 99.50th=[  310], 99.90th=[  396], 99.95th=[  429],
     | 99.99th=[  482]
    bw (KB/s)  : min=  328, max= 4175, per=6.27%, avg=2204.55, stdev=571.14
    lat (usec) : 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
    lat (msec) : 2=0.01%, 4=0.01%, 10=0.39%, 20=22.83%, 50=7.40%
    lat (msec) : 100=42.79%, 250=25.47%, 500=1.10%
  cpu          : usr=0.13%, sys=0.17%, ctx=30414, majf=0, minf=388
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=99.8%, 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.1%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued    : total=r=30552/w=71827/d=0, short=r=0/w=0/d=0

注意事項

初回の性能測定は、EBSがウォーミングされていない可能性があるので、何度か実行してからの結果を採用した方が良いです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
9