4. Rac 성능 튜닝 사례 리소스 친화도

4.1 리소스 친화도(Resource Affinity)의 개념

RAC에서는 거의 모든 자원이 공유됨

  • Buffer Cache
  • Shared Pool
  • Segment
  • Parallel Query
  • Schedule Job

RAC간의 경합을 로컬내부의 경합과 단순하게 비교했을 경우

  • RAC는 같은 리소스를 공유하기 위해 더 복잡한 알고리즘과 더 많은 코드 레이어를 거치게 됨.
  • RAC는 동기화를 위한 블록 교환과 메시지 교환이 끊임없이 이루어짐
  • 결국 인스턴스간의 과도한 동기화는 Inter-Instance Contention을 유발하게 됨.
  1. 인스턴스 경합을 제거하기 위해서는 특정 인스턴스가 특정 자원을 "독점" 할 수 있어야 하지만
    RAC는 어떤 식으로든 자원이 공유되기 때문에 독점하는 불가능함
  2. 결국 특정 인스턴스가 특정 자원을 "독점하듯이" 사용하지만 필요 시 공유가 가능하도록 유도하는 방법이 필요하다.
  3. 인스턴스간의 자원 공유를 위해 동기화 작업이 지나치게 많이 발생하면 필연적으로 경합이 발생함.
  4. 오라클은 인스턴스 간 경합 현상을 줄이기 위해 리소스 친화도라는 개념을 사용함

리소스 친화도(Resource Affinity)


리소스 친화도라는 용어는 개념적인 용어임. 
자주 액세스하는 자원에 대해서 가능한 Local에서 액세슬 할 수 있도록 유도하여 Inter Connector를 통한 동기화를 배제하겠다는 것.
ASSM처럼 오라클에서 리소스 친화도를 고려해서 구현한 기능도 존재하지만 개념자체를 아키텍쳐에 적용하여 솔루션으로 사용할 수 도 있음.

동적 리마스터링(Dynamic Resource Remastering)


Inter Connector를 통해서 액세스하는 자원(블록/객체)이 초기화파라미터(hidden parameter)정도 이상이 되면 
요청 Instance로 소유권을 변경하여 동기화를 감소하겠다는 것.
즉 로컬에서 동작하게끔 유도.

약한 친화도(Soft Affinity)


지속적은 독점을 막거나 특정 상황에 따라 리소스 친화도와 관계없이 다른 Instance가 소유권을 바꾸기도 함.  
엄격한 친화도가 구현된 것이 아니라 필요에 의해 소유 Instance가 변경될 수도 있다는 의미임.

문서에 대하여

  • 최초작성자 : 이지웅
  • 최초작성일 : 2011년 04월 15일
  • 이 문서는 오라클클럽 코어 오라클 데이터베이스 스터디 모임에서 작성하였습니다.
  • {*}이 문서의 내용은 (주)엑셈에서 출간한 'RAC Advanced OWI, Internals and Performance in Oracle 10g'를 참고하였습니다.*