アベイラビリティ管理とは
前回は、ネットワークやサーバなどのハードウェア環境と、その上で実行されるデータベースサーバやWebアプリケーションサーバなどを総合的に監視する統合管理について説明した。
今回説明するアベイラビリティ管理は、これらシステムリソースの性能情報をさまざまな側面から長期間に渡って収集することで、システム全体の安定稼働を目指す製品である。アベイラビリティ管理には概ね3つの機能がある。
- 性能障害の原因調査をアシスト
収集した性能情報を用いて障害の原因特定をアシストします。
- 性能障害の予兆を検知
性能上の危険領域に達した場合、ダウンする前に障害を回避するための運用をアシストします。
- 長期的な設備増強を予想
運用期間から得られた性能情報をレポートし、計画的な設備増強のタイミングをアシストします。
性能障害の根本原因を突き止める
システムを運用していると、応答時間が設計値を著しく下回るような、いわゆる性能面の不具合に直面することがある。単純なシステムダウンとは異なり、この類の問題は原因箇所の切り分けと特定が難しく、長期に渡ってビジネス面に影響を与えかねない。
例えば、Webアプリケーションサーバに対して十分にCPUやメモリを割り当てているにも拘らず、極端な応答待ちが発生している現象を取り上げてみよう。このような場合、症状が見られる画面は毎回異なり、発生する時間帯にも規則性が無いことが多い。
問題解決にあたっては、まず応答性能について定期的に情報収集を行う。その後、問題発生前後の状況を分析して原因箇所を絞り込んでいく。ある程度、問題箇所の見当がついたら、その挙動に関する情報収集を行う。
例えば、今回の例の背景が「Java仮想マシン(JavaVM)のヒープメモリ設計が不十分なためガーベージコレクションが頻発し、その間、業務アプリケーションが停止していた」というものだった場合、ここに至るまでに下記のようなステップを踏むことになるだろう。
- 画面応答のボトルネックは、業務アプリケーションかそれ以外か
- 業務アプリケーションでなければ、その原因はJ2EEサーバ側か、データベースか、通信系か
- J2EEサーバの場合、その原因はコンテナかJavaVMか
- JavaVMの場合、その原因はメモリ管理か、スレッド管理か
「CPU利用率が高まった」「メモリの空き領域が少なくなった」といった瞬間的な見方ではなく、性能・稼働情報を定期的に収集・監視し、時系列で情報を捉えることで見えてくるものもある。それがアベイラビリティ管理である。