log buffer space의 time waite가 높게 증가합니다. 6 892

by chrome [Oracle Tuning] [2010.09.12 03:44:40]


Oracle 10gR2 (SUNOS) Standard Edition 
noArchive 
입니다. 

 

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          1          0           0
Execute      1     23.73     521.06      21498      22048    2174630     1987853
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        2     23.73     521.06      21498      22049    2174630     1987853

Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: SYS

Rows     Row Source Operation
-------  ---------------------------------------------------
      0  DELETE  TEST_CUMUL (cr=22048 pr=21498 pw=0 time=521063736 us)
1987853   TABLE ACCESS FULL TEST_CUMUL (cr=21916 pr=21496 pw=0 time=5963747 us)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  db file scattered read                       1398        0.45          2.48
  log buffer space                              501        0.97        440.38
  log file switch completion                     78        0.97         53.80
  db file sequential read                         7        1.20          1.20
  SQL*Net message to client                       1        0.00          0.00
  SQL*Net message from client                     1       10.68         10.68
********************************************************************************

 log buffer (14M~30M) 도 조절해 보고
redo log size(50M~100M)  도 조정해봤지만... 
이 wait을 막을 수가 없습니다.
작업이 길어지면 log file switch wait 도 증가합니다. ㅠ.ㅠ 
redo log file  group마다 각기 다른 디스크에 넣어서 분산도 유도해 보았습니다만,
redo log file 의 switch logfile 작업도 상당히 오래걸립니다.

OS상에서 디스크의 I/O 대역폭은 충분히 남는것으로 측정되어 
문제 없습니다 (SOFT RAID 1)...
이유가 뭘까요?
by 휴메이드 [2010.09.12 04:09:19]
로그파일 갯수 및 사이즈가 어떻게 되나요? 그리고 아카이브 모드유무가?

by chrome [2010.09.12 07:46:42]
- chrome [2010-09-12 07:45]
휴메이드님 댓글 주셔서 고맙습니다.
(사파리로 안올라오길래 크롬으로 올렸는데 ;; 같은 글이 3개나 올라왔었내요)

일단 ledo log 는 100M 3개 에서 테스트
100M 2개 50M 2개 60M 1개 에서 테스트

그 밖에 디스크 I/O분산을 위해 다 지우고 다시 생성했었습니다.
(이건 제가 안해서 얼마로 했는지는 모르겠습니다.)
노아카이브 모드입니다.

거의 동일한 구성으로 오라클을 설치한
구형 시스템에선 같은 작업시
log buffer space가 발생하지 않습니다 .

by 휴메이드 [2010.09.13 11:49:01]
이렇게 해보세요~

1.리두사이즈 50M짜리 10개 만든다.
2.로그버퍼를 100M 잡는다

위와같이 해도 대기이벤트에 큰변화가 없다면
대량의 DML이 과도하게 발생하고, DISK I/O속도가 느려서 원인이겠네요

테이블nologging하시면 많이 줄겁니다~

그럼~

by 타락천사 [2010.09.13 13:40:24]
redo buffer 가 생각보다 많이 발생 하는가보네요..
DB / Table Level 에서 Supplement LOg 옵션이 어떻게 설정되어 있나보세요..
CDC 솔루션 환경에서는 해당 옵션을 사용하는지라.
사용 안할때보다 Redo 내용이 증가 할수 있습니다.

by chrome [2010.09.15 12:56:31]
-휴메이드님 재차 고맙습니다.^^

일단 redo log에 대해 변경은 많이 해보았습니다만...
쓰는 속도가 redo log 의 switch 속도를 따라오지 못합니다.

설명이 부족했는데, 동일 데이터를 다른 노트북이나
저사양 서버에서 작업해도 2배 이상 빠른 처리를 보입니다.

by chrome [2010.09.15 13:01:50]
타락천사님 고맙습니다!!

아 한번 더 가게되면 확인해봐야겠습니다.^^
(지금은 제가 진행중이 아니라서)

헌데 새로 설치해도 마찬가지 증상이라고 해서 ...
딱히 해당 기능을 사용할 분도 안계신데 이상하네요.