log buffer space의 time waite가 높게 증가합니다. 0 6 2,149

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]
타락천사님 고맙습니다!!

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

헌데 새로 설치해도 마찬가지 증상이라고 해서 ...
딱히 해당 기능을 사용할 분도 안계신데 이상하네요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입