稼働環境を選ばず専門家のノウハウに基づくアドバイスも得られる
SolarWindsのDPAは、誰でも簡単に使いこなせるデータベースの性能調査ツールだ。エージェントなしで監視ができ、監視対象データベースのCPU負荷も1%未満とかなり小さい。
DPAによる性能調査では、処理の待ち時間を中心に可視化を行う。これは、実際のエキスパートの性能調査手法に倣ったものだ。その上で「機械学習を使った異常検知ができるのも特長です」と大森氏。DPAでは、待機イベントの内部処理に至るところまで分析して、問題の根本的な原因を明らかにする。調査した結果のサマリーは1枚のレポートにまとめられ、分析した結果だけでなく施すべきチューニングのアドバイスも記載される。調査結果を得るまでに、画面遷移は4つしかない。
普段は問題なくある時点で突然異常が出て遅い場合には、処理が遅いクエリを闇雲に探すのではなく、DPAでは実際に遅くなった時点のクエリを見て調査する。クエリは秒単位で細分化してきめ細かい調査が可能だ。また遅いクエリのトップ10や待機イベントのトップ10も表示でき、1つ1つの内部処理でどこに時間がかかっていたかなども詳細レポートで分かる。さらに遅かったクエリについては、データベースのキャッシュのヒット率やディスクIO性能などを、時間軸を合わせ調査できる。
仮想化されたデータベースが増えていることもあり、DPAではVMwareのvCenterとESXiにも対応している。これにより、バックアップなどのVMwareイベントとのバッティングがなかったかなども容易に確認できる。「外部要因については、他のSolarWindsの監視機能と組み合わせられ、ネットワークやサーバーの状況とも合わせた調査ができます」と大森氏は言う。
DPAは本番運用での性能調査ができるだけでなく、テストや開発などフェーズを選ばずに利用可能だ。たとえばアプリケーション開発で、データベースとのやり取りに問題が発生するケースがある。データベースから応答が返ってこず、タイムアウトが発生する。その場合は、タイムアウトの原因を調査し対処するだろう。
本来はシンプルなSQL処理のはずなのに、データベースリソースを監視すると予想より多くのSQLが走っているのが分かるかもしれない。クエリをフレームワークやツールに任せていると、チューニングの施しようがないケースもあるが、その場合もトレースを追いかけるなどで原因を探り、何らかの対処をしなければならない。
このような開発フェーズで発生するデータベース処理の困りごとの多くが、DPAの活用で解決できる。クエリ状況をリアルタイムに確認し、ブロッカークエリを見つけてその内容を容易に確認できる。リアルタイム監視だけでなく、統計情報からの性能分析調査ももちろん可能だ。
たとえば"Updating"や"Sending data"などの待機イベントが見つかった場合、それらが何を意味しているのかをまずGoogle検索など調べるだろう。検索して意味が分かれば、さらに対処方法も検索し探すはずだ。一方でデータベースのエキスパートなら、Sending dataが何で、問題が出た際にどう対処するかは既に分かっている。DPAではそのようなエキスパートの知見を、すぐにポップアップ表示するのだ。「10年以上に亘りDPAを開発しているメンバーであるデータベーススペシャリストが、自分たちのナレッジをまとめて提供しています」と大森氏は説明する。
データベース管理者がよく行う、実行プランを使ったチューニングについては、DPAではSQL ServerとOracleに対応している。クエリのどこに時間がかかり、それにどう対処すれば高速化が図れるかまで提示し、今流れているクエリの検索も可能だ。自分が開発したアプリケーションから、実際にどのようなクエリが流れているかの確認がすぐにできる。
DPAはオンプレミス、クラウドの主要なリレーショナルデータベースで利用できる。開発はオンプレミスで行い、テスト環境をクラウドに作り、本番はAmazon RDSに展開すると言ったように、稼働環境が異なっても1つのDPAから分析できるのは便利だ。オンプレミスのサーバーはもちろん、クラウド上のインスタンスでも動かせ、分散して動く複数のDPAを1つのポータルにまとめて管理することも可能だ。
データベースの監視は、まず死活監視から始まり、続いて性能監視、予兆監視と監視レベルが徐々に深くなるだろう。DPAは深いレベルの監視のためにメトリックスの相関分析が可能で、さらに自動での異常検知や性能改善のための推奨事項提示までできる。DPAでかなり深いレベルまで監視ができ、監視のさらに深いレイヤにあるオブザーバビリティの一部についても実現している。DPAは今まさにデータベースで起こっていることの見える化ができ、既にオブザーバビリティを実現するツールになりつつあるのだ。
多くの開発者が、データベース性能の調査分析は分からないことも多く、できれば関わりたくないと考えるかもしれない。こうした開発者に対して大森氏は「専門家でなくても使いこなせるツールがあるので、ぜひ開発者も、運用者も、さらにはデータベースのスペシャリストも、DPAを試してみてほしいです。DPAなら、誰でも使いこなせます」と呼びかけ、セッションを終了した。