Agence web » Actualités du digital » Comment tester la vitesse du disque et de la RAM de votre serveur Linux

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

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 allons vous montrer comment mesurer la vitesse de votre serveur et comprendre comment il se compare à la concurrence.

Comment les performances d'E / S sont-elles mesurées?

Il existe de nombreuses façons de lire et d’écrire sur les disques, il n’existe donc aucun chiffre unique pour la «vitesse» que vous pouvez mesurer.

La façon la 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 séquentielle de lecture et d'écriture, ce qui est une bonne mesure à connaître, mais vous verrez rarement des vitesses aussi élevées dans la pratique, en particulier dans un environnement de serveur.

Une meilleure mesure 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 réelle.

Les SSD ont généralement des vitesses d'accès aléatoire 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 bons 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 suffisamment de RAM), donc la prochaine fois que vous voudrez lire cet objet, il sera lu à la place (ce qui est plus rapide). Cependant, pour les charges de travail lourdes en écriture, le disque doit toujours être accessible.

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

IOPS = (MBps / Block Size) * 1024

Cependant, certains fournisseurs peuvent ne pas vous dire très bien quelle référence ils utilisent pour mesurer les IOPS, il est donc bon de faire des tests vous-même.

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

Alors que Linux a 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 les 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 depuis le 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'affichent 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 tout type d'E / S; de nombreux SSD et disques durs ont un cache intégré à utiliser par le contrôleur de disque, ce qui rend la lecture assez rapide. 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 des performances d'E / S mixtes aléatoires faibles, ce qui est un problème courant avec les disques durs:

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 --bs argument. Nous l'avons défini sur 4K, ce qui est assez standard pour les tests aléatoires, mais les lectures et écritures séquentielles peuvent afficher des performances meilleures ou pires avec des tailles de bloc plus grandes. Les tailles de 16 Ko à 32 Ko peuvent être plus proches de ce que vous rencontrerez sous charge réelle.

Test des performances de la mémoire

fio ne peut pas tester la vitesse de la RAM, donc si vous voulez comparer 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 test.)

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

Cela affichera la vitesse de la mémoire en MiB / 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 blocs de taille inférieure, ce qui met plus de stress sur la mémoire.

De façon réaliste, la plupart de la RAM sera suffisante pour fonctionner à 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.

★★★★★