Born to be wired
600820 visites
Uptime 6 days

Archive pour octobre 2009

 Faster Harder Server

 29 octobre 2009  Projet Serveur, Projet Web  1 commentaire »
scooter
scooter

Faster Harder Scooter - 1999 - Putain, 10 ans !

Les résultats sont probants. Nous sommes maintenant à Migration+14 jours. Guile a définitivement remplacé Ryu. Pour ceux qui ne comprennent rien, regardez les épisodes précédents.

Pendant ces 14 jours, pas une seule interruption de service. Premiers constats : les ressources sont bien disponibles, comme l’attestent ces graphiques (promis, après ce billet j’arrête de mettre des graphes).

NB : c’est visible, mais pour ceux qui auraient du mal à situer, la migration a eu lieu au milieu de la semaine 42. Le trou en semaine 40, c’est une interruption de  service.

memory

La RAM a finalement été boostée à 1 Go au lieu des 768 Mo prévus (j’ai retrouvé des barrettes supplémentaires). L’OS peut donc s’étendre pleinement dans cet espace au lieu des étroits 256 Mo auxquels il avait droit auparavant. En conséquence, comme on le voit en orange sur ce graphe, peu de ressources mémoire disponibles, mais quand même plus qu’avant. L’espace de swap (en jaune) a été significativement augmenté, avec néanmoins l’espoir qu’il servira peu.

load

De même, les nouvelles ressources ont permis d’alléger significativement le nombre de process en attente. Les pics de charges à la fin de chaque semaine correspondent au scan du système par l’antivirus.

Pour info, ces graphes ont été obtenus grâce à Cacti.

Tout ça, c’est très bien, mais on en fait quoi ?

Ces nouvelles ressources ont permis l’activation de la compression gzip lors du transfert d’éléments web. Cette option était auparavant désactivée sous peine de plomber complètement les perfs du serveur.

Ajoutons à cela une meilleure allocation de la mémoire pour les process Apache, une meilleure gestion du cache côté client, et quelques optimisations CSS sur la base des conseils prodigués par YSlow.

Résultat : je n’ai jamais vu mon WordPress aussi rapide. Même les écrans d’administration, pourtant extrêmement lourds, se chargent sans délai. Je suis donc très agréablement surpris et j’espère que, malgré mon débit bridé en upload, vous verrez vous aussi la différence.

 Server Academy :: And the winner is…

 12 octobre 2009  Projet Serveur  3 commentaires
riner-winner

Server Academy

Voici enfin le moment de présenter notre gagnant sur les bases des nombreux votes des internautes et des décisions du jury.

Indice de performances

Afin de déterminer cet indice, le jury (c’est-à-dire moi) a calculé les performances de tous les serveurs en se basant sur les 8 tests précédents, en prenant les mesures effectuées sur Ryu comme étalon. Le graphique ci-dessous montre la moyenne de ces performances.

testA

  • Ryu affiche donc logiquement une valeur de 1.00
  • Zangief se positionne avant-dernier avec une valeur de 1.67
  • Il est devancé, d’assez peu, par Blanka avec un score de 1.98
  • Guile dépasse assez largement ses concurrents avec une note de 2.85
  • Enfin Dhalsim prend la première place en pulvérisant les scores, avec une moyenne de 4.60

Rappelons que ces tests ne sont pas complètement représentatifs de la charge subie par un serveur d’une part, et qu’il est également nécessaire de prendre en compte le contexte dans lequel ont été effectués les tests d’autre part. Pour rappel ce contexte est décrit dans le billet précédent.

Toutefois, si l’on exclut de ces résultats Dhalsim, qui rappelons-le est hors concours, la tendance montre clairement une démarcation de Guile par rapport aux autres serveurs en ce qui concerne les perfs.

Indice performances/coût

Maintenant que nous avons ces récapitulatif des performances, effectuons un calcul supplémentaire. Amusons-nous à faire intervenir le coût annuel estimé dans la balance (eh oui, l’électricité n’est pas gratuite, et cela ne va pas s’arranger dans les années à venir), pour obtenir un rapport performance/coût. Le tout est toujours centré sur Ryu qui garde sa valeur de 1.00.

testBEt là, c’est une chute brutale pour nos deux serveurs d’entreprise.

  • Zangief, bien qu’affichant des performances assez au-dessus de Ryu, voit son score plombé par sa consommation importante et peine à se maintenir à 0.77
  • Pire, Blanka, qui ne peut fonctionner avec une seule alimentation branchée, obtient la note de 0.46
  • Guile en revanche offre le meilleur rapport, avec le score de 1.83

Indice de confort domestique

Si nous prenons en compte l’encombrement et surtout le bruit, Blanka et Zangief se trouvent encore désavantagés, au contraire de Guile.

Le vote du jury

Pour toutes les raisons ci-dessus, en vertu des pouvoirs qui me sont conférés par l’Assemblée Démocratique des Sysadmins de Lyon (ADSL), appuyés par l’ordre des Webmasters Technocrates de France (WTF), je déclare officiellement Guile vainqueur du concours et prochain serveur pour AlphaK.net.

La passation de pouvoirs aura lieu cette semaine.

Bien entendu le contexte et le trafic actuel lié au domaine ont été pris en compte lors de cette décision. Guile ne pourra jamais faire preuve d’autant de robustesse que les deux serveurs d’entreprise sous de très fortes charges. Il conviendra également, comme c’est le cas à l’heure actuelle pour Ryu, de veiller à l’implémentation d’une solution de sauvegarde des données, celles-ci ne pouvant être fiabilisées par un système RAID (quoique le RAID est aussi un système qui a ses points faibles, l’utiliser partout sans réfléchir serait une erreur).

Les deux serveurs d’entreprise seront conservés pour être disponibles en cas de nécessité. Ryu quant à lui va enfin pouvoir prendre du repos bien mérité ; quelque chose me dit qu’il pourrait bien être reconverti en serveur de sauvegardes…

 Server Academy :: Les perfs

 1 octobre 2009  Projet Serveur  Aucun commentaire
test1

Server Academy

Il est temps de regarder plus précisément ce que nos candidats ont dans le buffet !

Pour cela, je leur ai fait passer une série de 8 tests de performances brutes. Ces tests ne sont pas toujours pleinement représentatifs de la charge réelle supportée par un serveur, mais ils sollicitent de nombreuses parties de l’architecture matérielle (principalement processeur, RAM, contrôleurs disques et disques eux-mêmes).

Il convient toutefois d’établir dans quelles conditions ces résultats ont étés obtenus. Tous les serveurs sont en Debian 5 et ont bénéficié d’une fresh intall, à l’exception de Ryu qui a tourné sur son installation existante. Voici le détail des conditions de tests au cas par cas :

  • RYU : continuité de service oblige, Ryu a passé ces tests tout en continuant à effectuer ses tâches quotidiennes (principalement servir des pages web, relayer des requêtes DNS, et teergruber des spammeurs). Ses performances relevées sont donc légèrement sous-évaluées par rapport aux autres candidats qui étaient idle lors des tests.
  • GUILE : rien de particulier à signaler.
  • ZANGIEF : les pré-tests ont montré des problèmes de performances importants au niveau des accès disques, à fortiori en RAID5. Afin de minimiser ces problèmes, les tests ont été réalisés sur un système de fichiers créé sur une grappe en RAID0.
  • BLANKA : voulant au départ réaliser mes tests en RAID0, j’ai pu réaliser l’installation du système sous cette configuration sans problème, mais booter sur la grappe a été problématique. Il semble en effet que la configuration du boot sur une grappe doit être délivrée au serveur via BOOTP, ce qui est assez gênant pour un serveur censé être autonome. Les tests ont donc été réalisés sans utiliser le RAID.
  • DHALSIM : est un petit nouveau hors concours. Il s’agit d’un clone de Ryu exécuté dans une machine virtuelle sur mon PC desktop (Athlon X2 5200+ avec 2Go de RAM DDR2 et disques SATA-II). 1 seul processeur et 256 Mo de RAM sont alloués à la VM. Dhalsim participe aux tests uniquement afin d’avoir une vision plus large de ce que peuvent devenir les performances lors de l’utilisation d’une configuration plus récente, et donc plus musclée. Ses performances sont toutefois sous-évaluées car limitées par le cadre de la VM.

Tous les tests affichent un temps de traitement en secondes. Le meilleur résultat est donc le temps le plus faible.

Test 1 – Écriture d’un fichier de 1 Go sur le disque

Ce test fait uniquement intervenir principalement le disque dur, en écriture. La commande suivante a été utilisée :

time dd if=/dev/zero of=dummy.tmp count=2M

test1

Ici Ryu accuse le coup avec sa carte-mère limitant les taux de transferts en UDMA2. Zangief affiche des performances décevantes malgré une configuration en RAID0. Le plus rapide en SCSI sans RAID est Blanka, mais il est facilement distancé par Guile et Dhalsim sur des configurations respectivement UDMA5 et SATA-II.

Test 2 – Lecture d’un fichier de 1 Go à partir du disque

Comme le précédent, ce test met principalement en jeu le disque dur et son contrôleur, cette fois-ci en lecture. La commande suivante a été utilisée :

time cat dummy.tmp > /dev/null

test2

Zangief se démarque, en mal, par rapport au test précédent. Malgré des performances correctes de Blanka, celui-ci est battu par une solution IDE. Dhalsim est un peu à la traîne derrière Guile.

Test 3 – Génération d’un fichier random de 1 Go

Ce test met principalement en avant les capacités de calcul (donc en grande partie le processeur). La commande suivante a été utilisée :

time dd if=/dev/urandom of=random.tmp count=2M

test3

Le processeur de Dhalsim lui permet de tenir le haut de peloton. Guile fonctionne à une fréquence bien supérieure aux autres et remporte la seconde place. Les deux processeurs de Blanka ne semblent pas être de grande utilité pour ce test.

Test 4 – Compression d’un fichier de 1 Go

Tout comme pour le test précédent, c’est principalement le processeur qui sera sollicité ici. Le fichier en question est un fichier contenant des octets générés de manière aléatoire. Ce fichier est le même pour tous les tests. La commande suivante a été utilisée :

time bzip2 random.ryu

test4

Ici, les deux processeurs de Blanka semblent lui permettre de prendre le pas sur Guile, qui pour ce test semble donner des signes de faiblesse. Dhalsim affiche des résultats sans commune mesure et Ryu est comme d’habitude bon dernier.

Test 5 – Décompression du fichier obtenu en résultat du test précédant

Le processeur est beaucoup sollicité dans ce test, mais il n’est pas le seul. La commande suivante a été utilisée :

time bunzip2 random.ryu.bz2

test5

Le duel Blanka/Guile tourne cette fois-ci en faveur de ce dernier. Zangief est distancé mais il s’accroche. Ryu et Dhalsim affichent des résultats sans surprise.

Test 6 – Déplacement d’un fichier de 1 Go de partition à partition, sur le même disque

Le disque dur et son contrôleur seront pleinement sollicités ici, en lecture comme en écriture. Pour les systèmes non-SCSI, le processeur sera aussi de la partie. La commande suivante a été utilisée :

time mv random.ryu /tmp/

test6

Les trois configurations les plus puissantes sont ici au coude à coude. C’est cependant Guile qui remporte le duel. Zangief ne suit pas vraiment et confirme les soupçons évoqués sur ses performances avec un résultat bien en dessous de ce qu’il est possible d’espérer pour du RAID0. Ryu quant à lui montre clairement les limitations de l’UDMA2.

Test 7 – Scan par l’antivirus d’un fichier de 1 Go

Le scan a été effectué par Clamav. Ce test sollicite probablement la RAM de manière importante si l’on fait l’hypothèse que les définitions de virus y sont chargées avant le scan. La commande suivante a été utilisée :

cd /tmp ; time /usr/bin/clamscan -ri random.ryu

test7

Ryu étant borderline au niveau de son utilisation mémoire, a probablement été obligé de swapper, ce qui plombe inévitablement ses performances. Blanka est à la traîne et finit avant dernier. Curieusement, les temps de traitement sont inférieurs au temps de lecture d’un fichier de 1Go (cf Test 2), ce qui laisserait sous-entendre qui le fichier n’est pas balayé par l’antivirus dans son intégralité (voire quasiment pas).

Test 8 – Compilation du noyau linux-2.6.28.7

Le test ultime sollicitant à peu près toute l’architecture. La commande suivante a été utilisée :

cd /home/public/linux-2.6.28.7 ; time make bzImage modules

test8

Les deux processeurs de Blanka lui permettent de prendre plus de 10 minutes d’avance sur Zangief,  mais Guile met lui-même plus 9 minutes dans la vue de Blanka. Les deux extrêmes sont Dhalsim avec 10 minutes de traitement et Ryu avec 68 minutes.

Pour information, le tableau des résultats exacts

Nom
RYU
GUILE
ZANGIEF
BLANKA
DHALSIM
Photosa-thumb-1sa-thumb-2sa-thumb-3sa-thumb-4sa-thumb-5
Test 169.7530.4350.5139.8627.27
Test 253.0517.8742.2028.3620.93
Test 31612.61552.251233.18994.53233.94
Test 43207.971980.142250.421776.94620.07
Test 5977.69527.27713.40610.60245.47
Test 6216.6049.5788.6263.6861.89
Test 718.574.386.889.913.28
Test 84114.421602.402787.192150.66632.52