IO 부하 경감을 위한 KEEP Pool의 활용


여러 사람들의 이야기를 들어보니 Oracle의 Multi Buffer Pool 기능을 잘 사용하지 않는다고들 한다. 그런데 우리 사이트처럼 상당한 량의 Online Transaction과 Batch가 함께 도는 사이트에서는 Multi Buffer Pool이 유용하게 쓰일 수 있다.

일반적으로 KEEP Pool은 항상 read가 일어나야 하는 조그만 테이블들을 KEEP하는 용도라고 알려져 있다. 하지만 우리 사이트에서는 다르게 사용한다. 

Batch와 Online에서 다 같이 많이 쓰는 "큰" 테이블/인덱스들을 KEEP에 올려놓는다.

1. table full scan 으로 테이블을 읽으면 touch count도 올라가지 않을 뿐 아니라 buffer cache의 끝부분에 올라갈 가능성이 높다. (http://ukja.tistory.com/133 참조) 하지만 상대적으로 여유가 많은 KEEP으로 보내게 되면 메모리에 좀 더 오래 머물러 있을 가능성이 높다.

2. 이 테이블을 online에서도 다양한 파라미터로 index range scan하거나 table access by rowid를 할 때 해당 블럭들은 touch count가 높아지면서 KEEP에 좀 더 오래 머물러 있을 가능성이 높아진다. 

KEEP사이즈보다 더 크게 오브젝트를 KEEP해도 무방하다.
KEEP도 기본 버퍼풀과 동일한 알고리즘으로 움직인다. 모자라다고 해서 에러를 내지는 않는다. 오히려 이렇게 하는게 더 좋은 것 같다. full scan이 발생하는 테이블이라고 해서 언제나 모든 블럭이 메모리에 있어야 하는 것은 아니다. 그 중에서 range scan이 많이 들어오는 블럭들은 KEEP에도 오래 머물것이고, 다른 테이블에 대한 full scan이 들어올때는 touch count 가 높아져 있는 블럭들을 제외한 나머지 블럭들은 영역을 내줘도 괜찮은 것 같다.

Recyle Pool 에는 사이즈 크고 가끔 쓰는 테이블들을 올려놓는다.
이를테면 email 발송 솔루션의 발송 대상 테이블 같은 것들이다. (원래는 박스 자체를 분리해야하나..-_-)

정리하자면,

online과 batch가 함께 도는 환경에서는
1. onoline/batch에서 다 같이 자주 쓰는 "큰" 테이블은 KEEP
2. batch에서만 가끔 쓰는 테이블은 Recycle에 넣어서 full scan의 영향도를 최소화하자.

(KEEP에 큰 테이블을 넣는 것은 사실 상식에 반하는 것인데.. 좀 더 검증이 필요하다. KEEP에 넣는 오브젝트들을 다양하게 조절하면서 v$buffer_pool_statistics, v$db_cache_advice의 변화를 계속 관찰하자.)


Posted by maceo

12 27, 2008 02:11 12 27, 2008 02:11
, , ,
Response
No Trackback , a comment
RSS :
http://merritt.co.kr/tt/rss/response/127

Trackback URL : http://merritt.co.kr/tt/trackback/127

Comments List

  1. 야함나르 2009年 05月 13日 16時 30分 # M/D Reply Permalink

    저희 사이트도 위와 같은 케이스에 대해서 keep buffer 를 쓰고 있습니다. 말씀대로 KEEP사이즈보다 더 크게 오브젝트를 KEEP해도 무방한것 같습니다.

    즉 굉장히 빈번하게 사용되는 큰 테이블에 대해서 별도의 buffer(테이블 크기보다는 작은) size 를 할당한다는 느낌으로 쓰고 있는데...체감적으로 성능 향상이 좀 있다고 생각이 됩니다.

Leave a comment
[로그인][오픈아이디란?]
« Previous : 1 : ... 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : 11 : ... 74 : Next »

블로그 이미지

가늘어도 긴놈이 장땡

- maceo

Archives

Authors

  1. maceo

Calendar

«   3 2010   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Site Stats

Total hits:
170288
Today:
32
Yesterday:
47