AWS re:Inventで発表されていた、SSDによる高性能ランダムI/O用に最適化されたという、Amazon EC2の新しいインスタンスタイプ「I2インスタンス」が先日使えるようになりました。
インスタンスタイプとしては"i2.*"からはじまるやつです。
I2インスタンスタイプは、特にリレーショナルデータベース、NoSQLデータベース、およびトランザクションシステムによって生成されるI/O集約型のワークロードをホストするように設計されています。最も大きいサイズのI2インスタンスタイプは、4KBのブロックサイズでの計測で、秒間365,000を超えるランダムリードと秒間315,000を超えるランダムライトの性能を発揮します。4つのインスタンスサイズをご利用いただけますので、必要なストレージとI/O性能が高くなのに合わせて、小さくスタートし、スケールアップしていくことができます。
Amazon Web Services ブログ: 【AWS発表】Amazon EC2 の 新インスタンスタイプ I2 が利用可能に!
このインスタンスタイプはHI1インスタンスの後継にあたる第2世代のハイI/Oインスタンスタイプで、HI1インスタンスの欠けていた部分を補います。HI1インスタンスタイプと比較して、I2ファミリーは、より高速なプロセッサー、3つの追加のインスタンスサイズ、仮想CPUあたり2倍のメモリ容量、56% 多くなったSSDベースのインスタンスストレージを提供します。
これは、かなり凄そうな雰囲気が出ているので、いつものごとく軽くベンチマークをとってみることにしました。
利用できるインスタンスタイプ
上記の公式ブログより抜粋しますが、以下のような感じです。
インスタンスタイプ | 仮想CPU数 | メモリ | SSDの容量 | 料金 |
---|---|---|---|---|
i2.xlarge | 4 | 30.5GB | 1 x 800 GB | $0.85/h |
i2.2xlarge | 8 | 61GB | 2 x 800 GB | $1.71/h |
i2.4xlarge | 16 | 122GB | 4 x 800 GB | $3.41/h |
i2.8xlarge | 32 | 244GB | 8 x 800 GB | $6.82/h |
今回は最も性能の良い、SSDを8本積んでいる"i2.8xlarge"を使ってみました。
ベンチマーク方法
今回も、"fio"を使ってベンチマークをとってみます。他、Amazon Linuxを利用したり、ファイルシステムはxfsを使う等、基本的な計測方法は、以下のエントリで紹介したやり方と同じです。
尚、計測対象は、以下の4パターンです。
- 800GBのSSD1本のデバイスに対して計測
- 800GBのSSD2本をソフトウェアRAID0で束ねたデバイスに対して計測
- 800GBのSSD4本をソフトウェアRAID0で束ねたデバイスに対して計測
- 800GBのSSD8本をソフトウェアRAID0で束ねたデバイスに対して計測
ちなみにベンチマークを取るのに使ったfioコマンドとオプションは以下の6つです。
まず、上から4つは、それぞれシーケンシャルリード/ライトとランダムリード/ライト、ブロックサイズは4kで設定しています。IOPSのチェックが主目的です。
# fio -filename=/data/test5g -direct=1 -rw=read -bs=4k -size=5G -numjobs=64 -runtime=16 -group_reporting -name=file1 # fio -filename=/data/test5g -direct=1 -rw=write -bs=4k -size=5G -numjobs=64 -runtime=16 -group_reporting -name=file1 # fio -filename=/data/test5g -direct=1 -rw=randread -bs=4k -size=5G -numjobs=64 -runtime=16 -group_reporting -name=file1 # fio -filename=/data/test5g -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64 -runtime=16 -group_reporting -name=file1
あとの2つは、ブロックサイズを大きくして、主にbandwidth(転送レート)をチェックしています。
# fio -filename=/data/test5g -direct=1 -rw=read -bs=32m -size=5G -numjobs=16 -runtime=16 -group_reporting -name=file1 # fio -filename=/data/test5g -direct=1 -rw=write -bs=32m -size=5G -numjobs=16 -runtime=16 -group_reporting -name=file1
I2インスタンス(i2.*)の起動
公式ブログにも記載がありますが、I2インスタンスを使う際は、HVM(ハードウェア仮想化マシン)用のAMIを選択する必要があります。
(最初この点を見逃していて、「あれ、I2インスタンスが選べない...!!」って探していました・・・。)
I2インスタンスは、ハードウェア仮想化 (HVM) AMIのみをサポートします。このインスタンスから最高のI/Oパフォーマンスを得るためには、Amazon Linux AMI 2013.09.02もしくは、バージョン3.8以上のカーネルを持ったLinux AMIを使う必要があります。古いバージョンのカーネルでは、I2インスタンスを使っても十分なI/O性能を発揮することができません。
Amazon Web Services ブログ: 【AWS発表】Amazon EC2 の 新インスタンスタイプ I2 が利用可能に!
AWS Management Consoleでは、↑のようにHVM imageなAmazon Linuxを選択しましょう。
すると、こんな感じで、インスタンスタイプの選択画面でI2インスタンスが選べるようになります。
何気に、"i2.8xlarge"は10Gネットワーク利用可です。
I2インスタンス(i2.8xlarge)を起動!!
↓のように、/dev/xvdb〜/dev/xvdiまで、800GBのSSDデバイスがズラリと並んでいるのは壮観。
# ll /dev/xvd* brw-rw---- 1 root disk 202, 0 Dec 23 13:22 /dev/xvda brw-rw---- 1 root disk 202, 1 Dec 23 13:22 /dev/xvda1 brw-rw---- 1 root disk 202, 16 Dec 23 13:22 /dev/xvdb brw-rw---- 1 root disk 202, 32 Dec 23 13:22 /dev/xvdc brw-rw---- 1 root disk 202, 48 Dec 23 13:22 /dev/xvdd brw-rw---- 1 root disk 202, 64 Dec 23 13:22 /dev/xvde brw-rw---- 1 root disk 202, 80 Dec 23 13:22 /dev/xvdf brw-rw---- 1 root disk 202, 96 Dec 23 13:22 /dev/xvdg brw-rw---- 1 root disk 202, 112 Dec 23 13:22 /dev/xvdh brw-rw---- 1 root disk 202, 128 Dec 23 13:22 /dev/xvdi
CPUは、公称通りの Xeon E5-2670 v2 (2.50GHz) が2発!
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz stepping : 4 microcode : 0x416 cpu MHz : 2500.088 cache size : 25600 KB physical id : 0 siblings : 16 core id : 0 cpu cores : 8 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm xsaveopt fsgsbase smep erms bogomips : 5000.17 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: ・・・・・が、32core分続きます・・・・・
ベンチマーク結果
以下が、SSD1本の単体と、複数のSSDデバイスをRAID0(ストライピング)で束ねた際(2, 4, 8本)のベンチマーク結果です。
IOPS
Benchmark Type | SSD x1 | SSD x2 | SSD x4 | SSD x8 |
---|---|---|---|---|
4k, sequential read | 62898 | 122407 | 180835 | 197893 |
4k, sequential write | 35716 | 42150 | 42152 | 41265 |
4k, randam read | 61290 | 126650 | 192157 | 203979 |
4k, randam write | 22085 | 37529 | 36699 | 37269 |
BandWidth(帯域幅, 単位はMB/s)
Benchmark Type | SSD x1 | SSD x2 | SSD x4 | SSD x8 |
---|---|---|---|---|
32m, sequential read | 468.8 | 922.9 | 1798.2 | 3557.2 |
32m, sequential write | 462.9 | 917.5 | 1808.8 | 3490.9 |
結果ですが、SSD単体でシーケンシャル/ランダムリードともに60,000IOPS超と、なかなか優秀な結果です。
IOPSについては、シーケンシャル/ランダムリードについては、4本までは、ほぼリニアな感じで性能が伸びていますが、8本になると、今回のベンチマーク環境や計測の仕方では、IOPS値が伸びませんでした。ベンチマークのやり方を変えると、また値が変わりそうな気がします。
また、シーケンシャル/ランダムライトのIOPSについては、これも今回の環境依存な気もしますが、40,000超で伸びなくなってしまいました。
公称値は、ランダムリード365,000IOPS、ランダムライト315,000IOPSなので、冬休みの宿題的な感じで時間が取れれば、FSを変えたりベンチマーク方法を少しやり直して見たいと思っています。
尚、BandWidth(帯域幅)のスループットについては、完全にリニアな感じで伸びていきました。MAXで3.5GB/secで読み書きできるわけですから、相当高速です。
↓は、RAID0でSSDデバイスを8本束ねたときの"df"の出力結果ですが、やはり驚異的なことは、20万〜30万IOPSで3.5GB/secスループットの高パフォーマンスを叩き出す約6TBもの超高速ストレージが、AWSで使えるようになったということは、公式ブログにも記載がありますが、さらに可能性が大きく広がったと思います。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.9G 1.3G 6.6G 16% / tmpfs 121G 0 121G 0% /dev/shm /dev/md0 5.9T 34M 5.9T 1% /data
ちょっと、おじさんビックリしてしまいましたが、このSSDデバイスをEBSみたいな感じで、自由な容量で好きなインスタンスで利用できるようになれば、もっとおじさんビックリ(凄そう)です!(ネットワークを介したデバイスで、このパフォーマンスを出し続けることは、難しいかもしれませんが。)
いったん今日はここまで。それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́
参考
- 新しいHPC向けAmazon EC2インスタンス"c3.8xlarge"が大セールしていたので簡単なベンチマークをとった - 元RX-7乗りの適当な日々
- 噂の高速SSDを積んだAmazon EC2インスタンスのI/Oベンチマークをとってみた - 元RX-7乗りの適当な日々
まとめ
クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)
- 作者: 並河祐貴,安達輝雄,ITpro/日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2009/11/05
- メディア: 単行本
- 購入: 4人 クリック: 372回
- この商品を含むブログ (18件) を見る