Risolvere i problemi di consumo di memoria
Se la memoria delle estrazioni o delle repliche di Oracle GoldenGate è esaurita 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 estremamente grandi o la forma di distribuzione è ridotta rispetto alle dimensioni della transazione in fase di elaborazione.
A seconda della forma della distribuzione OCI GoldenGate, vengono allocati 16 gigabyte (GB) di memoria fisica per OCPU. Se è stata abilitata la scala automatica, la memoria fisica totale può essere fino a 3 volte superiore.
Ad esempio, una distribuzione OCI GoldenGate con 4 OCPU (4 x 16 GB = 64 GB) e abilitata per la scala automatica (64 GB x 3) dispone di 192 GB di memoria fisica disponibile.
Per impostazione predefinita, a ogni distribuzione OCI GoldenGate 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 i 268 GB di utilizzo della memoria virtuale, le transazioni di overflow vengono scritte su disco, che per impostazione predefinita è /u03/temp
. Questa directory predefinita dispone di 256 GB. Se questo non è ancora sufficiente spazio, è 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 sono presenti più estrazioni e repliche che elaborano transazioni di grandi dimensioni nella stessa distribuzione, è possibile scegliere tra le opzioni riportate di seguito.
- Aumenta le OCPU della distribuzione in modo da avere più memoria fisica e ottenere una maggiore memoria virtuale da utilizzare per i processi.
- Ridurre l'impostazione
CACHEMGR CACHESIZE
in modo che ogni processo utilizzi meno memoria virtuale e costringa l'overflow a utilizzare le directory del disco. 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 in quanto 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.