Skip to content

huge_pages_configuration

PhilippeLeroux edited this page Dec 21, 2017 · 4 revisions

Description des scripts.

Remarque : Il se peut que le gain en performance soit null voire dégradé, sur mon virtual-host aucunne Huge page n'est utilisée.

  • show_pages.sh

    Affiche l'utilisation de pages mémoire 'shared' des instances ASM et Oracle.

    Les instances ASM sont ignorées, je n'ai pas trouvé de moyen fiable de lire, avec un script, l'alerte log.

     oracle@srvmercure01:MERCURE:memory> ./show_pages.sh
     # =============================================================================
     # Read from /u02/app/oracle/diag/rdbms/mercure/MERCURE/trace/alert_MERCURE.log
     # HugePage size          : 2Mb
     # Available pages        : 321 = 642Mb
     # Expected pages         : 321 = 642Mb
     # Allocated pages        : 321 = 642Mb
    
     # No -MGMTDB instance.
    
     < +ASM ignored.
    
     # =============================================================================
     # OS config :
     # Hpage size             : 2Mb
     # Hpage total            : 449 = 898Mb
     # Hpage free             : 0 = 0Mb
     # Hpage used             : 449 = 898Mb
    
     # =============================================================================
     # /dev/shm :
     # Shm max size           : 0Mb
     # Shm used               : 0Mb
    
     # =============================================================================
     # Max memory             : 2,206Mb
     # Free memory            : 77Mb
     #
     # SGA
     #   Small pages          : 0Mb (/dev/shm)
     #   Huge pages           : 449Mb
  • convert_to_hpages.sh

    Par défaut les 'Huge pages' ne sont pas configurées, ce script configure l'OS et les bases pour les utiliser.

    Toutes les instances sont redémarrées pour effectuer la conversion.

    Actions effectués :

    • Configurations de toutes les instances pour ne plus utiliser memory_target
    • Configuration et activation du 'tuned profile' ple-horacle avec le nombre de 'Huge pages' nécessaires.

    Si le nombre de 'Huge Pages' n'a pu être alloué, redémarrer les VMs.

  • compute_sga_hugepages.sh

    Calcule le nombre de 'Huge pages' nécessaire pour une taille donnée de SGA.

Comment fonctionne la shared memory sous Linux.

  • Si memory_target est utilisé alors Oracle utilise shm_open pour créer les segments il faut donc monter /dev/shm.

  • Si sga_target est utilisé alors Oracle utilise mmap/shmget pour créer les segments et /dev/shm n'est pas utilisé.

Les 'Huge pages' sont - sous Linux 7 et inférieur - implémentées uniquement sur mmap/shmget pas avec l'utilisation de shm_open

Plus d'informations :

Clone this wiki locally