こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

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を使用して接続しています。

よろしくお願い致します。

投稿日時 - 2015-09-16 10:27:36

QNo.9048530

困ってます

質問者が選んだベストアンサー

ORACLE の統計情報が適切に更新されていないのでは?

投稿日時 - 2015-09-16 21:26:17

補足

回答ありがとうございます。

統計情報の最終更新日ですがトランザクションテーブル等更新頻度が高いテーブルに関しては障害発生日の3日前に行われていました。
統計情報の取得タイミングですがデフォルトで行っていますので平日の夜間となっていました。

又、障害発生時に10カラム1レコードのテーブルを単純にselectするのに20秒程度かかっていましたし、2~3時間程度放置後、障害が解消されましたので統計情報の可能性は低いかもしれません。

投稿日時 - 2015-09-17 11:08:40

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

回答No.1 です。

おそらく Disk busy (Table scan とか)が発生したのではないかと思って、最も原因となりやすい統計情報を挙げたのですけどね。「駄目クエリ」が Disk アクセスを占有して、その影響で他のアクセスが遅延したのかと。この場合、数時間放置して「駄目クエリ」の実行が終われば復活しますので、実際の現象と一致しますね。

質問者さんの情報では「Disk アクセス状況」と「問題発生時のクエリ実行状況(長時間実行されっぱなしのクエリがないか)」が無いので、直接的に確認するるべはありません。ORACLE でスロークエリを記録する機能を ON にしていれば、ログなどから確認できるかもしれませんが。

駄目クエリの発生原因には『そもそも駄目なクエリがシステムに実装されている。でも「稀にしか動かない」or「指定条件によってダメになる」特徴があるため気づきにくい』『統計情報が古くて、本来は正常に動くはずのクエリが駄目クエリになる』などが考えられます。どちらにせよ、駄目クエリが特定できないと究明は厳しいでしょうね。

投稿日時 - 2015-09-19 11:30:23

お礼

回答ありがとうございます。
確かにoracleを疑うのであれば実行中のクエリ等調査するべきでした。
引き続き原因調査したところクラウドサーバーのトラブルでレスポンス障害が発生していたものと判明いたしました。サーバーの振る舞いから見てoracleのみレスポンス障害が出ていたのでoracleと決め打ちしていたのが原因究明が遅れた原因となりました。shitaba様には色々と助言頂きありがとうございました。

投稿日時 - 2015-09-19 21:13:03

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-