MaxGauge †E†E†E†E†EW 1.rc1.pub

MaxGauge 障害解析事例.1
2009年01月
調査が困難な為、長期化した問題を原因を特定した障害解析事例
MaxGauge を利用し、新規接続を受け付けないエラーの障害内容と原因を特定
■背景
ある会社様では、システム開発の情報を共有するWebシステムを採用されていまし
た。このシステムのバックグラウンドで動作するOracle Databaseへの新規接続を受
け付けないエラーが発生しました。
原因は接続数増加に伴う物であり、このエラーにより、ユーザーからの新規接続が
受け付けられないのは勿論、レプリケーション構成で運用されている当該システム
のレプリケーション・プロセスのタスクまで受け付けられずにエラーとなることも確認
されていました。
しかし、接続数増加を引き起こしている原因は把握されておらず、根本的な解決へ
の対処は行えておりませんでした。
そこで、このサーバーに対しMaxGaugeを用い詳細な状況の分析を行うことになっ
たのです。
Active Session
該当時点でCPUを使っているか、処理行うためあ
るリソースの使用の順番を待っている状態(ア
イドル待ちは除外)のセッションで、システム
の安定度を示す代表的な指標です。
SQL*Plus か ら は「SELECT
COUNT(*)
FROM
v$session WHERE status =‘ACTIVE’」の SQL
を用いて参照できます。
■分析の詳細
MaxGaugeにより障害発生時点でLogons Current数、及びActive Session数が大幅
に増加していることが分かり、同時にLogons Current数はOracle Databaseの初期
化パラメータで設定された最大接続数にまで達していることが確認できます。
MaxGaugeのログにより、その時間帯の状況を視覚的に把握でき、発生した問題の
トリガーを客観的に再確認できました。
Logons Current
データベースへ接続しているセッション数です。
特にOLTPシステムでは、この指標の増減がシステ
ム全般の運用状況に大きく影響します。
では何故、このような状況が発生したのか?その原因を詳しく調査します。
同時間帯のシステムに対する影響として、まずCPU利用率やメモリ使用量を確認し
ましたが、これには問題が見受けられません。しかし該当時間帯においてOracle
Database 全体でのWait(待機)量、特にI/O周りの待機量が大幅に増加している事
が見受けられます。
さらに正常稼働していた日のログと障害発生時のログを比較すると、障害発
生時、SQLの実行回数が、ほぼ同等なのに対しLogons Currentが3倍以上(50
から150)、Active Sessionsが2.5倍以上(20から50)増えていること、そして
ディスクI/Oによる滞留が10倍以上増えていることも確認できます。
そこで接続数とI/O滞留の関係を把握する為に、接続数とトップSQL、上位2つの平
均処理時間を確認しました。次の表がそれを纏めたものです。
この表から、接続数が増えることによって、トップSQLの処理時間が大きく延びてい
くことが見てとれます。
この時間帯に実行されたSQLを確認していくと、問題のあった時間帯に対象の
SQLがSQL全体の処理時間の68%を占めており、これらのSQLが滞留を引き起こし
ている事が見えてきました。
(上図)障害発生時間前後のすべてのSQLの実行量(27,178,880ms)
(下図)同時間帯の特定SQLの実行量(18,498,740ms)
■結果
MaxGaugeでの分析により、純粋な接続数の増加が非効率なSQLの実行でのI/O
周りのボトルネックを生みだし、各セッションの処理が遅延した事。さらに、それが接
続数が増える起因となる悪循環を起こし、その悪循環で最大接続数まで達した時
に接続エラーが発生していると推論できました。
この場合の想定される解決策は
・I/Oに関する滞留を削減する
・障害時にSQL全体の処理時間の68%の処理時間を占めていたSQLをチューニン
グし該当時間の負荷を下げる
・接続数に関する初期化パラメータを見直す
等が考えられます。I/Oに関する滞留を削減する為の具体的な策としてバッファ
プールの拡張やインデックスの見直し、可能ならパーティション化などが検討され
ます。さらに対象SQLに関してのチューニング等の対応も効果的でしょう。
接続数に関する初期化パラメータを見直す場合、パラメータ変更におけるシステム
全体への影響も検討しなければなりません。この影響に関してもMaxGaugeが持つ
ログから情報を整理し、現状の接続数の推移とCPUやメモリー使用量、そしてSQL
実行回数の推移との関係をグラフ化し、接続数が増えた場合の予測を立てることも
可能でした。
これらの具体的な内容と作業指示は、弊社からのレポートで指摘され、より明確に
問題を把握、対応作業を行えるようになりました。
■導入効果
MaxGaugeによるOracle Database の詳細な稼働ログの常時収集は、データベース
の障害発生時点での稼働状況を確実に収集します。情報収集の仕組みを「その
都度」作成したり、現象発生待ちを行う必要もありません。詳細なログから迅速か
つ、適格な対応を取れるようになります。
さらに、現時点でのログから各指標の推移を把握することで、将来に対するある程
度の予測も可能となり、安定した運用への指針も提供できます。
製品の購入、お問い合わせについて
日本エクセム株式会社
〒150-0013 東京都渋谷区恵比寿 1-19-19 恵比寿ビジネスタワー13F
TEL:03-4360-3951(代)FAX:03-4360-3952
http://www.maxgauge.jp/
Oracle は、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標です。
Microsoft、Windows、Windows ロゴは、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標で
す。その他、記載されている会社名、製品名は各社の商標または登録商標です。
© 2009 EXEM Japan Co. Ltd. All rights reserved.