企業IT最適化のゴールを目指す

プロの技をシステム化せよ!失敗しないキャパシティ管理Cosminexus V8 Review

システムの安定稼働を目指すうえでは、サーバのキャパシティを管理することが大切だ。だが、予期せぬ事態への対処には人の判断や操作が介在し、さらなる障害を招きかねない。これを防ぐ方法とは何だろうか。

» 2009年01月26日 08時00分 公開
[友成文隆(日立製作所),ITmedia]

システムの安定稼働のカギは運用機能の活用にあり

 Webアプリケーションサーバのシステム運用項目は多岐にわたっているが、基本的には「システムをいかに安定稼働させるか」を考えることが重要だ。

 Webシステムに限ったことではないが、安定したシステム稼働のためには、可能な限り運用を自動化して人的ミスを排除するとともに、常に運用上の問題を分析して運用改善を図ることが求められる。いわゆるPDCAを実践することで、計画、実行、分析、改善を繰り返し、安定したシステム運用が実現するのだ。安定稼働を実現するためには、このような運用プロセスに応じて運用ツールによる監視や自動化を進めることが必要となる。

 同時に、Webアプリケーションサーバ特有の運用機能を最大限に活用することも重要である。例としては、アプリケーション実行時間監視、リソースの枯渇監視、同時実行数動的変更、複数実行環境の切り替え、テストモードでのアプリケーション実行、各種監査ログの収集などが挙げられる。

 今回はこの中でも、サーバの能力オーバーを回避する運用機能とその工夫について解説する。

人の手を介さないシステム運用が大切

 サーバの能力オーバーを回避するには、流量制御によって、突発的に発生する多量のリクエストを“待たせる”ことが重要だ(参考:サーバダウンは起こるもの。だがユーザーには迷惑をかけない!)。これにより、溢れたリクエストを待たせることで、サーバの処理件数を安定化させ、システムがダウンしないようにするのだ。

 その一方で運用の側面からは、待たせるリクエスト数がサーバの能力を超えてしまう異常事態までを配慮しなければならない。これを防ぐためにはキャパシティ管理をしっかり行い、最終的な対策としてはサーバの増強を計画的に実施する必要がある。

 しかし予期せぬサーバの能力越えについては、代替サーバの利用や実行業務の優先度変更などの暫定処置によって、サーバの能力オーバーを回避する必要がある。この対応に運用管理者の“プロのワザ”が発揮される。

 この運用管理者の“プロの技”に一番期待したいところではあるが、人による判断やコマンド操作はミスを発生しやすいだけでなく二次的障害の引き金になることも多い。このような事態を防止するのが「しきい値監視機能」と「イベント通知/アクション機能」の活用だ。

プロの技をシステム化せよ

 これらの機能は、実行待ちリクエスト数を監視して一定のしきい値に達したことを検知し、システム的な対策が取れるようにするものだ。

 具体的にはURLグループ単位に実行待ちリクエスト数を監視し、あらかじめ設定したしきい値に達した時にイベントを発行する。これにより警告域に達したことを上限しきい値で、正常域に回復したことを下限しきい値で検知することが可能だ。検知したらメッセージがログに出力されるのでメッセージ監視をすれば状況を把握できる。

 人的ミスを排除するための一歩進んだ対応としては、想定されるアクションを自動実行したい。例えば、突発的なリクエスト数の増加に対しては入口を一時的に閉じて、受付済のリクエストを処理しつつ、負荷が下がるのを待つということが考えられる。そこでイベント通知/アクション機能により、イベント種別ごとに自動的に実行するアクションを定義する。負荷分散機の振り分け先を操作するコマンドを定義することで新たなリクエストは予備のサーバで実行したり、ソーリーサーバに転送して「ただいま込み合っています」といったページを返すといった対応を取ることができる。

このように“プロの技”をシステム化することで安定稼働を実現するのだ。

慢性的な能力不足の予兆をつかめ

 上記対策がめでたく実行されても暫定対策に過ぎない。慢性的なサーバの能力不足には根本的な対策が必要である。

 そのためには、サーバの増設や能力の強化計画を予測し、予算化などの措置を計画的に行わなければならない。つまり、キャパシティ管理を行っておく必要があるのだ。実際にリクエスト数の増加によりどのくらいのリクエストが待たされているか確認することで、現在のサーバが実際のリクエスト量に耐えうるのかどうかを検証する。サーバの増強を検討するための基礎資料が必要になる。この問題を解決するのが「稼働情報収集機能」である。

 稼働情報収集機能では各種稼働情報をファイルに出力する。この中でWebアプリケーションの実行待ちリクエスト数の推移を確認することでリクエストの待ち状況が把握できる。実行待ちリクエスト数はWebコンテナ全体、Webアプリケーション単位、URLグループ単位に確認できるのできめ細かく傾向を見ることができる。ファイルはCSVファイル形式のため編集・加工して分析することも可能だ。また、Webアプリケーションだけでなく、JavaVM、EJB、DBコネクションプール、OSリソースに関する稼働情報も取得できる。

 次回は、APサーバの障害解析を容易にするトラブルシュートについて紹介する。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ