Ressources

Consommation CPU, en temps réel avec 20 mesures prises à intervale de 5 secondes

sar -u 5 20

AIX Ppoaix54 1 6 000F801AD400    07/02/15

System configuration: lcpu=12 ent=2.50 mode=Uncapped

16:17:44    %usr    %sys    %wio   %idle   physc   %entc
16:17:49      36      28       0      36    2.34    93.7
16:17:54      36      26       0      38    2.30    92.2
16:17:59      38      28       0      34    2.38    95.3

Mémoire RAM disponible

/usr/sbin/lsattr -E -l sys0 -a realmem | awk '{print 2/1024/1024\" Go\"}'

Espace swap disponible. Le swap doit être égal à la RAM, maximum 16 Go, réparti sur plusieurs disques à taille égale pour limiter la contention disque.

/usr/sbin/lsps -a

Pour l'augmenter, en fonction du ou des VGs sur lequel est le swap (cf lsps)

lsvg rootvg | grep \"PP SIZE\"
smitty pgsp
Change/Show > Enter > Number of additional > Enter

RAM et Swap actuel. Attention la RAM inclut le buffer disque. Sur AIX les réglages vmo sont normalement fait pour réduire le buffer disque en mémoire au minimum, pour utiliser le cache des baies disques. Mais si ce n'est pas le cas et qu'on met les fichiers en RAM, nmon affichera une mémoire utilisée à ~100% sans swapper.

nmon
m

RAM et CPU

vmstat –wt 2

Si la colonne kthr, kernel thread ne tourne pas autour de 0, il y a un manque de CPU, ce qui peut être corroboré par une colonne cpu / id (idle cpu) inférieure à 80/90%
La colonne avm, average memory * commande pagesize = consommation réelle en mémoire (par opposé à nmon qui inclut le buffer disque au chiffre) en octet
Si les colonnes fre (mémoire libre) pi (page in) et po (page out) sont très stables c'est que le serveur est large en mémoire

Réglages

Environnement, réglage mieux pour usine à gaz.

smitty chgsys
Nb max de processus autorisés par utilisateur         [2048]           
Nb max pages autorisées ds tampon E-S par blocs       [32]
Taille de la liste ARG/ENV en blocs de 4 Ko           [256]

Langue

smitty mle_cc_cust_hdr
Convention, LANGUE et CLAVIER à ISO8859-1  Français [fr_FR]

Date et Timezone

grep TZ /etc/environment
TZ=Europe/Paris

date

Ménage

crontab -l
0 23 * * * /usr/local/bin/menage_AIX.sh >/dev/null  2>&1

Avec le script

# Nettoyage des logs d'erreur niveau AIX
/usr/bin/errclear 1

# Nettoyage des logs de connexion a la machine
/usr/sbin/acct/nulladm /var/adm/wtmp

# Nettoyage des logs d'échec de login
>/etc/security/failedlogin

# Nettoyage des logs d'execution tomcat
>/var/adm/cron/log

# Nettoyage du repertoire de preservation ex et vi
rm /var/preserve/*

# Nettoyage des logs de la commande su
    >/var/adm/sulog

# Nettoyage des mails
rm -f /var/spool/mqueue/*
for i in `ls /usr/spool/mail`
do
  > /usr/spool/mail/$i
done;

exit 0

OS & patch OS & Hardware

OS et Hardware. Si la version majeure de l'OS est en retard sur l'architecture (par exemple 5300-12-02-1036 VS POWER6) on perd en puissance CPU faute de l'exploiter correctement.

oslevel -s
prtconf|more

Application d'un ifix AIX. Ils sont récupérables sur [le site officiel](ftp://ftp.software.ibm.com/aix/ifixes "ftp://ftp.software.ibm.com/aix/ifixes")

emgr -d -e IV11158.epkg.Z    # verif de la qualité du fichier
emgr -p -e IV11158.epkg.Z    # appliquer en preview
emgr -e IV11158.epkg.Z       # appliquer
emgr -l                      # visu

Alternativement

smit emgr

Et les filesets, ie les packages, ici exemple avec les prérequis Oracle

lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.perfstat bos.perf.libperfstat bos.perf.proctools Java6_64.sdk xlC.aix50.rte xlC.aix61.rte

Réseau

Ports éphémères, visualiser et étendre

/usr/sbin/no -a | grep ephemeral
/usr/sbin/no -o tcp_ephemeral_low=9000 -o tcp_ephemeral_high=65500 -o udp_ephemeral_low=9000 -o udp_ephemeral_high=65500

Ordre de résolution réseau, OK si le local est avant le bind.

grep \"^hosts\" /etc/netsvc.conf 
hosts=local, bind

Et hostname dans le /etc/hosts

grep `hostname` /etc/hosts

Interfaces

ifconfig -a

Qui écoute sur quel port. Soit pour un port P

netstat -Aan | grep LISTEN | grep P
# Première colonne = PCB
rmsock PCB tcpcb

Soit un script plus général made in le web

!/usr/bin/ksh

print "Port PID Process"
netstat -Aan | grep LISTEN | awk '{print 1 " " 5}' | while read pcb port; do
out=rmsock pcb tcpcb
if echo "out" | grep "Kernel Extension" > /dev/null; then
printf "%-15s Kernel Extension\
" "port"
else
pid=echo "out" | sed -n 's/.*pro[c]*ess \\\\([0-9][0-9]*\\\\) .*/\\\\1/p'
if [ -n "pid" ]; then
proc=ps -p pid | tail -n 1 | awk '{print 4}'
printf "%-15s %-16s proc\
" "port" pid
else
echo "Erreur, ligne non reconnue \\"out\\" pour le port port"
fi
fi
done

Service

startsrc -s sshd
stopsrc -s sshd

Métriques

Collecte via topas_nmon

Faire tourner cette commande qui va récolter les informations TNWLQ, -c fois à -s d'intervalle (soit une fois toutes les 5 minutes en une journée dans cet exemple)

/usr/bin/topas_nmon  -fTNWLA -l 0.001 -s 300 -c 288 -m /tmp/nmon_data

Idéalement il faut une période représentative de métrique. Le moment où ça rame avec le avant et après. La journée de la semaine qui ne va pas et une où ça va. Etc.

Analyse via nmon_analyser

Récupérer le (ou les) fichier(s) cumulant les informations journalière(s) dans de dossier -m, au nom hostname_YYMMJJ_HHMM.nmon

Télécharger la feuille de calcul de la communauté IBM disponible [ici](https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power Systems/page/nmon_analyser "https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power Systems/page/nmon_analyser")

Suivre les indications pour grapher.