HP HOWTO: Guide d'utilisation et de configuration des produits HP sous Linux (Version 0.94) | ||
---|---|---|
Précédent | Suivant |
Ce chapitre propose une aide au dimensionnement des NetServers Linux suivant différents types d'utilisation.
Il faut d'abord considérer que cet exercice est toujours périlleux. En effet, seule la réalité permet de mettre à l'épreuve de telles prévisions. Néanmoins, avec l'expérience des solutions déployées par le passé, on peut arriver à donner quelques règles utiles.
On peut appliquer un certain nombre de règles en vigueur pour le dimensionnement de serveurs Unix classiques, en considérant que les systèmes CISC (majoritaires en environnement Linux) consomment environ 2,5 fois moins de ressources en mémoire que les systèmes RISC, étant donné que les binaires manipulés sont plus petits (les plates-formes Intel étant pour le moment des architectures 32 bits). Ceci influence aussi l'occupation disque, et la taille de la mémoire de pagination.
Il est évident qu'il faut, quel que soit le système, considérer les goulets d'étranglement de la solution mise en place, car ils détermineront le maillon le plus faible.
On prêtera une attention particulière aux points suivants :
Le nombre et la vitesse des disques (le débit de ceux-ci pouvant aller jusqu'à 20 Mo/s pour des disques 10.000 tr/mn, 25 Mo pour les 15.000 tr/mn),
Le nombre et la vitesse des contrôleurs SCSI (le débit des Ultra 2 LVD peuvent aller jusqu'à 80 Mo/s pour les LH3/4:3000/6000, et juqu'à 160 Mo/s pour les derniers modèles B),
L'ajout d'une carte SCSI prise en charge lors d'ajout de périphériques lents (DAT, DLT, graveur de CDs ...) pour ne pas faire passer le contrôleur en mode compatible descendant, et dégrader nettement les performances en entrées/sorties.
On se méfiera également du caractère extensible des machines. En effet, il est souvent préférable pour un client, de rajouter un serveur, plutôt que d'augmenter les capacités de celui en place. La raison en est d'ordre financier d'une part, le coût des ajouts se révélant, sur un système déjà ancien, proches de ceux d'un nouveau système dont les prix baissent continuellement. Même chose pour la maintenance. D'autre part, techniquement, il peut être plus intéressant de bénéficier des dernières technologies pour obtenir une machine plus équilibrée et plus performante, et de réutiliser l'ancien serveur pour des tâches secondaires (DNS secondaire, ...) ou de répartir des processus de l'autre serveur. Par exemple, lors de l'introduction de l'Ultra2 LVD, il était plus intéressant de racheter un serveur pour bénéficier d'une vitesse de bus SCSI de 80 Mo/s, plutôt que de mettre à jour un serveur en Ultra Wide à 40 Mo/s. Ceci implique qu'il est intéressant de dimensionner correctement son serveur, dès le départ, pour toute la durée prévisible de son utilisation (typiquement 3 ans aujourd'hui).
Dans le même ordre d'idées, on examinera soigneusement le fait de conseiller une machine multi-processeur au lieu de deux machines mono-processeurs. 2 systèmes différents impliquent 2 contrôleurs disques, 2 séries de disques, 2 bus mémoires séparés, donc une meilleure performance mais une administration plus importante. En revanche, un seul système facilite cette tâche, permet une communication rapide entre processeurs, ce qui peut être nécessaire pour certaines applications, mais rend l'environnement plus fragile (potentiellement plus d'indisponibilité en cas de panne du système). D'autre part, il y a plus de pertes, intrinsèquement, sur un modèle multi-processeur, en communications au niveau système. Cette question sera notamment à envisager dans le cas de l'ajout d'un processeur (obsolète par nature) sur une machine a posteriori, au lieu de l'ajout d'un serveur complet.
Sur les aspects mémoire, Linux peut gérer aujourd'hui jusqu'à 64 Go dans les noyaux stables. Linux tire parti de toute la mémoire qui lui est donnée, notamment dans la constitution d'un cache disque qui améliore considérablement les performances du système. On peut donc surdimensionner la quantité de mémoire installée, car ceci est préférable à une situation où le serveur serait obligé de paginer (ce qui pénalise énormément les performances). La taille minimale fournie sur les NetServers (128 Mo ou 256 Mo) correspond parfaitement à une utilisation normale d'un système et ne nécessite pas d'ajout particulier. Il faut tenir compte du fait qu'on n'utilise aucun environnement graphique sur les serveurs de production. Pour ce qui est de la mémoire de pagination (swap), sous Linux, elle vient en addition de la mémoire réelle pour donner la mémoire virtuelle totale dont dispose le serveur. Comme règle de base, il est conseillé de doter la machine d'autant de mémoire de pagination que de mémoire réelle, pour permettre au système de placer sur disque la quasi-totalité des processus en cours en cas de besoin. En revanche la règle qui prévaut sur les Unix d'origine Système V (tel HP-UX), de réserver deux fois la taille de la mémoire pour le swap n'est pas utile sous Linux. Il est à noter que Linux peut être amené à paginer certains processus inactifs pour libérer le maximum de mémoire vive possible. Avoir un système dont une partie du swap est occupé n'est donc pas nécessairement une preuve de manque de mémoire, ni de perte de performances.
Vous trouverez ci-dessous des recommandations suivant le type d'utilisation faite du NetServer HP sous Linux. Il est possible de cumuler plusieurs fonctions sur un même serveur. On prendra soin dans ce cas d'additionner au moins les ressources nécessaires pour remplir les services.
Quelques règles génériques sont à considérer :
On considère que le nombre d'utilisateurs simultanés équivaut à la moitié du nombre d'utilisateurs total du serveur.
La taille mémoire minimale nécessaire pour un Serveur Linux utilisable est de 32 Mo, ce qui est inférieur à la taille mémoire minimale disponible sur les NetServers (128 Mo). En cas d'utilisation de X-Window avec KDE ou Gnome sur la machine, il faut prévoir 64 Mo supplémentaires, soit 96 Mo minimum.
La taille disque minimale nécessaire pour un Serveur Linux utilisable est de 2 Go, ce qui est inférieur à la taille disque minimale disponible sur les NetServers (9 Go).
Dans le cas d'une utilisation en Raid 1, on doublera la taille disque utile pour obtenir la taille disque nécessaire. Dans le cas d'une utilisation en Raid 5, on ajoutera 1 disque pour obtenir la taille disque nécessaire (jusqu'à 8 disques).
Sauf cas particulier (serveur de calcul), la zone de swap est égale en taille à la taille mémoire.
Le processeur minimal nécessaire pour un serveur Linux utilisable est un Pentium 133, ce qui est inférieur au processeur minimal disponible sur les NetServers (Pentium III 933).
Chaque utilisateur X-Window exécutant un client sur le serveur consomme en moyenne 2 Mo.
Il peut être utile d'ajouter des cartes réseau sur ce type de machine pour lisser le trafic, en fonction du nombre de clients. L'utilisaion du mode d'aggrégation (bonding) du noyau Linux peut aussi se révéler très utile.
On pourra aussi se reporter aux conseils d'optimisation des performances fournis par Adrian Likins