Born to be wired
690213 visites
Uptime 9 days

Archive pour la catégorie ‘Projet Serveur’

 SMS automatisé – Round two

 11 octobre 2013  Projet Serveur  Aucun commentaire
La carte SIM B&You prête à reprendre du service.

Dans mon premier article sur le sujet, j’avais promis que la suite de l’aventure se déroulerait sur une seconde maquette démontrant l’envoi de SMS grâce à l’utilisation d’un modem GSM et des commandes AT. Cette expérience constituera donc le sujet de cet article.

Comme d’habitude en retard en ce qui concerne la rédaction de mes articles (les photos que vous pourrez voir dans celui-ci ont été prises il y a pile un an), je tiens à préciser que ce retard se comble néanmoins peu à peu, avec pour effet de bord une accumulation de retard sur les interactions sociales avec les individus de mon espèce.

À la question « Pourquoi le modem GSM quand on peut déjà scripter l’envoi de SMS avec un Nokia 3310 ? », je répondrais : « Pour sa capacité à s’intégrer dans une chaîne de traitement automatisée ! Le 3310 ne fonctionne qu’avec son chargeur branché en permanence, avec les conséquences sur la batterie, et il doit être rallumé manuellement si jamais il venait à s’éteindre. Le modem GSM est alimenté par USB et sous tension dès que la machine/le serveur sur lequel il est connecté l’est aussi. »

Maintenant que tout est dit, passons au détail. J’ai choisi un modem Fastrack Wavecom en USB, ou un de ses clones, acheté à un vendeur chinois pour une somme très raisonnable sur un célèbre de site de vente aux enchères au logo multicolore et aux commissions sur les ventes outrageantes. L’appareil m’a été livré seulement deux semaines après l’achat, cette livraison dans un laps de temps si court prouve qu’il n’est pas arrivé à pied par la Chine.

Un paquet mystère en provenance de Chine.

Un paquet mystère en provenance de Chine.

Détail intéressant n°1, comme à leur habitude, les Chinois ne se prennent pas trop la tête avec la douane. La déclaration sur le paquet mentionne une valeur de marchandise de 1$, le contenu est décrit comme étant des LED, et la case « gift » est coché. Tout est fait pour que le colis passe les frontière comme une lettre à la poste, c’est le cas de le dire.

Le formulaire accolé sur le paquet suit à la lettre les préceptes du livre "Comment gruger les services de douane en loucedé", éditions Gallimard.

Le formulaire accolé sur le paquet suit à la lettre les préceptes du livre « Comment gruger les services de douane en loucedé », éditions Gallimard.

Au déballage, on retrouve le modem, son antenne amovible, un cordon USB et un mini-CD.

Pas de grosse surprise au déballage.

Pas de grosse surprise au déballage.

Détail intéressant n°2, le mini-CD inclus dans le package, auquel j’ai tenté d’accéder, comme ça pour rigoler. Évidemment, le support est blindé à craquer de fichiers tous plus chelous les uns que les autres, entre autres des bons vieux exécutables chargés à ras bord de plus de chevaux de Troie qu’il ne faudrait pour mettre à sac un pays entier. Timeo Danaos et dona ferentes, et cela s’applique aussi aux Chinois.

Double-cliquez sur n'importe quel exécutable pour transformer votre PC en robot-spammeur, plate-forme d'échange de numéros de cartes bancaires volés, et proxy pour darknet pédophile.

Double-cliquez sur n’importe quel exécutable pour transformer votre PC en robot-spammeur, plate-forme d’échange de numéros de cartes bancaires volés, et proxy pour darknet pédophile.

Par sécurité, je décide que le mini-CD ne sera plus jamais lu sur un système Windows. La lecture du support sur un système Linux, afin de fouiller si des instructions intéressantes sont présentes, ne me permet de ne faire qu’une seule découverte digne de ce nom : le support Unicode est bien opérationnel sur ma plate forme.

Et on remercie la fonction copier/coller du terminal pour naviguer dans les répertoires en chinois.

Et on remercie la fonction copier/coller du terminal pour naviguer dans les répertoires en chinois.

Le déballage effectué, il est maintenant temps de passer aux choses sérieuses, à savoir, pour commencer, le chargement d’une carte SIM dans le modem et le test de quelques commandes AT. J’ai effectué ces tests de commandes AT sous Windows.

La carte SIM B&You prête à reprendre du service.

La carte SIM B&You prête à reprendre du service.

Le but de cet article n’est pas de détailler l’utilisation des commandes AT. Quelques minutes de browsing en passant par votre moteur de recherche préféré vous conduiront directement à des tutoriels très bien faits sur le sujet, dont celui-ci que je trouve extrêmement complet.

Une fois la base des commandes AT comprises, l’envoi d’un SMS de test devient rapidement une formalité, comme l’illustre la capture d’écran ci dessous.

Envoi d'un message simple par commandes AT.

Envoi d’un message simple par commandes AT.

Un détail intéressant à propos des commandes AT, surtout à l’ère des communications internationales, est la possibilité malgré un ensemble de commandes utilisant un jeu de caractères réduit,  d’envoyer également des caractères Unicode, pour peu que le modem supporte la fonction (et que le mobile puisse les afficher). Cela se fait au travers d’une petite gymnastique de conversion décrite sur ce site. J’ai bien évidemment testé :

Envoi d'un message Unicode par commandes AT.

Envoi d’un message Unicode par commandes AT.

Et le résultat ne se fait pas attendre, les 2 SMS sont bien reçus par le mobile destinataire, ici un Nokia C7.

Réception immédiate et conforme aux messages envoyés.

Réception immédiate et conforme aux messages envoyés.

J’en sais assez, l’expérience peut prendre fin. Il est temps de confier la tâche de l’envoi à une application de plus haut niveau qui se chargera d’envoyer les commandes AT au modem pour moi. Et cette application, c’est encore une fois gnokii, sur système Linux cette fois-ci.

En premier vient la préparation du système. Si ce n’est pas déjà fait, cela consiste à ajouter les options suivantes dans le noyau Linux :

Device Drivers --->
-----USB Support --->
----------USB Serial Converter support --->
--------------- USB FTDI Single Port Serial Driver
--------------- USB Prolific 2303 Single Port Serial Driver

Si pl2303 est bien chargé automatiquement au démarrage, ce n’est pas le cas de ftdi_sio. La déclaration de ftdi_sio  dans /etc/modules permet de résoudre ce problème. J’ai aussi créé un lien symbolique /dev/wavecom vers le périphérique USB adéquat (/dev/ttyUSB0 chez moi) grâce à udev.

Enfin, le fichier de configuration de gnokii (/etc/xdg/gnokii/config sur Debian) est mis à jour de la manière suivante :

[global]
port = /dev/wavecom
model = AT
initlength = default
connection = serial
use_locking = yes
serial_baudrate = 9600

Les préparatifs sont terminés, place à l’action. On commence par tester que le lien avec le modem est fonctionnel, grâce à une commande qui retourne les principales informations liées au modem.

Modem reconnu par gnokii, numéro IMEI générique.

Modem reconnu par gnokii, numéro IMEI générique.

Détail intéressant n°3, le modem est livré avec un numéro IMEI non programmé, c’est à l’utilisateur de le faire au moyen d’une commande AT (vraisemblablement irréversible une fois effectué). Le numéro par défaut est 012345678901234. Je n’ai pas testé l’écriture d’un numéro IMEI à l’heure où j’écris ces lignes, l’envoi de SMS fonctionne très bien sans cela. Je ne pourrais que conseiller d’être prudent avec cette fonction, il serait en effet dommage d’entrer un IMEI au hasard bloqué par les opérateurs (par exemple suite à un vol de mobile). Si je devais le faire, j’utiliserais un IMEI issu d’un vieux téléphone mobile qui traine dans mes cartons, par exemple le Nokia 3310 qui m’a servi lors des tests précédents.

Avant de tenter un envoi, on prendra soin de débloquer la carte SIM en saisissant le code PIN. L’exemple suivant montre comment effectuer l’opération :

dhalsim:/# gnokii --identify
gnokiid Version 0.6.30
IMEI         : 012345678901234
Fabricant: WAVECOM MODEM
Aucune section flags dans le fichier de configuration.
Modele       : MULTIBAND  900E  1800
Nom du produit : MULTIBAND  900E  1800
Revision     : 532a09gg.2C2 182812
dhalsim:/# gnokii --getsecuritycodestatus
gnokiid Version 0.6.30
Etat du code de securite: en attente du code PIN.
dhalsim:/# gnokii --entersecuritycode PIN
gnokiid Version 0.6.30
Entrez votre code:
Code ok.
dhalsim:/# gnokii --getsecuritycodestatus
gnokiid Version 0.6.30
Etat du code de securite: rien a entrer.

On peut ensuite tester l’envoi de SMS en bonne et due forme. Pour commencer, un envoi d’un message long avec divers caractères accentués (NB : l’encodage de caractères des paramètres régionaux de ma session est l’UTF-8). Gnokii m’informe que le message a bien été envoyé en 2 parties.

Envoi d'un message avec caractères accentués par gnokii.

Envoi d’un message avec caractères accentués par gnokii.

Dans la foulée, j’en profite pour tester l’envoi de caractères un peu plus exotiques, directement depuis le shell. Celui-ci est bien envoyé également.

Envoi d'un message avec caractères chinois par gnokii.

Envoi d’un message avec caractères chinois par gnokii.

Attention toutefois, chaque idéogramme compte pour plus d’un caractère, on peut donc vite dépasser la limite du sous-message à 160 caractères en envoyant n’importe quoi. Pour ma part, bien que cela soit prévu par la norme GSM j’ai réussi à bloquer gnokii en tentant d’envoyer « 短信猫驱动与配套软件及安装说明书 ». Je n’ai pas cherché qui de gnokii ou du modem était en faute, ce genre de message n’étant pas représentatif des communications que je compte automatiser. J’aime simplement connaître les limites des systèmes que j’utilise. J’espère juste qu’un modem chinois est capable d’envoyer des message en chinois, sinon, le monde est mal barré.

Les messages correctement traités par gnokii ont bien été reçus sur le Nokia C7, avec un bémol sur le message en chinois : le mobile repère bien 4 caractères correspondant à mes 4 idéogrammes, mais ne les affiche pas. Je présume qu’il n’embarque pas la police de caractère adéquate. Décidément, Nokia, ce n’est plus ce que c’était.

Les messages envoyés par le shell sont reçus sur le mobile, et plus ou moins bien affichés en fonction du jeu de caractères constituant chacun d'entre eux.

Les messages envoyés par le shell sont reçus sur le mobile, et plus ou moins bien affichés en fonction du jeu de caractères constituant chacun d’entre eux.

La photo ci-dessus fait également apparaitre un message « Test réception SMS », que j’ai moi-même écrit à partir du mobile et envoyé au numéro de téléphone correspondant à la carte SIM à l’intérieur du modem. Le but de l’opération étant cette fois-ci de tester la réception et la récupération de messages à partir du shell. Une fois encore, c’est gnokii qui s’occupe de cette tâche. La commande permet d’afficher tous les messages enregistrés dans la boîte de réception de la carte SIM. Le message envoyé à partir de mon mobile est bien visible (tout en bas).

Dépilage des messages stockés dans la carte SIM.

Dépilage des messages stockés dans la carte SIM.

Au fait, ne vous en faîtes pas pour les impayés dont il est question dans la capture d’écran ci-dessus, le message bien qu’alarmant a été envoyé par erreur par B&You à un grand nombre de ses clients parfaitement en règle avec leurs échéances de paiement. Les malencontreuses erreurs de fonctionnement que l’on rencontre au début quand on est un nouvel opérateur sur le marché, j’imagine…

Voila pour l’instant, les résultats de ces test sont très satisfaisants. Bien sûr, il reste encore à mettre en place une architecture proposant les interfaces d’envoi et de réception à n’importe quel script ou process présent sur le système, en passant par une base de données par exemple.

C’est là qu’intervient gnokii-smsd. Mais cela sera relaté dans un article futur.

 The place to be

 18 juillet 2013  Projet Serveur  Aucun commentaire
Mon serveur a trouvé son emplacement parfait !

Bonjour. Ça va ? (*)

Héberger son propre serveur à domicile n’est pas toujours simple, à plus forte raison en appartement. Pour cela, il faut trouver l’endroit idéal – the place to be.

Cet endroit est en général délicat à trouver car il est souvent nécessaire de jongler avec différentes contraintes, on se retrouve alors à faire des choix cornéliens qui se soldent par des compromis éprouvants.

Par exemple, la première contrainte qui me vient à l’esprit quand je pense à un serveur hébergé en appartement, c’est le bruit. À moins d’opter pour une architecture entièrement fanless, un serveur même petit pourra être équipé d’un ou plusieurs ventilateurs, qu’on prendra soin de choisir larges et de qualité, avec de beaux roulements à billes bien lubrifiés, par respect pour nos oreilles, notre tranquillité d’esprit et, par voie de conséquence, notre santé mentale.

Malgré ces précautions, on pourra tout de même se retrouver avec du matériel très légèrement audible, qu’on ne souhaitera pas placer dans une pièce de vie. On choisira donc une pièce assez éloignée dans l’appartement. On exclut de ce fait d’office les chambres et le séjour. J’exclus également le bureau, qui est pour moi un lieu de concentration et de travail. On exclura aussi la salle de billard, la salle de bowling, la salle de home cinema et la game room, qui sont des pièces qu’on possède malheureusement assez rarement quand on vit dans une soixantaine de mètres carrés.

Il reste donc en principe les possibilités suivantes :

  • La salle de bain : c’est un mauvais choix, surtout si vous avez comme moi tendance à prendre de longues douches très chaudes couvrant de buée l’ensemble de la pièce.
  • Les toilettes : pourquoi pas. J’ai connu des gens qui l’ont fait. À condition, soit de placer le serveur en retrait, en hauteur, ou d’avoir des amis capables de viser dans la cuvette en toutes circonstances, même après le 8ème verre de bière.
  • La cuisine : c’est un choix honorable, par exemple en positionnant le serveur au fin fond d’un placard. Si la cuisine est ouverte sur le salon, le bruit peut devenir audible. Pour ma part, ayant eu une cuisine fermée dans mon précédent logement, c’est le choix que j’avais fait, faute de mieux.

Bien, maintenant qu’on a trouvé une pièce adéquate, vient le moment de trouver l’endroit exact dans la pièce. Toujours pour des raisons de réduction du bruit, de gain de place, d’esthétique, de diminution des risques de défaillances pour cause de chocs ou de contact avec des substances liquides, un recoin ou un placard est un choix qui s’impose rapidement. Cependant, il convient ne ne pas trop enfermer le serveur, afin que l’air puisse circuler autour et qu’il puisse se refroidir un minimum.

Vous commencez à saisir la gestion des compromis ? Ça ne s’arrête pas là, puisqu’il faudra évidemment acheminer un câble réseau jusqu’à l’endroit élu, à moins que certains masochistes optent pour l’option Wi-fi (vous savez, le truc pour faire du réseau sans fil qui ne fonctionne jamais quand on en a absolument besoin). Les pas-trop-exigeants pourront à la rigueur opter pour le CPL (vous savez, le truc pour faire du réseau qui fonctionne tout le temps mais avec un sacré débit de merde). Les intégristes du gigabit comme moi voudront tirer un bon vieux câble blindé, quitte à le faire cheminer dans tout l’appartement. Dans ce cas, prévoyez de retrousser les manches au minimum, avec au choix, de faire des saignées dans les murs, de coller des gaines passe-fils un peu partout, ou de faire courir les câbles à nu autour des plinthes et des portes en faisant une croix sur les considérations esthétiques.

Maintenant que je pense avoir exposé les principaux axes permettant de trouver THE place to be pour un serveur hébergé à domicile, je vais pouvoir détailler l’endroit où j’ai positionné le mien :

Mon serveur a trouvé son emplacement parfait !

Mon serveur a trouvé son emplacement parfait !

Lorsque j’ai visité l’appartement pour la première fois, j’ai immédiatement été interpelé par un renfoncement présent dans une pièce servant de cellier / buanderie, le renfoncement faisant office de domicile pour un quelconque animal de compagnie à fourrure. Ce renfoncement est saillant de l’autre côté du mur, cet autre côté étant à l’intérieur d’un placard. L’ensemble se trouve proche de l’entrée, lieu d’arrivée de la ligne téléphonique de l’opérateur, et un jour que j’espère avant le prochain millénaire, de la fibre optique. Visualiser l’ensemble avec une description textuelle n’étant pas forcément aisé, je pense que la vidéo suivante sera bien plus parlante. Ne faites pas attention à l’aspect rudimentaire de cette maquette, je n’ai pas eu le temps de la faire à l’échelle :)

Ni une ni deux, avant même de continuer la visite, l’appartement venait de gagner des points décisifs. Maintenant que j’occupe cet appartement et que j’ai aménagé ce renfoncement pour mon serveur, je peux en effet témoigner que l’endroit présente les avantages suivants :

  • La pièce n’est pas une pièce de vie, elle est situé suffisamment à l’écart des autres pièces.
  • Le renfoncement est un endroit à la fois accessible et discret.
  • L’endroit est très proche de l’entrée, ce qui est parfait pour tirer des câbles hors des murs. Les câbles en question transitent à l’intérieur du placard, l’aspect esthétique est donc préservé.

Il est également possible de masquer cette installation en fermant le renfoncement avec une trappe. C’est la solution que j’ai adoptée par la suite, en coupant une planche de contreplaqué aux dimensions du trou, puis en y positionnant une poignée, une grille d’aération, et des aimants de placard pour la maintenir en place. Le rendu est très correct.

Un cache de fortune pour noyer la planque dans le décor.

Un cache de fortune pour noyer la planque dans le décor.

Au passage, une trappe secrète qui cache un ordinateur, ça me rappelle des moments épiques de Lost, soit dit en passant. À la différence près qu’il n’est pas nécessaire de saisir une suite de nombre toutes les 108 minutes sur ma bécane pour sauver le monde.

Voila, c’est tout pour aujourd’hui. Dans mon prochain article, je présenterai en quelques mots et quelques photos le processus décisionnel mis en place lors de la réfection de la pièce de concentration et de travail qu’est mon bureau actuel.

(*) Oui, sous couvert d’anonymat, je me permets de piquer honteusement les catchlines d’un certain provider d’entertainment bien connu dans le milieu du journalisme vidéo-ludique.

 Déménagement

 11 octobre 2011  Projet Serveur  Aucun commentaire
tf2_demenagement

Pour cause de déménagement, l’accès à l’ensemble du domaine AlphaK.net sera perturbé pendant les prochains jours :

En fin de semaine, l’accès sera indisponible quelques heures afin parquer le serveur en lieu sûr. À la suite de quoi les temps d’accès seront fortement dégradés pendant plusieurs jours, en attendant la mise en place de la connexion internet sous mon nouveau toit. Une fois le raccordement internet effectif, le serveur sera déménagé dans mon nouveau logement, les débits augmenteront à nouveau, mais seront inférieurs au débit fibre optique actuel pendant encore quelques mois, le temps que le raccordement à la fibre soit mis en place.

 Il est temps de changer de serveur (encore)

 27 novembre 2010  Projet Serveur  Aucun commentaire
AT5NM10I

En ce moment je suis accablé par la poisse avec le matériel électronique. Et l’alimentation silencieuse du serveur d’hébergement me l’a rappelé cette semaine. Par des sifflements stridents, elle m’a signalé sa lente agonie vers une mort imminente. Puis par son incapacité à maintenir l’uptime du serveur plus de quelques minutes, elle m’a clairement indiqué son passage de vie à trépas. Alors repose en paix, petite alimentation qui n’était somme toute plus très sollicitée, et garde une place en enfer à tes constructeurs de chez Heden qui t’ont faite si fragile.

En conséquence de cette mort annoncée, le serveur fonctionne avec une alimentation de rechange beaucoup moins silencieuse, en mode dégradé, en tous cas pour mes oreilles. Ne voulant surtout pas continuer à subir le bruit désagréable de cette alimentation de secours d’un autre âge, je me suis mis en quête d’une remplaçante neuve.

Oui mais voila : payer une trentaine d’euros pour une alimentation à peu près silencieuse d’entrée de gamme non adaptée, pouvant délivrer du 480W là où le serveur n’en aura besoin que 95, ça me fait peur pour le rendement et pour la durée de vie de la nouvelle venue.

Et puis la conso effective de 95W du serveur en 24/7 alors qu’il est idle 99% du temps, c’est un peu du gâchis aussi. Si EDF y trouve son compte, mon portefeuille n’apprécie guère. On devrait pouvoir faire mieux que ça.

Alors après de nombreuses recherches, enquêtes auprès de collègues à tendance geek, et farfouillages dans les forums, il m’est apparu que les solutions récentes à base d’Atom pouvaient combler mon besoin de serveur 24/7 écolo tout en ne dégradant pas ses performances, voire en les boostant même un peu. Un serveur à base d’Atom, l’idée a fait sourire au début. Mais aujourd’hui ça rentre assez bien dans la tendance, tant qu’on ne veut pas faire tourner le site d’Amazon ou de Youtube. Il existe même des locations à l’année.

En regardant quelques solutions sur le marché pouvant offrir des performances comparables voire supérieures à mon serveur actuel (à base d’Athlon 1500+), j’ai pris en compte le prix à l’achat, et la consommation future estimée, pour faire un joli graphe de rentabilité.

Rentabilisation Atom Vs Athlon

C’est éloquent ! Ma solution actuelle, bien que très satisfaisante au niveau des perfs, me coûte cher en électricité. Bien que l’achat de solutions de qualité à base d’Atom représente un investissement certain, celui-ci est pleinement rentabilisé au bout de 2 ans, tous composants compris.

C’est un peu triste pour mon serveur actuel après cette lutte acharnée pour remporter la finale de la Server Academy, mais la sélection naturelle est impitoyable. En guise de retraite, j’ai déjà une petite idée : je pourrais lui confier le rôle de système de sauvegarde, allumé une vingtaine de minutes une fois par semaine pour récupérer les mises à jour de données importantes auprès des autres machines via rsync.

Alors, suite à ces constatations, je me suis lâché.

Et comme ma grand-mère disait « j’ai pas les moyens de m’acheter de la merde », et que je trouve que ça s’applique bien à moi aussi, j’ai pris ce qu’il faut pour bien concilier performance, confort, et ouverture vers les usages futurs.

Asus AT5NM10-I / Atom D510

Pour le cœur, une Asus AT5NM10-I à base d’Atom D510. Dual core, pour pas négliger les perfs. Fanless, pour pas oublier le silence. Et surtout, économe, avec sa conso de 10W à la prise à tout casser. Compter 15W avec le disque dur. Moins qu’un couple Freebox v5 et Freebox HD en veille, c’est dire si c’est de la bonne came.

Thermaltake Element Q

Pour l’alimentation et l’habillage, un boitier Thermaltake Element Q. Sobriété, élégance, design, qui me permettront probablement de ne plus enfouir le serveur dans un recoin planqué de la cuisine (là où c’est chiant de tirer des câbles réseau), mais de lui trouver une place au milieu des autres équipements électroniques du séjour.

Dans la foulée, j’en ai profité pour lui coller 2 Go de RAM, parce que c’est quand même la ressource la plus utilisée pour un serveur headless qui fait tourner du MySQL et du PHP mal écrit à longueur de journée, et un disque SATA II de capacité 1 To pour avoir un NAS digne de ce nom.

C’est donc bien parti, il ne reste plus qu’à attendre d’être livré et à assembler tout ça. La suite, dès que que possible.

 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