Comment tester la vitesse du disque et de la RAM de votre serveur Linux – CloudSavvy IT


installation en rack de serveur
Arjuna Kodisinghe / Shutterstock

Si vous écrivez ou lisez régulièrement des fichiers, la vitesse de votre disque peut affecter les performances de votre serveur. Nous vous montrerons comment mesurer la vitesse de votre serveur et comment comprendre comment il se compare à la concurrence.

Comment la performance IO est-elle mesurée?

Il existe de nombreuses façons différentes de lire et d’écrire sur des disques, il n’existe donc pas de nombre unique de «vitesse» que vous puissiez mesurer.

Le moyen le plus simple de mesurer les performances consiste à chronométrer le temps nécessaire pour lire des fichiers volumineux ou effectuer des copies de fichiers volumineux. Cela mesure la vitesse de lecture et d’écriture séquentielle, ce qui est une bonne métrique à connaître, mais vous verrez rarement des vitesses aussi élevées en pratique, en particulier dans un environnement de serveur.

Une meilleure métrique est la vitesse d’accès aléatoire, qui mesure la vitesse à laquelle vous pouvez accéder aux fichiers stockés dans des blocs aléatoires, imitant beaucoup plus l’utilisation du monde réel.

Liste des vitesses de lecture et d'écriture.

Les SSD ont généralement des vitesses d’accès aléatoires rapides par rapport aux disques durs, ce qui les rend beaucoup plus adaptés à une utilisation générale. Les disques durs ont toujours des vitesses de lecture et d’écriture séquentielles décentes, ce qui les rend utiles pour l’archivage et la récupération de données.

Cependant, les performances du disque peuvent ne pas avoir beaucoup d’importance pour certaines charges de travail. De nombreuses applications mettent en cache des objets en mémoire (si vous avez assez de RAM), donc la prochaine fois que vous voudrez lire cet objet, il sera lu à partir de la mémoire à la place (ce qui est plus rapide). Cependant, pour les charges de travail lourdes en écriture, le disque doit toujours être accédé.

La vitesse est souvent mesurée en Mo / s, mais certains fournisseurs peuvent mesurer en IOPS (opérations d’entrée / sortie par seconde). C’est simplement un plus grand nombre signifiant la même chose; vous pouvez trouver ce que IOPS à partir de Mo / s avec cette formule:

IOPS = (MBps / Block Size) * 1024

Cependant, certains fournisseurs peuvent ne pas faire un excellent travail pour vous dire quelle référence ils utilisent pour mesurer l’IOPS, il est donc bon de faire des tests vous-même.

Installez fio pour les tests de lecture / écriture aléatoires

Bien que Linux ait le intégré dd , qui peut être utilisée pour mesurer les performances d’écriture séquentielle, elle n’indique pas comment elle se comportera sous des contraintes du monde réel. Vous voudrez plutôt tester votre vitesse de lecture et d’écriture aléatoire.

fio est un utilitaire qui peut gérer cela. Installez-le à partir du gestionnaire de paquets de votre distribution:

sudo apt-get install fio

Ensuite, exécutez un test de base à l’aide de la commande suivante:

fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=250M --readwrite=randrw --rwmixread=80

Cela exécute des tests de lecture et d’écriture aléatoires en utilisant 250 Mo de données, à un ratio de 80% de lectures pour 20% d’écritures. Les résultats s’afficheront en termes d’IOPS et en Mo / s:

Le test ci-dessus a été exécuté sur un AWS gp2 SSD, un SSD assez moyen, qui affiche des performances assez moyennes. Les performances d’écriture seront toujours inférieures avec n’importe quel type d’E / S; De nombreux disques SSD et disques durs ont un cache intégré pour le contrôleur de disque à utiliser, ce qui rend de nombreuses lectures assez rapides. Cependant, chaque fois que vous écrivez, vous devez apporter des modifications physiques au lecteur, ce qui est plus lent.

L’exécution du test sur un disque dur montre de faibles performances d’E / S mixtes aléatoires, ce qui est un problème courant avec les disques durs:

résultats des tests du disque dur fio

Les disques durs, cependant, sont généralement utilisés pour les grandes lectures et écritures séquentielles, donc un test d’E / S aléatoire ne correspond pas au cas d’utilisation ici. Si vous souhaitez modifier le type de test, vous pouvez passer un argument différent pour --readwrite. fio prend en charge de nombreux tests différents:

  • Lecture séquentielle: seqread
  • Écriture séquentielle:seqwrite
  • Lecture aléatoire: randread
  • Écriture aléatoire: randwrite
  • E / S mixtes aléatoires: randrw

De plus, vous pouvez modifier la taille du bloc avec le --bs argument. Nous le réglons sur 4K, ce qui est assez standard pour les tests aléatoires, mais les lectures et écritures séquentielles peuvent montrer des performances meilleures ou pires avec des blocs de plus grande taille. Les tailles de 16 Ko à 32 Ko peuvent être plus proches de ce que vous rencontrerez sous une charge réelle.

Test des performances de la mémoire

fio ne peut pas tester la vitesse de la RAM, donc si vous souhaitez évaluer la RAM de votre serveur, vous devez installer sysbench depuis le gestionnaire de paquets de votre distribution:

sudo apt-get install sysbench

Ce package peut comparer de nombreuses mesures de performances, mais nous nous concentrons uniquement sur le test de la mémoire. La commande suivante alloue 1 Mo de RAM, puis effectue des opérations d’écriture jusqu’à ce qu’elle ait écrit 10 Go de données, (ne vous inquiétez pas, vous n’avez pas besoin de 10 Go de RAM pour faire ce benchmark.)

sysbench --test=memory --memory-block-size=1M --memory-total-size=10G run

Cela affichera la vitesse de la mémoire en Mio / s, ainsi que la latence d’accès qui lui est associée.

Résultats des tests de vitesse de la mémoire en Mio / s, ainsi que la latence d'accès qui lui est associée.

Ce test mesure la vitesse d’écriture, mais vous pouvez ajouter --memory-oper=read pour mesurer la vitesse de lecture, qui devrait être un peu plus élevée la plupart du temps. Vous pouvez également tester avec des tailles de bloc inférieures, ce qui met plus de pression sur la mémoire.

De manière réaliste cependant, la plupart de la RAM sera assez bonne pour exécuter à peu près n’importe quoi, et vous serez généralement plus limité par la quantité de RAM que par sa vitesse réelle.



Vous pouvez lire l’article original (en Angais) sur le blogwww.cloudsavvyit.com