Skip to main content

Fujitsu

Japan

【世界最速・最強のUNIXサーバ「SPARC M12」に込められた決意】
ビジネスはデータドリブンの時代──
データベースの性能に限界を感じていませんか?

高速化を阻むテクノロジーのハードル

大量データの利活用を巡る上述したような課題は、決して、楽天固有のものではない。現在、多くの企業が、経営/ビジネス現場における意思決定/将来予測の迅速化や的確性のアップ、自動化、あるいは顧客満足度の向上に向けて、大量データの分析能力を高めようとしている。その中で、楽天の場合と同様に、分析対象のデータの抽出・集約化をいかにして効率化するか、大量データの分析スピードをどう高めるか、さらには、データベース基盤のTCOをいかに最適化するかといった課題と対峙している。

こうした課題の解決法を検討する中で、意外と見落とされがちなのが、データベース基盤として、どのようなハードウェアを選ぶかだ。その理由の一つとして考えられるのは、今日のサーバハードウェアは、どのベンダーの製品も基本的なアーキテクチャは同一で、同レンジ・同価格帯のサーバ製品であれば、データベースの処理性能にそれほどの差は出ないといった思い込みである。ただし、それは誤解であり、ハードウェアの設計とチューニングによってデータベースの性能は大きく変化し、どのような製品を選ぶかは、データベースの性能向上を実現するうえで非常に重要なポイントと言える。

その重要性を改めて説くのは、富士通の志賀真之氏だ。同氏は、富士通のプリンシパルプロダクトプランナーであり、Oracle Databaseを高速化し、圧倒的なパフォーマンスを実現する垂直統合型の高速データベース基盤「FUJITSU Integrated System PRIMEFLEX for Oracle Database(以下、PRIMEFLEX for Oracle Database)」の企画・開発に携わった一人だ。

同氏は、データベースの高速化とハードウェアとの関係について、次のように話しを切り出す。

「例えば、データベースを高速化させる基本的な手法の一つは、マルチコアのCPUで処理を並列化させることですが、現実的には、すべてのコアの処理能力が使い切れず、リソースに多くの無駄が生じている場合がほとんどです。その原因として、データベースのテーブル設計に問題があるケースもありますが、ハードウェアバランスの悪さが、大きな影響を与えている場合が多いのです」

また、データベースの高速化を図るうえでは、データベース処理のボトルネックとなるディスクI/Oを可能な限り少なく抑えることが重要だ。

「そのためには、メモリとCPU間で多くのデータベース処理が完結できるようにする必要があり、なるべく多くのメモリが搭載できるハードウェアを選ぶべきでしょう。また、大量データの処理を考えれば、メモリアクセス性能も高くなければなりません。加えて、データベース処理とI/O処理を異なるコアで実行させて、I/Oがデータベース処理に与える影響を最小限に抑えられるような仕組みも必要とされます。さらに言えば、すべてのデータをメモリに均等配置し、かつ、プロセス固有のデータはそのプロセスを走らせるCPUコアのローカルメモリに配置するといった工夫も、レスポンスの改善には必要とされるのです」(志賀氏)。

もう一つ、ストレージ設定の最適化も、データベースの性能を左右すると、志賀氏は付け加える。

「例えば、OLTPにおけるランダムアクセスでは、ブロック長の小さいデータを高速に処理することが必要ですが、データウェアハウスでは、ブロック長の大きいシーケンシャルアクセスのスループットを高めることが重要となります。この両者のバランスを適切に取るのは難しく、結局、適切なストレージ設定が行えず、機器の性能が十分に引き出せなかったり、運用管理が非効率になったりする場合が珍しくないのです」

PRIMEFLEX for Oracle Databaseがもたらす変革

垂直統合型のPRIMEFLEX for Oracle Databaseは、上述したような技術的な問題から、ユーザー企業を解放するプラットフォームだ。

前述したとおり、サーバハードウェアのアーキテクチャはどの製品も同じという誤解があるように見受けられるが、PRIMEFLEX for Oracle Databaseのアーキテクチャは、他の製品とは一線を画すものだ。具体的には、Oracle Databaseを高速化する仕組みをハードウェアに組み込むという「Software on Chip」を採用し、極めて高速なデータベース処理を実現している。また、志賀氏が、データベース高速化のカギとして掲げた「メモリアクセス性能」を重視したハードウェア設計が施されており、大量データも高速に処理することができる。

加えて、PRIMEFLEX for Oracle Databaseの場合、データベースの構築・保守・運用のすべてにおいて豊富な経験と実績を持つ富士通ならではのスペシャルチューニング──つまりは、I/Oを最適化し、ハードウェアリソースの性能を最大限に引き出すための各種パラメータ設定が予め行われている。そのため、PRIMEFLEX for Oracle Databaseのユーザーは、インフラの設計・構築に手間やコストをかける必要はなく、複数のパターンの中から、規模や用途に適した基盤を選ぶだけで、実運用に向けた作業を完了させることが可能だ。

さらに、PRIMEFLEX for Oracle Databaseでは、複数データの同時演算処理を実現するスーパーコンピュータの技術「Single Instruction Multiple Data(以下、SIMD)」もCPUコアに実装されており、「スーパーコンピュータにおけるデータ解析の技術をビジネスでも使えるようにした」(志賀氏)という。

高速化を可能にする設計

そんなPRIMEFLEX for Oracle Databaseの特長の一つは、CPUコアの性能の高さだ。最新プロセッサ「SPARC64 XII」を採用しており。その1コア当たりの性能は、SPECint®_rate2006のベンチマークテストにおいて、IBMの最新プロセッサ「Power 8」の性能値を20%以上上回る世界最高値を記録している(図1参照)。

SPECint_rate2006(コア当たり)図1:SPARC64 XIIがSPECint®_rate2006ベンチマークテストで世界最高値を記録
※ 2017 年10 月17 日時点

※クリックすると拡大画像が見られます

出典: http://www.spec.orgOpen a new window

しかも、PRIMEFLEX for Oracle Databaseでは、CPUコアへのSIMDの実装によって、1度に最大16個の演算を2命令で同時実行することができる。これによって、データウェアハウスなどの大量データ処理が高速化される。

「さらに、プロセッサの放熱方式を工夫することで、プロセッサとメモリの配線距離を短くし、メモリレイテンシが非常に小さくなっています。そのうえ、プロセッサとメモリをつなぐメモリバスは、1CPUあたり8本と、他社サーバより広い帯域幅を確保していますので、特に大量のデータ処理など負荷の大きなワークロードで威力を発揮します」と、志賀氏は話す。

PRIMEFLEX for Oracle Databaseでは大容量メモリ上にデータベースを展開し、ディスクI/Oを最小限に抑えることも容易だ。また、データベースとI/Oの処理が別々のCPUコアで行われるため、I/O処理がデータベース処理性能に悪影響を及ぼすリスクも非常に小さい。そのためI/Oボトルネックが解消されCPUの処理能力を使い切ることが可能になる。志賀氏は「高速なマシンを入れたのに実運用で性能が出ないといった話もPRIMEFLEX for Oracle Databaseでは無縁です」と自信をのぞかせる。

ストレージに関しても、データ更新用のログデータを高速なフラッシュメモリに配置し、更新処理を高速化する設計が施されている。さらに一般的なOracle Databaseシステムでは瞬間的に大量のデータ転送が発生する高負荷時にパケットロスが起き通信速度が落ちることがあるが、PRIMEFLEX for Oracle Databasでは一度に送信するデータ長がネットワークスイッチの最大転送能力に合わせて最適化されるため、常に安定した通信状態を保つことができ低レイテンシが実現されている。

関連情報

FUJITSU Integrated System PRIMEFLEX for Oracle Database