「サーバーは高性能化している。しかし、CPUのマルチコア化、HDDの大容量化が、アンバランスなデータベース・システムを増やしている。それが、データベースのパフォーマンスを悪くする要因となっている」と柴田氏は説明する。どういうことだろうか。
ストレージの高性能化が進んでいるとはいえ、CPUの性能向上に比して速度は向上していない。しかも大容量化、低コスト化が進んでいるため、ストレージは少ないディスク本数で構成される傾向にある。CPUのマルチコア化で複数スレッドを高速に処理できるようになったが、その相手となるストレージのディスク本数が少ない。データベース・システムにおいて、CPUが遊んでしまい、せっかくの高性能が生かされていないというのだ。「この傾向は、国内だけではない。例えば米国でも同じ。ITのトレンドとしてそうなっている」と柴田氏は言う。
パフォーマンスのボトルネックはCPUにあるのではない。CPUを使い切れていないことに実は問題がある。
解決策としてはOracle Databaseの「ASM」(Automatic Storage Management)を使って、ストレージのパフォーマンスを上げてCPUの性能とのバランスを取る方法がある。
さらには、「パラレル処理を使うことで、マルチコアを生かすことができる」(柴田氏)。
複数のディスクを抽象化しスループットを上げる「ASM」
「データウェアハウスのような大規模データベースでは、RACで複数のOracleインスタンスを一つにまとめるとともに、ストレージにおいても複数ディスクをディスク・グループとしてまとめて管理し、スループットを向上させたい」(柴田氏)。
データベースを構成するファイルの管理をユーザー自らが行うのではなく、Oracle Databaseに任せることで可用性とパフォーマンスを向上させる機能がASMだ。これはOracle Database 10gから提供されている機能だ。
ASMによって、ディスクI/Oのスループットを向上させることができるので、CPUの利用効率も上げることができる。さらにASMは、ディスク管理の高い柔軟性を提供する。運用するうちに、データ量の増加によってディスクを追加したり、故障等によって交換したいケースが出てくる。「ASMを使うと、ディスクを追加すると動的に再配置が行われる。ディスクが故障すればリバランスする。ストレージ移行の場合でもリバランスが活用できる。非常に使い勝手がよく、性能の向上と柔軟な運用が両立できる。しかも、ASMはOracle Databaseを使っていれば無償で利用できる機能だ」(柴田氏)。
例えばOracle Exadataでは、RAC構成とASM管理をフル活用している。「最大で8ノードのRAC構成を持ち、ASM管理で168本のディスクを1つの大きなストレージに見せている」(柴田氏)
オラクルエンジニア通信:「Oracle ASMを1から学ぶ - マニュアル、インストール・構築、設定・管理」