データベース稼働環境は複雑化し性能調査も難易度が増している
国内の知名度はまだそれほど高くないが、SolarWindsはグローバルのネットワーク監視領域でNo.1シェアを持つベンダーだ。ネットワーク監視以外にもサーバー、アプリケーション性能、仮想環境、ストレージなどあらゆる領域の稼働状況の可視化が可能だ。SolarWindsではスケーラブルな共通プラットフォームを提供し、多角的な分析ができる。多様な監視の中で、データベース性能分析調査を担うのがDPAだ。
SolarWindsでは、製品提供だけでなく積極的に技術情報を公開している。またユーザーコミュニティの「THWACK」の活動が盛んなことでも有名だ。そのTHWACKでのアンケートによれば、データベースの稼働環境の80%が仮想化されており、管理するデータベースインスタンスの数が25以上あると答えた管理者も44.8%ある。中には「1人で200以上のインスタンスを管理しているとの回答もありました」と大森氏。これらの数字からは、データベース管理者の管理負荷がかなり高まっている様子がうかがえる。
クラウドの利用、特にクラウドベンダーが提供するマネージドサービスの利用が増えている。仮想化やマネージドサービスといった複数プラットフォームがあり、データベースの稼働環境の複雑性は増している。この複雑なデータベース環境のせいで、データベースの性能分析もさらに複雑化している。
管理者はデータベース処理が遅ければ、ボトルネックを調べ、根本原因を見つけ、適切な対策を施す。たとえばクラウド上で利用しているデータベースサーバーが、メモリが足りないために処理が遅くなっていると分かれば、メモリ追加の判断をする。クラウドではインスタンスサイズがあらかじめ決まっているので、追加したいメモリ容量が2ギガバイト程度でも、1つ上のスペックにすることでメモリやCPUは倍になり、時間当たりコストも倍となることもある。
追加したメモリのおかげで、一旦は性能が回復する。しかし2か月後に再びメモリが足りなくなるかもしれない。これは最初の段階で根本原因を追及できていなかったため、メモリ追加だけでは問題が解決していないのだ。結果、その後もメモリ追加を続ければ、運用コストがさらに上昇しかねない。
またデータベース管理者に対し、よくある問い合わせが「なんだか遅い気がする」と言うものだ。あるいは、今は大丈夫だけれど「急に遅くなった」もよくある。これらに対処しようとしても、問題が再現するかは分からない。多くの場合、時間に余裕がなく再び問題が発生するまで長い時間待つこともできない。
通常、データベース管理者は問題を解決のために、CPUやメモリなどが足りないことを想定し、基本的なリソースの調査から始めるだろう。VMwareの仮想化環境で動いていれば、仮想サーバー側の処理がぶつかり遅いこともあるため、そのような外部要因も調査する。さらに固有リソースも調査する。たとえばバッファIOやトランザクションに対するディスクIOの状況を調べ、他にも遅いクエリを見つけて実行プランやトレース情報の確認もするだろう。
Microsoft SQL Serverを利用していれば、性能調査のためにSQL Server Management Studioを使い、さまざまな画面を表示し原因の分析を進めるはずだ。さらにSQL Server Diagnostic Queriesなどで、エキスパートがより深い調査をするかもしれない。オンプレミスのSQL Serverだけなら、これらだけで調査は完結するだろう。
クラウドのマネージドサービスを利用していれば、それぞれのクラウドベンダーが用意するWebコンソールに接続して調査する。つまり性能調査のために「環境ごとに別々のツールを使いこなさなければなりません」と大森氏。複数のデータベースを扱う管理者は、このような複雑化する管理ツールの使いこなしにも苦労する。