RAC CR 블록 리시브 타임에 따른 점검사항



 

1. AVR CR BLOCK RECEVIE TIME < 15ms

한 Node에서 다른 Node의 데이터를 무결성 읽기를 하기 위해서 기다리는 시간을 의미 하며 정상적인 경우 15ms보다 작아야 하고, 만약 시간이 많이 걸리는 경우는 다음과 같은 사항들을 점검해서 문제를 해결해야 합니다.

  1. 각 Node의 CPU 부하가 심하거나, CPU 용량이 부족한지 점검 함
  2. 각 Node간 네트웍 성능에 문제가 없는지 점검 함
  3. 각 Node간 불필요한 데이터 이동이 많게 데이터 구성이나 SQL이 수행되는지 확인 함
SQL> 
select b1.inst_id,
b2.value "CR BLOCKS RECEIVED",
b1.value "CR BLOCK RECEIVE TIME",
((b1.value/b2.value)*10)"AVG CR BLOCK RECEIVE TIME (ms)"
from gv$sysstatb1, gv$sysstatb2
where b1.name = 'globalcache crblock receive time'
and b2.name = 'globalcache crblocksreceived'
and b1.inst_id = b2.inst_id ;

 

2. GLOBAL CACHE LOCK GET TIME < 20ms

RAC 환경에서 Cache에 있는 LOCK을 획득하기 위해서 걸리는 시간이 정상적인 경우 20ms 보다 작아야 하며, 이보다 큰 경우가 자주 발생하는 경우 이를 해결하기 위해서 다음과 같은 사항들을 점검해야 합니다.

  1. 서로 다른 Node에서 동일 DB Objects를 자주 Access해서 발생하는 Application Lock이 심한지 점검 함
  2. 각ode간 네트웍 성능에 문제가 없는지 점검 함
  3. 각 Node의 CPU 부하가 심하거나, CPU 용량이 부족한지 점검 함
SQL> 
select b1.inst_id,
(b1.value + b2.value)"GLOBAL LOCK GETS",
b3.value "GLOBAL LOCK GET TIME",
(b3.value /(b1.value + b2.value)*10)"AVG GLOBAL LOCK GET TIME (ms)"
from gv$sysstatb1,gv$sysstatb2,gv$sysstatb3
where b1.name = 'globallock sync gets'
and b2.name = 'globallock async gets'
and b3.name = 'globallock gettime'
and b1.inst_id = b2.inst_id
and b2.inst_id = b3.inst_id;

 

RAC 환경에서는 1,2 번을 주기적으로 점검하여 결과치가 적정한 범위를 벗어나는지 아닌지 모니터링을 하는 것이 바람직합니다.



You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *