Risolvere i problemi di consumo della memoria
Se le estrazioni o le repliche di Oracle GoldenGate hanno esaurito la memoria durante l'esecuzione di transazioni lunghe, è necessario configurare correttamente Cache Manager per ogni processo.
L'impostazione predefinita della dimensione della cache di 64 GB è valida nella maggior parte dei casi. Si verifica un problema quando si elaborano transazioni di grandi dimensioni o la forma di distribuzione è piccola rispetto alla dimensione della transazione che si sta elaborando.
A seconda della forma della distribuzione GoldenGate OCI, vengono allocati 16 gigabyte (GB) di memoria fisica per ogni OCPU. Se la scala automatica è stata abilitata, la memoria fisica totale può essere fino a 3 volte superiore.
Ad esempio, una distribuzione GoldenGate OCI con 4 OCPU (4 x 16 GB = 64 GB) e la scalabilità automatica abilitata (64 GB x 3) dispone di 192 GB di memoria fisica disponibile.
Per impostazione predefinita, a ogni distribuzione GoldenGate OCI vengono allocati 256 GB di spazio di swap. Pertanto, la memoria virtuale totale per la distribuzione è di 192 GB + 256 GB = 448 GB. Considerando che tutti i processi GoldenGate nella distribuzione condividono questa memoria virtuale, Oracle consiglia di impostare CACHEMGR CASHESIZE
su un intervallo sicuro, ad esempio il 60% della memoria virtuale totale o 268 GB. Una volta che Extract o Replicat raggiunge 268 GB di utilizzo della memoria virtuale, le transazioni di overflow vengono scritte su disco, che per impostazione predefinita è /u03/temp
. Questa directory predefinita ha 256 GB disponibili. Se lo spazio è ancora insufficiente, è possibile aggiungere una directory secondaria. Oracle consiglia /u02/Deployment/var/lib/cachemanager
, che è illimitato.
CACHEMGR CACHESIZE 268G CACHEDIRECTORY /u03/temp, CACHEDIRECTORY /u02/Deployment/var/lib/cachemanager
Se nella stessa distribuzione sono presenti più estrazioni e repliche che elaborano transazioni di grandi dimensioni, è possibile scegliere tra le opzioni riportate di seguito.
- Aumenta le OCPU della distribuzione in modo da avere più memoria fisica e ottenere più memoria virtuale da utilizzare per i tuoi processi.
- Ridurre l'impostazione
CACHEMGR CACHESIZE
in modo che ogni processo utilizzi meno memoria virtuale e forzare l'overflow a utilizzare le directory dei dischi. Ciò consente di mantenere la forma di distribuzione corrente senza aumentare i costi. Tuttavia, l'elaborazione delle transazioni di grandi dimensioni sarà leggermente più lenta poiché utilizza il disco anziché la memoria virtuale per memorizzare nella cache le transazioni in sospeso.
È possibile utilizzare i parametri e i suggerimenti menzionati qui per ottimizzare le impostazioni dell'ambiente in base alle dimensioni della transazione.