Shared Memory 크기 산정

티베로 DB Shared Memory 크기 산정 방법에 대해 설명합니다.

개요

Tibero Shared Memory는 부팅할 때 고정된 용도로 사용되는 Fixed 영역과 운영 중에 자동으로 할당되어 사용되는 Shard Pool 영역으로 구분할 수 있습니다.

  • Fixed Memory DB가 부팅할 때 파라미터 값을 바탕으로 크기가 고정되는 영역입니다.

    • Buffer Cache(Database Buffer)

    • Log Buffer

    • 그 외 항목 : 전역 변수를 위한 공간, 워킹 스레드 정보와 세션 정보를 관리하는 영역

  • Shared Pool Memory 운영 중에 동적으로 할당되어 사용되는 영역입니다.

    • DD Cache

    • PP Cache(Library Cache)

    • 그 외 항목


고려 사항

아래는Shared Memory 크기를 산정할 때 고려해야 할 사항입니다.

  • Shared Memory 크기를 운영 중에 동적으로 늘릴 수 없습니다.

  • Buffer Cache와 Shared Pool 사용 패턴을 분석하여 전체 Shared Memory 크기를 알맞게 정해야 합니다.

  • Buffer Cache

    • 주요 Workload를 돌려본 후 APM 리포트의 Buffer Cache Hit율을 보고 판단합니다.

    • Hit율이 90 % 이하 : Buffer Cache 크기 늘려야 합니다.

  • Shared Pool Memory

    • Workload를 돌려본 후 v$sga의 ‘SHARED POOL MEMORY’ 항목의 사용률 보고 판단합니다.

    • Shared Pool 사용률이 너무 높으면 (Free 영역이 적은 경우) Shared Pool 크기를 늘려야 합니다.

    • 세션당 최소 1M 이상의 Shared Pool 영역 확보가 필요합니다.


용량 산정

Shared Memory 각 영역의 크기는 v$sga에서 확인할 수 있습니다.

Shared Memory의 크기는 초기화 파라미터로 설정해서 조회할 수 있습니다.

Shared Memory 아래는TOTAL_SHM_SIZE 파라미터를 설정해서 조회하는 예입니다.

Buffer Cach 아래는 DB_CACHE_SIZE 파라미터를 설정해서 조회하는 예입니다.

싱글 모드 : TOTAL_SHM_SIZE의 2/3 TAC 모드 : TOTAL_SHM_SIZE의 1/2

Log Buffer 아래는 LOG_BUFFER 파라미터를 설정해서 조회하는 예입니다. (LOG_BUFFER 파라미터의 기본값 :10MB)

Shared Pool Memory 전체 Shared Memory 크기에서 Fixed 영역을 뺀 나머지 영역입니다.

  • 싱글 모드 전체 shared pool 크기가 MIN_SHARED_POOL_SIZE보다 커야 합니다. (MIN_SHARED_POOL_SIZE 기본값: 1M * MAX_SESSION_COUNT)

  • TAC 모드 TAC를 위한 CCC와 CWS 공간이 충분히 확보되어야 합니다. CCC와 CWS를 위해 전체 Buffer Cache 크기의 25% 가량을 Shared Pool에서 사용합니다. CCC와 CWS를 위한 공간을 제외한 Shared Pool 영역이 _MIN_SHARED_POOL_SIZE 보다 커야 합니다.

PP Cache와 DD Cache 등을 위한 Free Shared Pool 크기는 CCC와 CWS 공간보다 커야 합니다.

Last updated