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 ! :)

Comment créer une clé USB bootable Linux en 4 clics ?

La plupart des distributions Linux sont disponibles dans une version bootable, c.a.d qu’il n’est pas nécessaire d’installer. Dans ce cas, le fonctionnement le plus courant est de graver la distribution sur un CD et de démarrer sur ce média.

Cependant, il est également possible de démarrer sur une clé USB, plus pratique à conserver et à emmener partout. Mais comment faire quand on n’est pas trop à l’aise avec tout ceci ? Heureusement, vous avez UNetbootin qui le fera à votre place !

Pour l’utiliser :

  • vous insérez une clé USB contenant suffisamment de mémoire dans votre PC,
  • vous exécutez UNetbootin,
  • vous choisissez la distribution que vous souhaitez, ainsi que la version,
  • vous sélectionnez « Type » sur « USB Drive »,
  • vous indiquez la lettre sous laquelle la clé USB a été reconnue (I: sur ma capture d’écran),
  • vous cliquez sur OK.

Attention : toutes les données existantes de la clé USB seront supprimées !

Comment créer une clé USB bootable Linux avec UNetbootin ?

UNetbootin va se connecter à Internet, télécharger la bonne distribution, et l’installer sur la clé USB.

Comment créer une clé USB bootable Linux avec UNetbootin ?Il est intéressant de noter que la liste des distributions disponibles est juste impressionnante ! Cela va d’Ubuntu (dans une dizaine de version différentes), en passant par Debian, OpenSuse, FreeBSD, Gentoo, Fedora, ou encore Mandriva.

Comment créer une clé USB bootable DOS ?

Il arrive quelquefois que l’on soit obligé de démarrer un PC avec une interface DOS pour effectuer quelques manipulations délicates. Or depuis l’abandon des disquettes 3,5″ (on se demande pourquoi), il est encore possible de faire ceci via un CD ou via un périphérique USB. Ce n’est pas forcément utile de cramer un CD pour une utilisation one-shot, alors qu’on reçoit des clés USB publicitaires régulièrement.

Se présentant sous la forme d’un simple exécutable de quelques mégaoctets, UNetbootin permet de créer une clé USB bootable DOS avec la distribution FreeDOS.

Créer une clé USB bootable FreeDOS avec UNetbootin

L’utilisation est simplissime :

  • Téléchargez UNetbootin : l’application est disponible pour Windows et Linux !
  • Branchez votre clé USB dans votre PC,
  • Lancez l’exécutable,
  • Sélectionnez la distribution « FreeDOS« ,
  • Vérifiez que le « Drive » pointe bien vers la lettre sur laquelle a été reconnue votre clé USB,
  • Bouton « OK » pour finir !

Et voilà le travail !

Htop, une version améliorée de la commande Linux top

Sur un OS linux, on a tendance a utiliser régulièrement la commande « top«  pour visualiser l’activité des processus du serveur ou du PC. Seulement, le résultat affiché est relativement « fade » et n’est pas ergonomique (l’affichage ne tient pas compte de la taille de l’écran/du terminal).

Voici un exemple d’affichage de la commande « top » :

TOP : commande Linux

TOP : visualisation de l'activité des processus

Bien heureusement il existe un outil comblant certaines lacunes de « top » mais plutôt méconnu : « htop« . Démarrant plus rapidement, il offre un certain nombre d’avantages par rapport à son grand frère, notamment :

  • interface plus conviviale et adaptée à la taille de l’affichage,
  • possibilité de killer un processus sans connaître son PID,
  • possibilité de modifier en live la priorité (nice) d’un processus sans connaître son PID,
  • pas de délai entre les actions,
  • support de la souris,
  • etc.

Visualisation de la commande « htop«  :

HTOP : commande Linux

Visualisation des processus avec HTOP

HTOP : visualisation de l'activité des processus

HTOP : visualisation de l'activité des processus

Verdict ? Adopté !

Comment Facebook gère quotidiennement son infrastructure

Facebook est une vraie machine de guerre : on a pu voir récemment que c’était le site le plus visité au monde, et tout ça seulement après quelques années. Contrairement à d’autres « supergrands » (Google, Microsoft, Apple, Youtube, etc.) un certain nombre d’informations filtrent lors de conférences, et dans des documents officiels.

Logo Facebook

Je rappelle que pour écrire ces 2 articles, j’ai simplement visionné des vidéos de conférences pour compiler les informations. Vu la masse de détails obtenus, j’ai publié deux articles :

En extrapolant plusieurs données (graphiques d’évolution, chiffres passés, etc.) on estime entre 60 000 et 100 000 le nombre de serveurs de Facebook .

Facebook : évolution du nombre de serveurs

Facebook : évolution du nombre de serveurs

Cependant, ce chiffre ne tient pas compte de deux nouveaux datacenters actuellement en cours construction (Oregon et Caroline du Nord).

Facebook a depuis longtemps atteint une masse critique qui nécessite de voir sa copie en terme d’administration quotidienne.

Un des ingénieurs de Facebook a bien illustré le problème lors d’une conférence :

With Facebook users spending a collective 8 billion minutes on the site each day, serving 1.2 million photos each second, and managing more than 25 terabytes of data per day in logging data, we’re forced to think about servers and datacenters differently.

Nb : les chiffres sont de 2009, les actuels sont présents dans mon article précédent.

(suite…)

L’infrastructure de Facebook : les chiffres clés

Facebook est une vraie machine de guerre : on a pu voir récemment que c’était le site le plus visité au monde, et tout ça seulement après quelques années. Contrairement à d’autres « supergrands » (Google, Microsoft, Apple, Youtube, etc.) un certain nombre d’informations filtrent lors de conférences, et dans des documents officiels.

Logo Facebook

J’ai visionné plusieurs heures de vidéos de conférences (long mais super intéressant) et ait compilé les informations. Vu la masse de détails obtenus, j’ai décidé de publier deux articles :



En extrapolant

  • certains graphiques d’évolution,
  • des chiffres passés,
  • des indications fournies pendant des conférences,

on estime entre 60 000 et 100 000 le nombre de serveurs de Facebook . Cependant, ce chiffre ne tient pas compte de deux nouveaux datacenters actuellement en cours construction (Oregon et Caroline du Nord).

Facebook : évolution du nombre de serveurs

Facebook : évolution du nombre de serveurs

Mais qu’est-ce qui peut bien tourner sur cette infrastructure ? :)

Données générales :

  • 500 millions d’utilisateurs actifs (un utilisateur actif est un utilisateur qui se connecte au moins une fois par mois),
  • 50% des utilisateurs se connectent au moins une fois par jour, soit 250 millions de personnes tout de même,
  • 690 milliards de pages vues par mois,
  • 6 milliards de contenus partagés par semaine (statuts, photos, liens, vidéos),
  • 3 milliards de photos uploadées par mois, pour plus d’un pétaoctet de stockage uniquement destiné aux photos (chaque photo existe en 4 tailles),
  • un dernier chiffre, le plus parlant peut-être : 16 milliards de minutes sont passées par jour sur Facebook. Ça représente 11 millions de jours ou encore plus de 30 000 années qui sont passées par jour sur le réseau social, c’est juste énorme !

Données techniques :

  • plus de 300 To (téraoctets) de données en cache en RAM avec Memcached,
  • 25 To (téraoctets) de log par jour,
  • un ingénieur Facebook pour 1,1 millions d’utilisateurs. A titre de comparaison, Google emploi un ingénieur pour 190 000 utilisateurs,
  • un opérateur Facebook pour 2,3 millions d’utilisateurs.

Quelques chiffres intéressants sur MySQL :

  • 13 millions de requêtes par seconde en pic,
  • 38 Go/s de trafic MySQL en pic,
  • temps de réponse moyen en lecture : 4 ms,
  • temps de réponse moyen en écriture : 5 ms,
  • 450 millions de lignes lues par seconde en pic,
  • 3,5 millions de lignes modifiées par seconde en pic,
  • 5,2 millions d’I/O (disques) InnoDB par seconde.

Qui a d’autres chiffres intéressants et récents à partager ? :)

Dans le prochain article sur le sujet, je traiterai de la gestion quotidienne d’une infrastructure de cette taille.

Sources :