Born to be wired

Server Academy :: Les perfs

 1 octobre 2009  Projet Serveur  Aucun commentaire

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

NomRYUGUILEZANGIEFBLANKADHALSIM
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

Laisser un commentaire