참고 7. Shared Memory 크기 산정

본 부록에서는 Tibero의 SQL Execution Work Area 크기 산정 방법에 대해 설명합니다.

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 Cache

다음은 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보다 커야 합니다.

  • 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