Infos plutôt valables pour des partoches physiques. Maintenant, avec PowerVM et AIX 7.x, les infos ci-dessous sont moins pertinentes.

Généralités

Lancer topas pour avoir un état global de la machine :

Activité de swapping

Dans ce cas on voit que la machine swappe. Pour expliquer les baisses de performances on peut voir que les devices de swap sont situés (généralement) sur les disques internes (hdisk0 & hdisk1 → lscfg -vl hdisk0 pour avoir des infos sur les disques). Pour déterminer sur quel(s) disque(s) se trouve l'espace de pagination on peut utiliser les commandes suivantes :

mrcmid@SomeMachine:/$ lsvg -l rootvg |grep paging
hd6                 paging     48    96    2    open/syncd    N/A
mrcmid@SomeMachine:/$ lslv -l hd6
hd6:N/A
PV                COPIES        IN BAND       DISTRIBUTION
hdisk0            048:000:000   100%          000:042:006:000:000
hdisk1            048:000:000   100%          000:048:000:000:000

L'activité de swapping sollicite beaucoup ces disques (d'où le Wait à 79.2%) ce qui pénalise la machine car le CPU passe son temps à déterminer quoi lire et écrire dans le swap au détriment du reste de l'activité système.

Pour détecter les process qui swappent le plus :

root@SomeMachine:/apps/sys/log/stats/swap$ svmon -gP -t 10 |grep -p Pid|grep '^.*[0-9]'
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd LPage
 1359954 oracle         1029357   251501      365   259596      Y     N     N
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd LPage
 2375768 oracle         1029417   251501      349   259596      Y     N     N
     Pid Command          Inuse      Pin     Pgsp  Virtual 64-bit Mthrd LPage
 1740830 oracle         1034135   251501      349   259621      Y     N     N

Activité disques

Avec la commande lspv on peut déterminer les LVs et FSs présents sur le disque pour, éventuellement, effectuer une meilleur répartition sur des disques moins sollicités.

Activité réseau

. . . à suivre . . .

CPU

Liens

http://www.ibm.com/developerworks/views/aix/libraryview.jsp?search_by=Optimizing+AIX+5L+performance
http://www.ibm.com/developerworks/aix/library/au-aix5_cpu/index.html
http://www.ibm.com/developerworks/aix/library/au-processinfinity.html

Mémoire

minperm, maxperm, lru_file_repage

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

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

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)
vmstat -l
vmstat -P all

Liens

http://www.ibm.com/developerworks/views/aix/libraryview.jsp?search_by=Tuning+your+memory+settings
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/aix_mem_aff_support.htm

Optimisation ramdisk

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

Détecter une fuite mémoire

Une doc tirée du site IBM.

Sous-système disques

Les I/O asynchrones

Par défaut les I/O asynchrones sont mal configurés. Le min server doit être fixé au nombre potentiellement accédé de disques avec 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 multiplié par l'AIX donc min=max. Le nombre de requêtes doit être à 16384 (4*4096). Il ne faut pas dépasser 1000 pour le max (ça ne sert à rien de monter au-delà) Ici, on parle bien de disques physique et non de LUN logique.

Petit détail piquant, le min server est le nombre de server d'I/O asynchrones 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 à 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.

Les WAIT IO

Un PDF contenant des infos provenant d'IBM, disponible ici.

Liens

http://www.ibm.com/developerworks/aix/library/au-DirectIO.html
http://www-03.ibm.com/servers/aix/whitepapers/db_perf_aix.pdf

Documentations

Docs AX490AF

Outils pour les perfs AIX

Autres outils (non-AIX)