dbheap - 데이터베이스 힙 구성 매개변수

이 매개변수를 사용하여 데이터베이스 힙에 할당된 최대 메모리 양을 제한할 수 있습니다. 중요한 메모리 요구사항을 위해 추가 메모리가 자동으로 추가됩니다.
기본적으로 dbheapAUTOMATIC으로 설정되는데, 이는 데이터베이스 힙 크기가 필요에 따라 증가할 수 있음을 의미합니다. 이렇게 증가할 때 database_memory, instance_memory 및 시스템 메모리 한계가 적용됩니다.
구성 유형
데이터베이스
매개변수 유형
온라인으로 구성 가능(데이터베이스 연결 필요)
환경 또는 분할된 데이터베이스 환경의 구성원이 구성할 수 있습니다 Db2 pureScale 환경 또는 파티션된 데이터베이스 환경
전파 클래스
즉시
기본값 [범위]
Linux 및 UNIX 운영 체제의 경우
자동 [ 자동, 32 - 2 147 483 647 ]
  • 기본값은 기본값이 1200AUTOMATIC입니다.
Windows 운영 체제의 경우
자동 [ 자동, 32 - 2 147 483 647 ]
  • 32비트 아키텍처의 경우 독립형 서버의 기본값은 기본값이 300AUTOMATIC입니다.
  • 64비트 아키텍처의 경우 기본값은 기본값이 600AUTOMATIC입니다.
참고: 기본값은 초기 데이터베이스 생성 후 Db2® 구성 어드바이저에 의해 변경될 수 있습니다.
수치 단위
페이지(4KB)
할당 시기
dbheap 및 중요한 요구사항에 대한 내부 메모리 할당의 기본 또는 고정 값은 데이터베이스 활성화 시 데이터베이스 메모리에서 예약되어 있습니다. 데이터베이스 힙은 필요에 따라 할당됩니다.
사용 가능한 시기
메모리 할당이 더 이상 필요하지 않은 경우 해제됩니다. 데이터베이스가 비활성화되면 데이터베이스 힙의 모든 할당된 메모리가 사용 가능해집니다.

데이터베이스 당 하나의 데이터베이스 힙이 있으며, 데이터베이스 차원의 활동을 지원하는 데 중요한 다양한 목적에 사용됩니다. 로그 버퍼 같이 알려진 많은 요구사항은 데이터베이스 활성화 시점에 평가됩니다. 구성된 기본 또는 고정된 dbheap 값과 함께 이 내부 요구사항이 초기 데이터베이스 메모리 크기 지정에 기여하고 데이터베이스 힙에 대한 데이터베이스 메모리 예약을 구성합니다. 내부 계산에 포함되지 않은 추가 요구사항에 테이블 액세스 시 누적되는 테이블 메타데이터에 대한 캐시가 포함됩니다.

초기 데이터베이스 힙 예약에는 구성된 값과 내부적으로 계산된 요구사항이 모두 포함됩니다. 이 초기 예약은 데이터베이스 힙이 고정 값으로 설정된 경우 적용되는 하드 한계입니다. dbheap 매개변수가 기본 AUTOMATIC 설정으로 남아 있는 경우, 데이터베이스 힙이 초기 예약 이상으로 증가하도록 허용되며 남아 있는 데이터베이스 메모리 오버플로우를 사용합니다. 또한 database_memory 매개변수가 AUTOMATIC으로 설정되면, 데이터베이스 힙이 database_memory 크기를 자동으로 늘림으로써 더 증가할 수 있습니다.

데이터베이스 힙 요구사항은 데이터베이스 디자인, 애플리케이션 활동 및 구성을 포함한 다양한 요인에 따라 달라집니다. 낮은 기본값(예: 기본값)이 포함된 AUTOMATIC으로 설정을 두는 것이 좋습니다. 이전 릴리스에서 Db2 버전 9.5 이상으로 이주하거나 Db2 구성 어드바이저에서 권장사항을 적용할 때 dbheap 설정이 AUTOMATIC 으로 변경됩니다.

일부 주요 메모리 요구사항은 다음과 같습니다.
  • 데이터베이스 활성화 시점에 할당되는 LOGBUFSZ 크기의 로그 버퍼. 이는 내부 데이터베이스 힙 할당의 일부입니다.
  • 액세스하는 압축된 테이블마다 약 100KB가 할당됩니다. 테이블 파티션을 사용할 경우 이 양은 테이블 파티션을 기준으로 합니다. 액세스하는 컬럼 기반 테이블마다 최대 100MB가 필요합니다. 이 메모리 요구사항은 초기 데이터베이스 힙 크기 지정에 포함되지 않고, 고정된 dbheap 값에 포함되어야 합니다. 데이터베이스가 활성화된 동안 이 메타데이터가 캐시됩니다.
  • AUDIT_BUF_SIZE가 0이 아닌 값으로 설정된 경우 데이터베이스 활성화 중에 지정된 크기의 버퍼 2개가 할당됩니다. 이는 내부 데이터베이스 힙 할당에 포함됩니다.
  • 초기 데이터베이스 힙 예약을 위해 2개의 HADR 버퍼가 할당됩니다. 예를 들어, DB2_HADR_BUF_SIZE가 256000 4KB 페이지로 설정된 경우 약 2GB가 데이터베이스 메모리의 초기 데이터베이스 힙 예약에 추가됩니다. 이는 내부 데이터베이스 힙 할당의 일부이고, 장애 복구 조작에 필요한 자원을 지원하기 위해 기본 및 대기 데이터베이스 모두에서 발생합니다.
  • 진단 도구를 지원하기 위해 대략 100MB가 사전에 할당됩니다. 이는 내부 데이터베이스 힙 할당에 포함됩니다.

모니터링

구성하는 dbheap 값은 할당된 데이터베이스 힙의 일부분만 나타냅니다. 설명된 것과 같이, 중요한 요구사항을 충족하기 위해 추가 분량이 데이터베이스 힙에 추가됩니다. 따라서 데이터베이스 힙 메모리 사용량이 dbheap 매개변수에 대해 사용자가 구성한 값을 초과하기 쉽습니다.

MON_GET_MEMORY_POOL 테이블 함수를 사용하여 데이터베이스 힙 사용을 모니터링할 수 있습니다. 예를 들어,
select memory_pool_used, memory_pool_used_hwm 
from table (mon_get_memory_pool(null,null,null)) 
where memory_pool_type='DATABASE'
memory_pool_usedmemory_pool_used_hwm의 값을 KB 단위로 리턴합니다.
MEMORY_POOL_USED     MEMORY_POOL_USED_HWM
-------------------- --------------------
            140574            140574

  1 record(s) selected.

db2pd -db <database_name> -mempools 명령을 사용하여 데이터베이스 힙 사용량을 모니터할 수도 있습니다.