AWS EFSのファイル読み込みのスループットを計測する

AWS EFS Oregon regionのファイル読み込みのスループットを計測する。複数のEC2から同時にファイルを読み込んだ場合のスループットも計測する。

また、すべてのEFSは100 MiB/秒のスループットまでバーストするとマニュアルに記載があるが、読み込み時にバーストされているか確認する。

 

方法 

1. EFSを立ち上げる。5GBのファイルをEFSに配置。

2. EC2 を立ち上げる。5GBのファイルをEFS⇨EC2へコピーする。

3. コピーにかかった時間を計測する。転送速度を算出する。

 

マシンスペック 

EFS

Performance mode Max I/O,

Encrypted No,

Metered size 105GB,

Availability zone us-west-2a 

EC2

AMI ubuntu-xenial-16.04-amd64-server-20180522 (ami-db710fa3),

Instance type m4.large,

volume tpye gp2 (8GB),

Availability zone us-west-2a 

・マウントにはEFS Mountを使用した。

・Metered sizeが大きいほどスループットのバースト時間は長くなる。そのためEFSにファイルを>100GB 配置している。

  • Burst to 100 MiB/s for up to 72 minutes each day, or

  • Drive up to 5 MiB/s continuously

 英文は下のサイト(マニュアル)から引用

https://docs.aws.amazon.com/efs/latest/ug/performance.html

・EC2がスループットボトルネックにならないようなスペックにしている。

 

結果

EC2の数 ave(real time) スループット (EC2 1台あたり) スループット * EC2の数
1 93.51 53.47MiB/s 53.47MiB/s
2 101.95 49.04MiB/s 98.08MiB/s
4 203.33 25.49MiB/s 101.96MiB/s
8 407.73 12.26MiB/s 98.08MiB/s

・EFSは100MiB/sの回線を共有して使用する。(バースト時)
・EC2 1台だと50MiB/sくらい。100MiB/sの速度はでない。
スループットはave(real time)から算出しているため、実際のスループットとは数MiBのズレがある。 

マニュアルをみてもファイルシステムごとに100 MiB/sのスループットが使用できるという認識で間違いないと思う。

All file systems, regardless of size, can burst to 100 MiB/s of throughput, and those over 1 TiB large can burst to 100 MiB/s per TiB of data stored in the file system. For example, a 10 TiB file system can burst to 1,000 MiB/s of throughput (10 TiB x 100 MiB/s/TiB).

 英文は下のサイト(マニュアル)から引用
https://docs.aws.amazon.com/efs/latest/ug/performance.html

 

結果詳細

EC2 1台

# real time user time sys time
1 93.51 0.01 5.26

EC2 2台で同時読み込み

# real time user time sys time
1 101.76 0.00 4.69
2 102.14 0.00 4.85

EC2 4台で同時読み込み

# real time user time sys time
1 202.66 0.00 4.96
2 203.27 0.00 4.81
3 203.62 0.00 4.89
4 203.77 0.02 4.98

EC2 8台で同時読み込み

# real time user time sys time
1 405.71 0.00 5.08
2 406.76 0.00 4.91
3 407.62 0.00 4.90
4 407.72 0.02 5.05
5 407.89 0.00 4.95
6 408.54 0.02 5.30
7 408.74 0.02 5.15
8 408.91 0.00 5.10

 

バーストクレジットについて

Cloud WatchのBurstCreditBalanceとPermittedThroughputを使用すると理解しやすい。

BurstCreditBalance

・データコピーを実施したらバーストクレジットが減っていった。

・データコピーをしていないときはバーストクレジットが回復していく。Metered size が10GBより100GBの方が回復量が大きい。

PermittedThroughput

・EFSの最大スループットが表示される。今回はクレジットに余裕があったため、105MB/sから下がることはなかった。

 

メモ

・EFSにファイルを配置したからといって、即座にMetered sizeが増えるわけではない。どこかのタイミングでディスク使用量が増える。

・EFSへの大量のアクセスが予想されたため、Max I/Oを選択したが、マニュアルの「Using The Right Performance Mode」を実施しGeneral Purpose Performance Modeが使用可能であるかチェックするべきであった。

https://docs.aws.amazon.com/efs/latest/ug/performance.html

・EFSでは英語版のマニュアルが日本語版よりかなり充実している。