Tuning AIX

De DocUnix.

Sommaire

Gestion de la mémoire

Depuis AIX 5.2 ML4, il existe un paramètre (quasi) imparable, le lru_file_repage. Ce paramètre mis à 0, le serveur essaie de dégager uniquement les file pages. Du coup, si le minperm est à 5/10%, le maxperm à 80% et le système gere (en jfs2 ou pas) les pages mémoires. Une belle courbe vmtune se traduit par un numperm qui navique entre minperm et maxperm.

Attention tout de même en cas de jfs2 ou NFS fortement sollicité le maxclient pour littéralement exploser est atteindre les 80% du maxperm% et faire swapper le serveur, dans le cas maxperm%=maxclient%. Dans ce cas, il est peut être appréciable de mettre un maxclient% à 30%.

Ces paramétrages sont accessible par la commande vmo.

Rapidement, l'utilisation du lru_file_repage=0 permet de se libérer des contraintes mix/maxfree% (intervalle qui encadre la garantie d'avoir de la place dans la free list, depuis 5.3, ces valeurs sont appliquée sur chaque memory pool).

AIX utilise des pages de 4k par défaut. L'utilisation des pages de 16M (lgpg_size) ne sera fera uniquement par les applications sachant les utiliser (sybase entre autre) et ne seront pas "libérable" pour les autres process. lgpg_regions, permet de fixer le nombre de régions qui seront de cette taille.

Sinon, pour les larges pages, il faut aussi 1) activer le vpin_shr 2) le user doit être large page capable (c'est un attribut du user)

Pour suivre la conso: vmstat -l Voir le découpage par type de page: vmstat -P all

Paramètres réseau et protocole

rfc_1323=1, permet de modifier le protocol TCP pour supporter les grosses bandes passante (Gigabit) (avecune MTU de 1500 à au max 64k !!!). Par contre, dans cette configuration les TCP header font 12 bytes... à bencher, donc...

tcp send/receive space: c'est un buffer qui permet à une application d'émettre ou recevoir sans que ça implique immédiatement un lock. Si l'application émet, elle peut remplir un buffer avant d'être locké par un engorgement. Dans l'autre sens, le buffer se remplit entre le système et la prise en compte par l'applicatif des data reçus une application peut surclasser ces paramètres systèmes en utilisant la primitive setsockopt. Il faudra voir si sybase est dans ce cas de figure, ou si on peut jouer avec les paramètres globaux du serveur.

Pour les commandes, c'est toujours le même truc no/vmo/ioo/schedo ...

-L pour lister -o le tunable à modifier -p pour appliquer maintenant ( si dynamique) + reboot -r pour appliquer au reboot

ex: no -o rfc1323=1

Les i/o asynchrone

Par défaut les I/O Asynchrones sont mal configurées. Le min server doit être fixer au nombre potentiellement accédé de disques ave les I/O asynchrones. Le max server doit etre égal au minimum multiplié par le nombre de CPU. Attention en AIX 5.3, le max server est d'office multplié par l'AIX donc min=max. Le nombre de requêtes doit être à 16384 (4*4096). Il ne faut pas depasser 1000 pour le max ( ça ne sert à rien de monter au-dela) Ici, on parle biens de disques physique et non de lun logique.

Petit détail piquant, le min server est le nombre de server d'I/O asynchrone lancés au démarrage du serveur avec les droits root. Toutes les applications peuvent s'en servir. Par contre, entre le min et le max, donc lancé au besoin, ils appartiennent a l'utilisateur qui en a besoin et ne sont jamais arrêtés. Je vous laisse imaginer lorsqu'il y sybase et oracle sur le même serveur.

Optimisation ramfs

Il faut les monter avec l'option rbrw pour ne pas cacher 2 fois (ram & disque) !!!

Optimisation Sybase ASE for IBM AIX

Un document mis à jour a été publié en Aout 2009, concernant l'optimisation Sybase ASE for IBM AIX. Ce document a été écrit conjointement par IBM et Sybase. Vous trouverez le document orignal sur le site de [Sybase]. J'essayerai d'en faire une synthèse pour les paramètres AIX d'ici quelques jours.

Chemin vers les librairies

Sur AIX, utilisez la variable d'environnement LIBPATH. La variable LD_LIBRARY_PATH est utilisé à partir d'AIX 5.3 en tant que PATH alterné pour l'accès aux librairies dynamiques.

Optimisation AIX 5.3 pour Oracle 10g

Optimisation des parametres réseau :

no -p -o rfc1323=1
no -p -o sb_max=1310720
no -p -o tcp_sendspace=262144
no -p -o tcp_recvspace=262144
no -p -o udp_sendspace=65536
no -p -o udp_recvspace=655360

Optimisation de la mémoire

vmo -p -o minperm%=5
vmo -p -o lru_file_repage=0

Optimisation I/O

ioo -p -o maxpgahead=16
ioo -p -o j2_maxRandomWrite=32
ioo -p -o maxrandwrt=32
ioo -p -o j2_nBufferPerPagerDevice=1024
ioo -p -o pv_min_pbuf=1024
ioo -p -o numfsbufs=2048 
Outils personnels