Huge Pages et Oracle 10g

Si vous utilisez Linux 64 bits (RHEL 3, 4 ou Oracle EL 4, par exemple) et Oracle 10g, vous pouvez bénéficier facilement des Huge Pages et donc d’une meilleure utilisation de la mémoire ou du fait que la SGA ne sera jamais mis en swap. Encore faut-il que votre système soit correctement configuré :

  • Le système doit être paramétré pour que la SGA puisse être formée d’un seul bloc.
    • Le paramètre shmmax (cf /etc/sysctl.conf) doit être plus élevé que la taille de la SGA, y compris la « Fixed Size ». Regardez la valeur au démarrage de votre instance.
    • Le paramètre memlock (cf /etc/security/limit.conf) pour les valeurs soft et hard et pour l’utilisateur oracle ou le propriétaire du logiciel, s’il est différent, doit permettre également d’allouer l’ensemble de cette mémoire
  • L’utilisateur oracle doit être paramétré pour pouvoir utiliser les Huge Pages, c’est à dire :
    • Le paramètre vm.hugetlb_shm_group (cf /etc/sysctl.conf) doit contenir un identifiant d’un groupe auquel appartient Oracle.
    • Le paramètre vm.nr_hugepages doit avoir une valeur suffisamment élevée pour que la SGA y soit inclue. Attention il s’agit d’un nombre de pages, exécutez « cat /proc/meminfo » pour connaître la taille des pages.

Pour vérifier que ça fonctionne correctement, vous pouvez utilisez « ipcs -m », après avoir redémarré votre instance. les droits sur les Huge Pages sont 600 et non pas 640 ! Vous pouvez également exécuter « cat /proc/meminfo |grep Huge ». Si ça ne marche pas, vérifiez que les paramètres sont bien positionnés avec « sysctl -p » ou avec « cat /proc/sys/vm/nr_hugepages » et « cat /proc/sys/vm/hugetlb_shm_group »

Une dernière remarque, les paramètres système pour les utilisateurs sont hérités lors de votre connexion. Reconnectez vous bien à l’utilisateur système oracle après avoir changés vos paramètres.

-GarK!