こんにちは、貴子です。
前回、s3をNFSとしてできるように環境を整えましたが
今回はその続きで「書き込み速度」と「読み出し速度」を測ります。
比べる対象として3つの環境を用意しました。
インスタンスは全てt2.microです。
書き込み速度を測る
10G・1G・1M・4kのダミーファイルを作成して、書き込み速度を測ります。※計測する度にサーバーのキャッシュクリアを行っています。
・ダミーファイル作成コマンド
10G time dd if=/dev/zero of=zero1 bs=1MiB count=10000; time sync |
1G time dd if=/dev/zero of=zero1 bs=1MiB count=1000; time sync |
1M time dd if=/dev/zero of=zero1 bs=1MiB count=1; time sync |
4k time dd if=/dev/zero of=zero1 bs=4KiB count=1; time sync |
10G | ec2 | 10737418240(byte)÷242.85(s)=44.21MB/s |
s3 | 10737418240(byte)÷543.65(s)=19.75MB/s | |
ebs | 10737418240(byte)÷170.11(s)=63.12MB/s | |
1G | ec2 | 107374182(byte)÷24.55(s)=4.37MB/s |
s3 | 107374182(byte)÷74.49s)=1.44MB/s | |
ebs | 107374182(byte)÷17.24(s)=6.23MB/s | |
1M | ec2 | 1048576(byte)÷0.038(s)=27.84MB/s |
s3 | 1048576(byte)÷0.44(s)=2.37MB/s | |
ebs | 1048576(byte)÷0.016(s)=66.93MB/s | |
4k | ec2 | 4096(byte)÷0.012=351KB/s |
s3 | 4096(byte)÷0.25(s)=16KB/s | |
ebs | 4096(byte)÷0.002(s)=2.05MB/s |
読み込み速度を測る
先ほど作成したダミーファイルを使って、読み出し時間を計測してみます。※こちらも計測する度にサーバーのキャッシュクリアを行っています。
time dd if=zero1 of=/dev/null |
10G | ec2 | 10737418240(byte)÷168.48(s)=63.73MB/s |
s3 | 10737418240(byte)÷410.67(s)=26.14MB/s | |
ebs | 10737418240(byte)÷167.58(s)=64.07MB/s | |
1G | ec2 | 107374182(byte)÷16.99(s)=6.32MB/s |
s3 | 107374182(byte)÷55.37(s)=1.94MB/s | |
ebs | 107374182(byte)÷16.94(s)=6.34MB/s | |
1M | ec2 | 1048576(byte)÷0.025(s)=42.80MB/s |
s3 | 1048576(byte)÷0.386(s)=2.72MB/s | |
ebs | 1048576(byte)÷0.019(s)=56.17MB/s | |
4k | ec2 | 4096(byte)÷0.009(s)=0.48MB/s |
s3 | 4096(byte)÷0.19(s)=0.21MB/s | |
ebs | 4096(byte)÷0.002(s)=2MB/s |
結果
s3は10G・1Gだとebsに比べて3~4倍遅く、1M・4kだと10倍以上遅い結果となりました。s3のNFSでは、高い堅牢性と安い料金で使用できるので凄く助かるのですが、
こんなに速度に差がでてしまうと躊躇しますね。
また意外にもebsとec2では書き込みだと結構差が着くのですが、読み込みだと大差ありませんでした。
感想
この記事を書くにあたり、私にはNFSの知識が乏しくて本当にたくさん考えてました。学習が足りないなーとひしひし実感したので、
1個づつトライして自分の中で「根拠と基準値」を貯めていくようにします。