ベンチマークテスト(Star Schema Benchmark)にて検証した、Verticaのスケールアップ(CPUリソース追加)、スケールアウト(サーバー追加)の効果をご紹介します。

検証環境

項目内容
サーバー機種HP ProLiant DL360 Gen9
CPUIntel Xeon E5-2650v3 2.30GHz 10コア/CPU x 2 合計20コア
メモリ128GB
OSRed Hat Enterprise Linux

スケールアウト効果を計測する検証では、Verticaを3台構成で構築し、いずれのサーバーも同一スペックのものを使用しました。

スケールアップ効果

CPUコアを追加した場合の検証結果です。
CPUコア数が2倍になると、いずれのクエリも実行時間が約半分になったことが分かります。
Verticaはクエリをマルチスレッドで処理するため、コア数が増加するほど高速になります。

 ※本検証はメモリ上にデータをキャッシュした状態で実施しています。
  I/Oがボトルネックの場合は、I/Oを分散させるために、スケールアップよりもスケールアウトの方が
  性能向上効果が見込めます。

scaleup

スケールアウト効果

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

scaleout

まとめ

VerticaはCPUやサーバーを追加した場合、ほぼリニアに性能が向上することが分かりました。

性能向上の方法としてプロジェクション作成によるチューニングも考えられますが、
システム全体の性能向上では、スケールアップやスケールアウトも効果的です。

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。