Dépannage des problèmes de consommation de mémoire
Si les extractions ou réplications Oracle GoldenGate ne disposent pas d'une mémoire suffisante lors de l'exécution des transactions à longue durée d'exécution, vous devez configurer le gestionnaire de cache correctement pour chaque processus.
Le paramètre de taille de cache par défaut de 64 Go convient dans la plupart des cas. Un problème peut survenir lorsque vous traitez des transactions extrêmement volumineuses ou que la forme de déploiement est petite par rapport à la taille de la transaction traitée.
Selon la forme du déploiement OCI GoldenGate, 16 gigaoctets (Go) de mémoire physique sont alloués par OCPU. Si le redimensionnement automatique a été activé, la mémoire physique totale peut être jusqu'à 3 fois supérieure.
Par exemple, un déploiement OCI GoldenGate avec 4 OCPU (4 x 16 Go = 64 Go) et le redimensionnement automatique activé (64 Go x 3) dispose de 192 Go de mémoire physique.
Par défaut, 256 Go d'espace de swap sont alloués à chaque déploiement OCI GoldenGate. Par conséquent, la mémoire virtuelle totale pour le déploiement est de 192 Go + 256 Go = 448 Go. Etant donné que tous les processus GoldenGate du déploiement partagent cette mémoire virtuelle, Oracle vous recommande de définir CACHEMGR CACHESIZE
sur une plage sûre, par exemple 60 % de la mémoire virtuelle totale, soit 268 Go. Dès que l'extraction ou la réplication atteint une utilisation de mémoire virtuelle égale à 268 Go, les transactions de débordement sont écrites sur le disque (par défaut, le répertoire /u03/temp
). Ce répertoire par défaut dispose de 256 Go. Si l'espace est toujours insuffisant, vous pouvez ajouter un répertoire secondaire. Oracle recommande le répertoire /u02/Deployment/var/lib/cachemanager
, qui est illimité.
CACHEMGR CACHESIZE 268G CACHEDIRECTORY /u03/temp, CACHEDIRECTORY /u02/Deployment/var/lib/cachemanager
Si plusieurs extractions et réplications traitent des transactions volumineuses dans le même déploiement, vous pouvez choisir l'une des options suivantes :
- Augmentez le nombre d'OCPU du déploiement afin de disposer de plus de mémoire physique et donc de plus de mémoire virtuelle pour les processus.
- Réduisez la valeur du paramètre
CACHEMGR CACHESIZE
de sorte que chaque processus utilise moins de mémoire virtuelle et forcez le débordement à utiliser les répertoires de disque. Cela vous permet de conserver la forme de déploiement actuelle sans encourir les coûts inhérents à une augmentation. Toutefois, le traitement des transactions volumineuses sera légèrement plus lent du fait du recours au disque plutôt qu'à la mémoire virtuelle pour la mise en cache des transactions en attente.
Vous pouvez utiliser les recommandations et paramètres mentionnés ici pour affiner les paramètres d'environnement en fonction de la taille des transactions.