Notes spécifiques aux plates-formes

# Mise en oeuvre d'un serveur Web hautes performances sous HPUX

    Date: Wed, 05 Nov 1997 16:59:34 -0800
    From: Rick Jones <raj@cup.hp.com>
    Reply-To: raj@cup.hp.com
    Organization: Network Performance
    Subject: HP-UX tuning tips

Traduction du corps du message cité ci-dessus :

Voici quelques conseils de personnalisation pour HPUX à ajouter à la page de personnalisation.

Pour HP-UX 9.X: mettre à jour vers la version 10.20
Pour HP-UX 10.[00|01|10]: mettre à jour vers la version 10.20

Pour HP-UX 10.20:

Installez le dernier patch cumulatif à propos du transport ARPA. Ceci va vous permettre de configurer la taille de la table de hashage de recherche de connexion TCP. La valeur par défaut est 256 conteneurs et doit être une puissance de deux. À cet effet, utilisez adb pour modifier l'image *disque* du noyau. Le nom de la variable est `tcp_hash_size`. Notez qu'il est impératif d'utiliser "`W`" pour spécifier une quantité sur 32 bits, et non "`w`" qui indique une valeur sur 16 bits, lors de la modification de l'image disque car la variable `tcp_hash_size` est une quantité sur 32 bits.

Comment déterminer cette valeur ? Examinez la sortie de ftp://ftp.cup.hp.com/dist/networking/tools/connhist, et comptez le nombre total de connexions TCP existant sur le système. Il est en général souhaitable que ce nombre divisé par la taille de la table de hashage soit raisonnablement petit, disons inférieur à 10. Les administrateurs peuvent consulter le document SPECweb96 de HP pour quelques réglages courants. On peut les trouver à http://www.specbench.org/. Si un système HP-UX traite 1000 connexions SPECweb96 par seconde, une valeur de temps `TIME_WAIT` de 60 secondes permettrait le suivi de 60000 connexions TCP.

Les administrateurs peuvent tester la profondeur de leur file d'attente d'écoute avec ftp://ftp.cup.hp.com/dist/networking/misc/listenq.

Si Apache s'exécute sur un système à base de PA-8000, il est conseillé de modifier l'exécutable Apache avec la commande chatr afin d'utiliser une page de grande taille. La commande sera du style "`chatr +pi L <BINARY>`". Le GID de l'exécutable en cours de fonctionnement doit posséder le privilège `MLOCK`. Pour assigner ce privilège `MLOCK`, consultez `Setprivgrp(1m)`. La modification peut être validée en exécutant Glance et en examinant les portions de mémoire du/des serveur(s) afin de s'assurer qu'elles montrent une fraction non triviale du segment de texte verrouillé.

Si Apache s'exécute sur un système MP (multi-processeurs), il est conseillé d'écrire un petit programme qui utilise `mpctl()` et permettant d'associer les processus aux processeurs. Un simple algorithme `pid % numcpu` suffira probablement. Cette modification peut aussi être ajoutée dans le code source.

Si l'administrateur s'intéresse au nombre de connexions `FIN_WAIT_2`, il peut utiliser nettune pour diminuer la valeur de `tcp_keepstart`. Il devra cependant être prudent - surtout ne pas diminuer cette valeur en dessous de, disons deux à quatre minutes. Si `tcp_hash_size` a été défini, il est probablement approprié de laisser les connexions `FIN_WAIT_2` prendre plus de temps à expirer (peut-être même la valeur par défaut de deux heures) - elles n'auront en général pas un grand impact sur les performances.

On peut ajouter d'autres choses au code de base, mais elles feront peut-être l'objet d'un autre email. N'hésitez pas à m'envoyer un message si vous êtes intéressé.

sincèrement ,

rick jones

http://www.netperf.org/netperf/