ベンチマークテスト(Star Schema Benchmark)にて検証した、Verticaのスケールアップ(CPUリソース追加)、スケールアウト(サーバー追加)の効果をご紹介します。
検証環境
項目 | 内容 |
---|---|
サーバー機種 | HP ProLiant DL360 Gen9 |
CPU | Intel Xeon E5-2650v3 2.30GHz 10コア/CPU x 2 合計20コア |
メモリ | 128GB |
OS | Red Hat Enterprise Linux |
スケールアウト効果を計測する検証では、Verticaを3台構成で構築し、いずれのサーバーも同一スペックのものを使用しました。
スケールアップ効果
CPUコアを追加した場合の検証結果です。CPUコア数が2倍になると、いずれのクエリも実行時間が約半分になったことが分かります。
Verticaはクエリをマルチスレッドで処理するため、コア数が増加するほど高速になります。
※本検証はメモリ上にデータをキャッシュした状態で実施しています。
I/Oがボトルネックの場合は、I/Oを分散させるために、スケールアップよりもスケールアウトの方が
性能向上効果が見込めます。

スケールアウト効果
サーバーを追加した場合の検証結果です。サーバー数が3倍になると、約3倍高速になったクエリもあります。
Verticaを複数サーバーで構成した場合、データが各サーバーに分散配置され、処理も分散されます。
これにより、サーバー数が増加するほど高速になります。

まとめ
VerticaはCPUやサーバーを追加した場合、ほぼリニアに性能が向上することが分かりました。性能向上の方法としてプロジェクション作成によるチューニングも考えられますが、
システム全体の性能向上では、スケールアップやスケールアウトも効果的です。