先に結論を言うと、こちらも表記通り(以上?)のパフォーマンスが出てます!
はじめに
前回の記事ではAWSのストレージサービスが表記通りの性能を発揮しているか調べてみました。
AWSでは表記通りの性能が発揮できていたので問題ないのですがOCIではどうでしょうか。
今勤めている会社ではAWSとOCIをどちらも使っているので、比較のためにベンチマークをとってみることにしました。
ベンチマークコマンド
前回と同様にfioコマンドとddコマンドの2種類でベンチマークをとリマした。
fioコマンドではブロックサイズを小さく(–bs=4k)することでIOPSを測定しますが、このままだとスループットが上限まで出ないのでスループット測定ようにブロックサイズを大きく設定(–bs=128k)した状態でも実行しました。
# ランダム書き込み(IOPS測定用) $ sudo fio --directory=<ディレクトリのパス> --name fio_test_file --direct=1 --rw=randwrite --bs=4k --size=1G --numjobs=4 --time_based --runtime=180 --group_reporting --norandommap # ランダム読み込み(IOPS測定用) $ sudo fio --directory=<ディレクトリのパス> --name fio_test_file --direct=1 --rw=randread --bs=4k --size=1G --numjobs=4 --time_based --runtime=180 --group_reporting --norandommap # ランダム書き込み(スループット測定用) $ sudo fio --directory=<ディレクトリのパス> --name fio_test_file --direct=1 --rw=randwrite --bs=128k --size=1G --numjobs=4 --time_based --runtime=180 --group_reporting --norandommap # DD書き込み $ dd if=/dev/zero of=<ディレクトリのパス> bs=1M count=3000 # DD読み込み $ dd if=<> of=/dev/null
検証環境
◆Standard.E4
CPU: AMD EPYC 7J13 * 8コア
ボリューム : 47GB / VPU/GB:10 / 2820 IOPS / スループット 22.56MB/s
本当は前回の記事のAWSとの比較のためにIOPSとスループットを揃えたかったのですが、OCIではボリュームサイズとVPUの値によって性能が変動するため揃えることが難しかったです。そこで今回はVMを作成するときのデフォルト値の状態で測定することにしました。
ベンチマーク結果
VMのBootボリュームはIOPSが表記より少しだけ高い結果になりました。
さらにスループットは表記よりも倍近く高い結果になりました。
OCIの公式ドキュメントを読んでも、必要に応じてスループットがバーストするような仕組みは無いように見えます。(別機能としてスケーリングはあるようですが、今回の検証では関係のない機能です。)
なぜ表記の2倍程度のスループットが実現できているのかちょっと謎ですが、表記より劣っているわけではないので良しとしましょう。
File Storageは作成してすぐのものを使用したのですが、ドキュメントを見てもどうやってIOPSやスループットが決まるのか不明のため参考程度に留めておいてください。
AWSとのコスト比較
ついでなのでAWSとOCIのブロックストレージサービスのコストを比較してみました。
スループットを合わせるために容量を中途半端な273GBにしています。
OCIのブロックストレージサービスの方が同サイズ、同スループットの条件でも価格が安く、IOPSに関してはかなり高い値となっています。AWSと比較するとOCIはどのサービスもかなり安い価格であることがわかります。それだけにパブリッククラウドサービスとしてのサポートの薄さや種類の少なさが残念ではありますね。(もっと流行ればいいのに..)
おわりに
OCIのブロックストレージの性能が表記通りのパフォーマンスになっているか比較をしてみました。
結果としては表記の性能以上のスループットを発揮していました。
思ったよりもストレージへのアクセス速度が出ない場合は、VM自体の性能不足やネットワークの帯域不足など別のボトルネック要因を探ってみるのが良いかもしれませんね。
コメントを残す