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.