web-dev-qa-db-ja.com

log_file_sync待機の突然の増加

2ノードのRACシステムを備えたOracle 11gR2を使用しています。 EMC Clariionへの共有ファイバーストレージです。

先週の金曜日の状況は悪化しました。何年もの間正常に動作していた突然のプロセスはすべて、非常に遅くなりました。 log_file_sync待機の突然の増加に気づき、LGWRプロセスがいくつかのプロセスのブロッカーとしてリストされています。その金曜日に私たちが認識している変化はありません。また、1つのノード上にあるように見えます。

Statspackレポートは、log_file_syncの待機時間が約1msから47msになったことを確認します。さらにstatspackはこれを示しています-それらのいくつかはたくさん待っています:

                           Total ----------------- % of Waits ------------------
Event                      Waits  <1ms  <2ms  <4ms  <8ms <16ms <32ms  <=1s   >1s
-------------------------- ----- ----- ----- ----- ----- ----- ----- ----- -----
log file sync               100K    .0    .3   1.7   9.0  25.4  31.0  32.4    .1

そしてそれがこれである前に:

                           Total ----------------- % of Waits ------------------
Event                      Waits  <1ms  <2ms  <4ms  <8ms <16ms <32ms  <=1s   >1s
-------------------------- ----- ----- ----- ----- ----- ----- ----- ----- -----
log file sync              1589K  72.3  20.4   5.4   1.2    .6    .1    .0

何が原因でしょうか?何をチェックすべきですか?

6
rfusca

ログファイルの同期は、コミットが行われ、REDOバッファをディスクにフラッシュする必要がある場合に発生します。セッションはそれが起こるのを待たなければなりません。

ログファイルの同期の数が増えると、一般的に、開発者の1人がコミットに満足し、あまりにも頻繁にコミットしていることを意味します(たとえば、すべての行)。

ここではおそらく、約150万のDMLステートメントを実行するプロセスがあり、それぞれの後にコミットが発行されるため、数百万行のデータをロードするプロセスを探します。

2
David Aldridge