データベース高速化のための性能改善
ネットワークの高速化
続いて、ネットワークによる高速化について見ていきましょう。データベースサーバーにかかわるネットワークとしては、大きく次の3つが考えられます。
・APサーバーとデータベースサーバー間
・データベースサーバーとストレージ間
・レプリケーションなどで使用するデータベースサーバー間
この中で特にボトルネックとなりやすいのが、データベースサーバーとストレージ間のネットワークです。
高速化への解決策として、最近では10 Gigabit EthernetやInfinibandの名前を聞くようになりました。確かにDWHやバッチ処理で大量データを取得する場合にはこれらの製品は有効です。ただし、これらはまだまだ高額な専用のケーブル、スイッチが必要となります。さらにはサーバーやソフトウエアが対応している必要もあります。
そこで、今回はもう少し敷居を下げ、Oracleデータベースの機能でストレージネットワークの高速化を実現できる、DirectNFSを紹介します。
ネットワークの帯域が10Mbps~100Mbps~1Gbpsと広がるに従って、NASがデータベースのストレージとして採用されるケースも増えてきました。NASへの帯域を太くするには、まず複数のネットワークを用意する必要があります。
しかし、ただ単純にネットワークを複数用意しただけでは、データベースへのアクセスを高速に行うことはできません。
図3-1を確認すると、経路を複数用意しても、その分だけマウントポイントが必要になります。2本分の帯域をフル活用するにはデータを分割して、それぞれのマウントポイントに配置する必要があります。これを解消する仕組みとしてOracleデータベースで提供されているのが、Direct NFSになります。
Direct NFSは、Oracle データベース側で用意されたNFSクライアントの機能になります。Direct NFSを使うと、NASの領域をOSカーネルではなく、Oracle側の機能でNFSマウントすることができるようになります。
複数ネットワークを用意してもすべて1つのマウントポイントとして扱うことができるので、ロードバランス機能が働き、帯域をフル活用してデータの伝送を行うことが可能になるわけです。
ハードウエアリプレースによる注意点
以上、ここまではCPU、メモリ、ディスク、ネットワークなどハードウエアによる性能改善策について見てきました。
これらはきちんとボトルネックを把握した上での対策であれば、アプリケーションの改修などはあまり意識することもありません。ハードウエアの購入コストはかかるものの、短期間かつ低リスクで性能改善を行いたい時には有効な解決策となります。
最後に3点ほど注意しておくべき点について述べます。
まず1点目です。ハードウエアリプレースにより処理速度が増し、その結果別の個所がボトルネックとなる懸念です。
例えばハードウエアリプレースによりCPU性能が1.5倍になったとします。仮にデータベースサーバーもさばける処理量も1.5倍になったと仮定すると、メモリアクセス、ディスクアクセス、ネットワーク転送量もそれぞれ増加することになります。
結果として、これまで問題なかった個所がボトルネックとなる可能性があるわけです。これを防ぐためにも事前に実機での検証をお勧めします。
続いて2点目です。ハードウエアリプレースを行う場合、旧機器で使用していたOSがサポートされていない可能性があります。OSバージョンアップのための事前検証、場合によってはデータベースのバージョンまで上げる必要性が出てくる可能性もあります。
最後に3点目です。最初に説明したように、最近のCPUはマルチコア化が進んでいます。その時に気をつけたいのがデータベースのライセンスです。
製品によってはコア単位で課金されます。その場合、これまでは1CPU2coreのマシンで動いていたデータベースでも、ハードウエアリプレースを行うことで最低1CPU4core、つまり倍のライセンスがかかってしまうため、追加でライセンス購入を行う必要が出てきます。
以上、簡単ではありますが、ハードウエアリプレース、もしくは製品機能を活用することによるデータベースの高速化についてメリットと注意点を紹介しました。
次回からは、高速化を売りにしている製品について紹介していきます。