質問: oracle11gのレスポンス障害について 社内webアプリのレスポンス障害が発生しました。 現在障害は解消されてい(特に何もしていない)ます。 障害の経緯ですが 突然社内webアプリからのレスポンスが返って(非常に遅い)こなくなる。 タスクマネージャーでサーバーのcpu負荷とメモリ負荷を確認するが問題無し。 apacheのレスポンスは問題無し。 サーバーからsql/plusを使用しconnectする。connectに問題無し。 10カラム1レコードのデータをsqlplusから索引するも20秒程度かかる。 一旦サーバーを再起動するが10分程度使用した所で同様の現象が発生しoracleが遅くなる。 取りあえず業務を停止し2~3時間放置。 なぜか問題無く使用出来る様になり今にいたる。 結果、サーバーの再起動を一回行った程度で何も行っていないのですが現在レスポンスに問題は無く社内webアプリも快適に使用出来ています。 alert_rocl.logも見てみたのですが特に問題は無いような気がしますが 正直あまりよく解りません。 3年程このシステムは問題無く稼働していたのですが、この様な現象は初めてです。 原因不明となると問題なので何か手がかりの様なものは無いでしょうか? 以下環境となります。 windows2008 server r2 enterprise oracle database 11g release 11.2.0.1.0 - 64bit production httpd 2.2.20 php 5.2.14 oracleにはoci8を使用して接続しています。 よろしくお願い致します。
回答: 回答no.1 です。 おそらく disk busy (table scan とか)が発生したのではないかと思って、最も原因となりやすい統計情報を挙げたのですけどね。「駄目クエリ」が disk アクセスを占有して、その影響で他のアクセスが遅延したのかと。この場合、数時間放置して「駄目クエリ」の実行が終われば復活しますので、実際の現象と一致しますね。 質問者さんの情報では「disk アクセス状況」と「問題発生時のクエリ実行状況(長時間実行されっぱなしのクエリがないか)」が無いので、直接的に確認するるべはありません。oracle でスロークエリを記録する機能を on にしていれば、ログなどから確認できるかもしれませんが。 駄目クエリの発生原因には『そもそも駄目なクエリがシステムに実装されている。でも「稀にしか動かない」or「指定条件によってダメになる」特徴があるため気づきにくい』『統計情報が古くて、本来は正常に動くはずのクエリが駄目クエリになる』などが考えられます。どちらにせよ、駄目クエリが特定できないと究明は厳しいでしょうね。