Modification des paramètres de noyau (Linux)
Pour les installations root, le gestionnaire de bases de données utilise une formule permettant d'ajuster automatiquement les valeurs de paramètre de noyau et d'éliminer les mises à jour manuelles de ces valeurs.
Avant de commencer
Procédure
Pour mettre à jour les paramètres de noyau sous Red Hat et SUSE Linux®:
- Exécutez la commande ipcs -l pour répertorier les paramètres de noyau en cours.
- Analysez le résultat de la commande pour déterminer si vous devez modifier les paramètres du noyau ou non en comparant les valeurs en cours avec les paramètres minimum imposés du tableau suivant.
Paramètre de noyau IPC Paramètre appliqué minimum kernel.shmmni (SHMMNI) 256 * <size of RAM in GB> kernel.shmmax (SHMMAX) < taille de la mémoire RAM en octets >1 kernel.shmall (SHMALL) 2 * < taille de la mémoire RAM dans la taille de page système par défaut >2 kernel.sem (SEMMNI) 256 * <size of RAM in GB> kernel.sem (SEMMSL) 250 kernel.sem (SEMMNS) 256 000 kernel.sem (SEMOPM) 32 kernel.msgmni (MSGMNI) 1 024 * <size of RAM in GB> kernel.msgmax (MSGMAX) 65 536 kernel.msgmnb (MSGMNB) 65 536 3 - Sur les systèmes d'exploitation Linux 32 bits, la valeur minimale imposée pour SHMMAX est limitée à 4 294 967 295 octets.
- SHMALL limite la quantité totale de mémoire partagée virtuelle qui peut être allouée à un système. Chaque serveur de données Db2® gère efficacement la quantité de mémoire système qu'il consomme, également appelé mémoire validée. Le serveur de données Db2 alloue plus de mémoire virtuelle qu'il n'en engage pour prendre en charge la préallocation de la mémoire et la gestion dynamique de la mémoire. La préallocation de la mémoire améliore les performances. Le gestion dynamique de la mémoire est le processus qui consiste à accroître et réduire l'utilisation réelle de la mémoire à l'intérieur de zones distinctes de mémoire virtuelle partagée. La prise en charge efficace de la préallocation et de la gestion dynamique de la mémoire implique que les serveurs allouent régulièrement sur un système plus de mémoire virtuelle partagée qu'il n'existe de mémoire RAM physique. Le noyau nécessite cette valeur comme nombre de pages.
- L'augmentation de la taille limite des files d'attente des messages, spécifiée en
octets par MSGMNB, peut améliorer les performances des opérations de
chargement. Vous pouvez afficher l'utilisation de la file d'attente de messages en exécutant la commande
ipcs -q. Si, pendant les opérations de chargement, elles atteignent leur capacité totale ou si elles s'en approchent, il peut être judicieux d'augmenter leur taille limite (octets).
Voici un exemple de commande ipcs suivi de commentaires après les caractères//afin de mettre en évidence les noms de paramètre :# ipcs -l ------ Shared Memory Limits -------- max number of segments = 4096 // SHMMNI max seg size (kbytes) = 32768 // SHMMAX max total shared memory (kbytes) = 8388608 // SHMALL min seg size (bytes) = 1 ------ Semaphore Limits -------- max number of arrays = 1024 // SEMMNI max semaphores per array = 250 // SEMMSL max semaphores system wide = 256000 // SEMMNS max ops per semop call = 32 // SEMOPM semaphore max value = 32767 ------ Messages: Limits -------- max queues system wide = 1024 // MSGMNI max size of message (bytes) = 65536 // MSGMAX default max size of queue (bytes) = 65536 // MSGMNB- A partir de la première section sur les limites de mémoire partagée, la limite SHMMAX correspond à la taille maximale d'un segment de mémoire partagée sur un système Linux . La limite SHMALL
correspond à l'allocation maximale de pages de mémoire partagée sur un système.
- Il est recommandé de définir une valeur égale à la mémoire physique du système pour la valeur SHMMAX. Toutefois, la valeur minimale requise pour les systèmes x86 est 268435456 (256 Mo) et 1073741824 (1 Go) pour les systèmes 64 bits.
- La section suivante concerne le nombre de sémaphores disponibles sur le système d'exploitation. Le paramètre de noyau sem se compose de quatre jetons, SEMMSL, SEMMNS, SEMOPM et SEMMNI. SEMMNS est le résultat de SEMMSL multiplié par SEMMNI. Le gestionnaire de base de données nécessite que le nombre de grappes (SEMMNI) soit augmenté en conséquence. En général, SEMMNI doit avoir deux fois le nombre maximum d'agents prévus sur le système, multiplié par le nombre de partitions locales sur l'ordinateur du serveur de bases de données, plus le nombre de connexions d'applications locales sur cet ordinateur.
- La troisième section concerne les messages générés sur le système.
- Le paramètre MSGMNI affecte le nombre d'agents qui peuvent être démarrés. Le paramètre MSGMAX affecte la taille du message qui peut être envoyé dans une file d'attente; le paramètre MSGMNB, la taille de la file d'attente.
- Le paramètre MSGMAX doit être remplacé par 64 ko (c'est-à-dire 65536 octets) et le paramètre MSGMNB doit être augmenté à 65536.
- Modifiez les paramètres de noyau que vous devez ajuster en éditant le fichier /etc/sysctl.conf . Si ce fichier n'existe pas, créez-le.Les lignes suivantes sont des exemples de ce que doit contenir le fichier :
#Example for a computer with 16GB of RAM: kernel.shmmni=4096 kernel.shmmax=17179869184 kernel.shmall=8388608 #kernel.sem=<SEMMSL> <SEMMNS> <SEMOPM> <SEMMNI> kernel.sem=250 1024000 32 4096 kernel.msgmni=16384 kernel.msgmax=65536 kernel.msgmnb=65536 - Exécutez sysctl avec le paramètre -p pour charger les paramètres sysctl à partir du fichier par défaut /etc/sysctl.conf:
sysctl -p - Facultatif: Les modifications sont conservées après chaque réamorçage:
- (SUSE Linux) Active boot.sysctl .
- (Red Hat) Le script d'initialisation rc.sysinit lit automatiquement le fichier /etc/sysctl.conf.