Test de performances d’un disque sur Linux

Vous disposez d’un ou de plusieurs serveurs Linux ? Vous voulez tester les performances de votre disque en lecture/écriture ? Il existe plusieurs solutions, mais je ne vais en détailler que deux :

  • la commande hdparm,
  • une création/lecture de fichier avec la commande dd.

Test avec hdparm

hdparm est un utilitaire qui permet de modifier les paramètres d’un périphérique disque, mais il permet également de lancer un test de performance des temps de lecture via la commande :

hdparm -Tt /dev/sda

Ce qui donne sur mon serveur :

Performances en lecture d'un disque sur Linux

Paramètres :

  • -t : test des performances de lecture,
  • -T test des performances du cache.

Attention : la commande hdparm, si elle est mal utilisée, peut entraîner la corruption d’un disque.

Test avec la commande dd

La commande dd permet de créer, convertir et manipuler des fichiers sur Linux : en la combinant avec une autre commande et les bons paramètres, on peut en tirer les temps d’écriture et de lecture pour un fichier d’une taille donnée.

Le test de vitesse d’écriture se fait de la façon suivante :

time sh -c "dd if=/dev/zero of=/home/woueb bs=4096 count=256000 && sync"

On créé un fichier /home/woueb composé de 256000 blocs de 4Ko.

Test de performances en écriture d'un disque sur Linux

Et pour le test en lecture, on fait l’inverse : on lit le fichier /home/woueb précédemment créé.

time sh -c "dd if=/home/woueb of=/dev/zero bs=4096 count=256000 && sync"

Test de performances en lecture d'un disque sur Linux

Et voilà le travail ! :)

Boostez les performances PHP avec APC

Dans la jungle des techniques d’optimisation d’un serveur web, si vous avez une application ou un site/blog en PHP5, il existe une solution relativement simple à mettre en place : APC (pour Alternative PHP Cache).

Disponible sous forme de package PECL (PHP Extension Community Library), APC fait parti de ce que l’on nomme les « accélérateurs PHP ». Il en existe plusieurs autres :

  • eAccelerator,
  • XCache,
  • Turk MMCache (plus maintenu),
  • etc.

Logo APCJ’ai choisi APC pour sa facilité d’installation, mais également pour sa future intégration dans PHP 5.4 (puisque la  version 6 est annulée jusqu’à nouvel ordre).

Son fonctionnement est simple : APC est un cache d’OPCode. Le code qui est lisible par un humain doit être transformé en code lisible par une machine : dans le cas de PHP, ceci est fait à la volée, pour chaque exécution de fichier. APC intercepte la phase de compilation du code, et la remplace par du code déjà généré précédemment, qui avait été mis en mémoire. On économise ainsi une étape, et donc du traitement.

Cette technique est surtout utile avec l’utilisation de frameworks : en effet, le contenu des fichiers ne change pas en phase de production, la version en mémoire est donc toujours la bonne.

Avant de l’installer, je fais un benchmark avec ApacheBench, ce qui me permettra de faire une comparaison une fois le cache activé. :)

PHP & Apache Benchmark sans APC

PHP & Apache Benchmark sans APC

Note : le test a été réalisé en local sur la page d’accueil d’un blog WordPress. Apache peut fournir ici 111 requêtes par serconde.

Installation d’APC

La dernière version stable au moment où j’écris cet article est la 3.1.6. Pour commencer, il faut installer les paquets « php-pear » et « php-devel » car PECL en a besoin. Une fois installés, il suffit d’y aller gaiement avec la commande « pecl install apc ».

Installation d'APC via PECL

Installation d'APC via PECL

Note : il se peut que l’installation pose une ou deux questions. Si vous ne savez pas, laissez les valeurs par défaut.

Configuration

Il reste à activer APC pour qu’il soit chargé au lancement d’Apache. Il est possible d’ajouter la ligne suivante dans le php.ini :

extension=apc.so

Pour ma part, j’ai l’habitude de dissocier chaque fonction : j’utilise un fichier apc.ini qui charge APC, et qui contient les paramètres de configuration. Il se trouve dans /etc/php.d/

extension=apc.so
apc.shm_segments= »1″
apc.shm_size= »128″
apc.stat= »0″
apc.filters= »wp-admin »

La première ligne permet de charger l’extension, puis je déclare un segment de 128 Mo de cache. Le paramètre apc.stat positionné sur false indique qu’il ne faut pas vérifier si le code PHP a changé. Si vous êtes en phase de maquette/pré-production, vous pouvez le mettre sur 1, de telle façon qu’APC ira chercher quels fichiers sont modifiés depuis la dernière exécution.

Enfin, apc.filters me permet d’exclure le répertoire wp-admin de mon blog pour la mise en cache. Les paramètres seront pris en compte au prochain redémarrage d’Apache.

C’est le moment de refaire un benchmark pour voir le résultat :

PHP & Apache benchmark avec APC activé

PHP & Apache benchmark avec APC activé

Ici, on peut noter une différence relativement importante : 6 fois plus de requêtes simultanées possibles sur le même serveur. Ne vous réjouissez pas trop vite, cela dépend de pas mal de facteurs ! :)

Interface d’administration

Il existe une interface web toute prête qui vous permettra de consulter les statistiques d’utilisation de votre/vos instance(s) APC. Il faut copier le fichier /usr/share/pear/apc.php dans un répertoire qui est publié par le serveur web. Voici le résultat :

Dashboard APC : statistiques et debug

Dashboard APC : statistiques et debug

Si vous voulez protéger l’accès à cette interface, il suffit d’éditer le fichier apc.php, et d’y modifier les identifiants par défaut :

APC : identifiants par défaut

Identifiants par défaut

A noter qu’il est tout à fait possible d’associer APC et Memcached sur le même serveur : les deux systèmes sont totalement différents et n’assurent pas les mêmes fonctionnalités.

La documentation du paramétrage d’APC se trouve sur la page : Runtime Configuration.

En vrac #61

Revue de presse hebdomadaire par Romain DECKERAu départ prévue pour stocker des liens que je jugeais intéressants, la revue de presse hebdomadaire me permet de partager mes découvertes avec vous. Pour cette 61ème édition : des conseils pour améliorer la visibilité de votre site sur Google, le top 25 des hôtels les plus insolites dans le monde, un générateur de lettre de résiliation Internet, et une explication visuelle sur les jointures SQL.

(suite…)

VLC, un player vidéo libre et complet

VLC VideoLAN

Dans le paysage des lecteurs vidéos, on a plutôt le choix : Media Player, BS Player, DivX, etc. Pourtant, je n’en utilise qu’un seul depuis longtemps, celui que je conseille à tout le monde : VLC Media Player. Il fait définitivement parti de ma trousse à outils !

VLC Media Player est issu du VideoLAN, un projet de développement de solutions de lectures et de diffusions audio/vidéo. Totalement gratuit (sous licence GNU GPL), VLC Media Player fête cette année ses 10 ans d’open source.

Tout ceci est parti d’un projet d’étudiant de l’École Centrale de Paris en 1996 : après une ré-écriture complète du code en 1998, le projet est passé open source en 2001.

Difficile d’avoir un avis négatif sur cette application :

  • on peut l’utiliser de façon simple en utilisant simplement les boutons de lectures pour une vidéo,
  • mais on peut également fouiller les nombreuses options pour tripatouiller les vidéos qu’on regarde : ceux qui veulent avoir un aperçu de toutes les fonctionnalités peuvent consulter cette page, c’est juste impressionnant !
  • VLC Media Player lit tout, vraiment tout : DivX, DVD, x264, Mpeg2, etc., et ce sans installation de codecs supplémentaires : c’est là son principal avantage.

VLC Media Player

Son logo est une icône de chantier car lors du passage en open source en 2001, le logiciel n’était pas totalement terminé. VLC Media Player peut se vanter d’être totalement multiplateformes : Windows, Mac OS, Linux (dans toutes ses variantes), Unix, BSD, Solaris, Pocket PC, etc. :)

Vous pouvez consulter le VideoLAN Wiki, dans lequel vous retrouverez de la documentation, des trucs et astuces, etc.

Tower Bridge à Londres : ça se passe comme ça sur mon Flickr #13

Lors d’un séjour à Londres fin 2010, j’ai pu prendre quelques clichés intéressants notamment celui-ci : il s’agit de Tower Bridge qui enjambe la Tamise. Prise à la tombée de la nuit, j’ai du jouer des coudes parmi tous les autres photographes présents sur ce point de vue… :)

Tower bridge

Tower bridge à Londres

Et pour la post-production, j’ai fait un traitement N&B avec une dominante bleue.

Carte interactive du trafic aérien en temps réel

Dans le genre « on arrive à trouver énormément d’informations sur Internet », voilà un service pas banal : RadarVirtuel. C’est une carte interactive qui permet de visualiser le trafic aérien en temps réel au-dessus de certaines zones géographiques (Europe, Moyen-Orient, etc.).

Comment ça fonctionne :

Our system is based on a network of contributers (private persons, companies) owning an ADS-B receiver and willing to share their data with us.
In exchange, we make their data available online to anyone, and we will develop advanced services for them to analyze aircraft traffic.

Et voici le résultat !

Visualiser les avions en vol avec RadarVirtuel.com

Carte interactive du trafic aérien en temps réel

 

Il est même possible de filtrer par divers paramètres :

  • compagnie aérienne,
  • modèle d’appareil,
  • aéroport (de départ ou d’arrivée),
  • vitesse,
  • altitude,
  • etc.