메모리 소비 문제 해결
긴 트랜잭션을 실행할 때 Oracle GoldenGate 추출 또는 복제에 메모리가 부족한 경우 각 프로세스에 대해 캐시 관리자를 올바르게 구성해야 합니다.
대부분의 경우 기본 캐시 크기 설정은 64GB입니다. 매우 큰 트랜잭션을 처리하거나 배포 구성이 처리 중인 트랜잭션 크기에 비해 작을 때 문제가 발생합니다.
OCI GoldenGate 배포의 구성에 따라 OCPU당 16GB의 물리적 메모리가 할당됩니다. 자동 스케일이 사용으로 설정된 경우 총 물리적 메모리가 최대 3배 더 많을 수 있습니다.
예를 들어, OCPU가 4개(16GB = 64GB)이고 자동 스케일이 사용으로 설정된 OCI GoldenGate 배포(64GB x 3)에는 192GB의 물리적 메모리가 사용 가능합니다.
기본적으로 각 OCI GoldenGate 배포에는 256GB의 스왑 공간이 할당됩니다. 따라서 배치의 총 가상 메모리는 192GB + 256GB = 448GB입니다. 배치의 모든 GoldenGate 프로세스가 이 가상 메모리를 공유한다는 점을 고려하면 Oracle은 CACHEMGR CASHESIZE
를 총 가상 메모리의 60% 또는 268GB와 같은 안전한 범위로 설정할 것을 권장합니다. Extract 또는 Replicat가 268GB 가상 메모리 사용량에 도달하면 오버플로우 트랜잭션이 디스크에 기록되고, 기본값은 /u03/temp
입니다. 이 기본 디렉토리에는 사용 가능한 256GB가 있습니다. 아직 공간이 부족하면 보조 디렉토리를 추가할 수 있습니다. Oracle은 무제한인 /u02/Deployment/var/lib/cachemanager
를 권장합니다.
CACHEMGR CACHESIZE 268G CACHEDIRECTORY /u03/temp, CACHEDIRECTORY /u02/Deployment/var/lib/cachemanager
동일한 배포에서 대규모 트랜잭션을 처리하는 다중 추출 및 복제가 있는 경우 다음 옵션 중에서 선택할 수 있습니다.
- 배치의 OCPU를 늘려 물리적 메모리를 늘리고 프로세스에서 사용할 가상 메모리를 늘립니다.
- 각 프로세스에서 더 적은 가상 메모리를 사용하고 오버플로우가 디스크 디렉토리를 사용하도록
CACHEMGR CACHESIZE
설정을 줄입니다. 이를 통해 비용 증가 없이 현재 배포 구성을 유지할 수 있습니다. 그러나 대용량 트랜잭션 처리는 보류 중인 트랜잭션을 캐시하기 위해 가상 메모리 대신 디스크를 사용하므로 약간 느려집니다.
여기에 언급된 파라미터와 권장 사항을 사용하면 환경 설정을 트랜잭션 크기에 맞게 세부적으로 튜닝하는 데 도움이 됩니다.