幅広い規模の企業が、IT監視・分析ツールに投資しています。しかし、コンピュータが何が問題かを知っているからといって、その詳細をITチームに効果的に伝えられるとは限りません。コミュニケーションの背後にはアートと科学の両方があり、そのためITチームはデータの可視化に大きく依存しているのです。
企業の規模が大きくなるにつれて、データの可視化の重要性も増しています。同様に、データ分析の自動化も、規模が大きくなればなるほど、その有用性は増していきます。しかし、これらのツールがなぜITチームに不可欠なのかを理解するには、これらのツールの機能と、ITチームがそれらを必要とする理由を理解する必要があります。データベース・パフォーマンス解析は、データ解析を自動化することでITチームがより良くなる理由の優れた例を紹介します。
問題点
監視ツールが必要なのは、コンピュータが故障すると、組織が損失を被るからです。分析ツールが必要なのは、たとえ中小企業であっても、監視ツールから返ってくる膨大な情報を人間が処理できないからです。大企業規模では、生の監視データの意味を理解しようとすることは、単に不可能です。
今日のビジネス・アプリケーションは、1台のコンピュータで動作することはほとんどなく、さらに問題を複雑にしています。例えば、現在稼働している比較的単純なPOSアプリケーションは、様々なエンドポイントで稼働するクライアント・コンポーネント、オンプレミスの会計パッケージへの接続、パブリッククラウドでホストされるeコマース・システムを持っている可能性があります。これらに加えて、通常は注文/プロセス追跡システムや在庫管理システムがあり、さまざまなサプライヤー、物流会社、顧客のITシステムなどとも統合されています。
これが最近の中堅企業のPOSシステムの姿です。大企業の場合は、はるかに複雑なものになる可能性があります。一つのアプリケーションでも、潜在的な故障のポイントは理解できないほど多く存在します。幸いなことに、コンピュータはそのような障害に対処する手助けをしてくれます。
問題解決
コンピュータは計測器です。様々なパフォーマンス・カウンターやエラー・ログなどを提供します。そして、正しく設定すれば、これらの情報はすべて収集され、データベースに格納され、相関関係を分析することができます。また、機械学習を使ってデータを分析し、分析パッケージが問題解決に関する提案を行うことも可能です。
パフォーマンスとエラーのデータを並べて、複数のアプリケーション・コンポーネントと、それらが依存する物理インフラストラクチャの詳細なパフォーマンス履歴を示すタイムラインを作成することができます。このような情報を視覚的に表示することで、ITチームは、従来であればログを何時間も、あるいは何日もかけて特定しなければならなかった問題を迅速に解決できるようになります。
図1:SQL Serverデータベースのクエリ応答待ち時間の可視化
例えば、図1はSQL Serverデータベース内のクエリ応答待ち時間を表示したものです。この可視化では、大きなバーが期間中(この表示では1日単位)の全実行における待ち時間の合計を表しています。このように表示することで、生データだけでは見逃してしまうようなパターンや異常値を確認することができます。
コンピュータと同様に人間もパターンマッチングと相関関係の専門家です。しかし、コンピュータと違って、私たちの得意とするところは、数字の選別ではなく、目に見えるものの中にパターンを見出すことです。人間の脳の30%を占める視覚野は、コンピューターが情報を視覚的に表現できるようになったとしても、人間はコンピューターよりも早く問題の根本原因を見つけることができるのです。
これは、物理的・仮想的なコンピューターやアプリケーション、ネットワークの性能情報を視覚的に表現することで、パターンを素早く把握し、知識と経験で焦点を絞ることができるからでもある。言い換えれば、ビジュアライゼーションの構築は、特に、視覚的に表現されていないデータから正確な結論を導き出すために必要な技術的な深さを持たない個人やチームとの情報伝達をよりシンプルにします。
データベースの問題を解決
しかし、人間のパターン認識が必要なものばかりではないので、分析対象の詳細が重要になります。データベースのパフォーマンス問題は、複数のインフラストラクチャ・コンポーネントの複雑な相互作用によって引き起こされるかもしれませんし、誰かが問題のあるSQLクエリを1つ書いただけかもしれません。このような場合、コンピュータは私たちよりもはるかに速く問題を発見することができます。
図2: Database Performance Analyzerで可視化したもの
同様に、問題は、個々のデータベーステーブルの修復が必要であるなど、データベースのメンテナンスの問題や、最適化の問題によって引き起こされることがあります。また、データベースの設計も重要な役割を果たすことがあります。異なるテーブルのフィールド間の関係はどのように処理されるのか?リクエストのブロックが問題を引き起こしていないか?
これらの詳細は、データの中に埋もれていることが多いのです。インフラ関連のパフォーマンス問題と同じように、目視検査で目立つことはほとんどありません。では、データベースのパフォーマンス問題を解決する最良の方法は何でしょうか?コンピュータと人間の両方を最も効果的な方法で使用することです。
コンピュータが単独で問題を切り分けられるなら、それは素晴らしいことです。分析アプリケーションが根本原因の分析を行うことで、人間はより価値のある仕事に従事することができます。原因を自動的に特定できない場合、情報を視覚的に表現することで、人間はいつ問題が発生したかを把握し、考えられる原因を絞り込むことが容易になります。その後、分析アプリケーションを使用して、その時点の遠隔測定に潜入し、何が起きていたのか、なぜそれが問題なのかを正確に理解することができます。
図 2 は、積み上げられたチャートを表す可視化の例で、データベースのパフォーマンス、ひいてはエンドユーザー・エクスペリエンスに貢献するインフラストラクチャのレイヤーを把握することができます。
忍び寄る複雑性
複雑さは私たちに忍び寄っています。今日のアプリケーションとそれをサポートするITインフラは、多くの場合、文字通り理解不能なほど複雑になっています。1980年代に戻って、私たちがソーダの缶の値段を知るためだけに依存しているアプリケーションについてコンピュータ科学者に話したとしたら、彼らは私たちが狂っていると思うでしょう。しかし、彼らには今のようなツールはありませんでした。
私たちのアプリケーションは、他のアプリケーションと統合する必要があるため、複雑なものとなっています。データは世界の端から端まで瞬時に移動します。バングラデシュの中小企業が、ロンドンの一般消費者にオーダーメイドの服を販売する、などということは2020年代にはごく普通の日常事なのです。
このようなシステム管理は、科学であると同時に芸術でもあるのです。そして、適切なツールがなければ、それは完全に不可能です。だからこそ、Database Performance Analyzer(DPA)のような分析ツールが必要なのです。DPAは、分析対象である個々のデータベースを超えて認識し、その情報をわかりやすく表示することができ、コンピュータと人間の両方の長所と短所を考慮した設計になっています。
関連したトピックス
- Database Performance Analyzer [DPA] でSQL Serverのパフォーマンスを見つけ、分析し、最適化へ
- Oracle SE データベースと Query Performance Analyzer [Oracle Performance Analyzer: DPA]
- メモリとインスタンスのパフォーマンス監視のためのAmazon AWS EC2 Monitor [DPA]
- Db2 パフォーマンス最適化・チューニングツール [DPA]
- MySQLスロー・クエリログ・アナライザ [DPA]
- 待ち時間分析によるOracleからPostgreSQLへの移行のトラブルシューティング:Database Performance Analyzer(DPA)
- 仮想化されたデータベース:パフォーマンス監視の考慮事項
- Webセミナー録画とプレゼンテーション『 Oracle コンサルいらずのチューニングことはじめ』:2020/2/6 開催
- Amazon AWSクラウド上でのアプリケーションとデータベースのパフォーマンス問題
- Database Performance Monitor :データベースの監視と効率化を行うSaaS型ソリューション