Utiliser la commande DD pour tester les performances du disque

test des performances des disques avec dd linux ubuntu debian centos Redhat

La commande dd est un outil puissant et polyvalent sous Linux qui peut être utilisé pour diverses tâches, notamment la sauvegarde de données, le clonage de disques et le test des performances des disques. Dans cet article, nous allons nous concentrer sur la manière d’utiliser dd pour tester les performances de lecture et d’écriture de votre disque.

Avant de plonger dans les détails, comprenons brièvement ce qu’est dd et ce qu’il fait.

La commande dd signifie “Data Duplicator” ou “Convert and Copy”. C’est un utilitaire de bas niveau qui peut copier des données d’un emplacement à un autre, tout en effectuant les conversions ou transformations nécessaires en cours de route. La commande est couramment utilisée pour des tâches telles que la création d’images disque, le clonage de disques et la création de clés USB bootables.

Tester les performances du disque avec dd

Pour tester les performances du disque avec dd, nous allons effectuer deux tests séparés : un pour la lecture et un pour l’écriture. Les deux tests impliquent la copie de données d’un emplacement à un autre et la mesure du temps nécessaire pour terminer l’opération.

Avant de commencer, il est important de noter que ces tests peuvent être gourmands en ressources et peuvent avoir un impact sur les performances du système. Il est recommandé d’exécuter ces tests lorsque le système n’est pas trop sollicité, et de faire preuve de prudence lors des tests sur les systèmes de production.

Tester les performances de lecture

Pour tester les performances de lecture de votre disque, nous allons utiliser dd pour copier les données du disque vers un périphérique null (/dev/null). Le périphérique null est un fichier de périphérique spécial qui rejette toutes les données qui lui sont écrites, agissant essentiellement comme un “trou noir”.

Voici la commande pour tester les performances de lecture :

$ dd if=/chemin/vers/fichier of=/dev/null bs=1M count=1024 status=progress

Décomposons la commande :

  • dd : Invoque la commande dd.
  • if=/chemin/vers/fichier : Spécifie le fichier d’entrée (if signifie “input file”). Remplacez /chemin/vers/fichier par le chemin réel vers le fichier ou le périphérique que vous voulez tester. Par exemple, pour tester les performances de lecture d’un disque monté sur /mnt/data, vous utiliseriez if=/mnt/data/gros_fichier.dat.
  • of=/dev/null : Spécifie le fichier de sortie (of signifie “output file”). Dans ce cas, nous utilisons le périphérique null (/dev/null) comme sortie, ce qui signifie que les données seront rejetées.
  • bs=1M : Définit la taille de bloc à 1 mégaoctet. Cela détermine la quantité de données que dd lira et écrira lors de chaque opération.
  • count=1024 : Spécifie le nombre de blocs à copier. Dans ce cas, nous copions 1024 blocs, ce qui représente un total de 1 gigaoctet de données lues à partir du disque.
  • status=progress : Affiche la progression de l’opération, en montrant le nombre d’octets copiés, le débit de transfert et le temps écoulé.

Lorsque vous exécutez cette commande, dd commencera à lire les données du fichier ou du périphérique spécifié et les rejettera dans le périphérique null. L’option status=progress affichera la progression de l’opération, y compris le débit de transfert, qui reflète les performances de lecture de votre disque.

Tester les performances d’écriture

Pour tester les performances d’écriture de votre disque, nous allons utiliser dd pour copier les données du périphérique null (/dev/zero) vers un fichier sur le disque.

Voici la commande pour tester les performances d’écriture :

$ dd if=/dev/zero of=/chemin/vers/fichier_sortie bs=1M count=1024 status=progress

Décomposons la commande :

  • dd : Invoque la commande dd.
  • if=/dev/zero : Spécifie le fichier d’entrée (if signifie “input file”). Dans ce cas, nous utilisons le périphérique null (/dev/zero) comme entrée, ce qui signifie qu’il générera un flux continu d’octets nuls (zéros).
  • of=/chemin/vers/fichier_sortie : Spécifie le fichier de sortie (of signifie “output file”). Remplacez /chemin/vers/fichier_sortie par le chemin réel vers le fichier ou le périphérique où vous voulez écrire les données. Par exemple, pour tester les performances d’écriture d’un disque monté sur /mnt/data, vous utiliseriez of=/mnt/data/fichier_test.dat.
  • bs=1M : Définit la taille de bloc à 1 mégaoctet. Cela détermine la quantité de données que dd lira et écrira lors de chaque opération.
  • count=1024 : Spécifie le nombre de blocs à copier. Dans ce cas, nous copions 1024 blocs, ce qui représente un total de 1 gigaoctet de données écrites sur le disque.
  • status=progress : Affiche la progression de l’opération, en montrant le nombre d’octets copiés, le débit de transfert et le temps écoulé.

Lorsque vous exécutez cette commande, dd commencera à générer un flux continu d’octets nuls à partir du périphérique null (/dev/zero) et les écrira dans le fichier ou le périphérique de sortie spécifié. L’option status=progress affichera la progression de l’opération, y compris le débit de transfert, qui reflète les performances d’écriture de votre disque.

Interpréter les résultats

Après avoir exécuté les tests de performances de lecture et d’écriture, vous verrez une sortie similaire à celle-ci :

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 3.12345 s, 344 MB/s

Les informations les plus importantes ici sont le débit de transfert, qui est affiché dans la dernière partie de la sortie (344 MB/s dans cet exemple). Cela représente la vitesse de lecture ou d’écriture de votre disque, mesurée en mégaoctets par seconde (Mo/s).

Plus le débit de transfert est élevé, meilleures sont les performances du disque. Cependant, n’oubliez pas que les performances du disque peuvent être influencées par divers facteurs, tels que le type de disque (HDD, SSD, NVMe), l’interface de disque (SATA, SAS, PCIe), le système de fichiers et la charge du système.

Il est également à noter que ces tests mesurent les performances de lecture et d’écriture séquentielles de votre disque. Pour les charges de travail impliquant des lectures et des écritures aléatoires, vous devrez peut-être utiliser d’autres outils ou utilitaires de test de performances.

Conseils et considérations supplémentaires

  1. Tester plusieurs fois : Il est conseillé d’exécuter les tests plusieurs fois et de calculer le débit de transfert moyen. Cela permet de tenir compte des éventuelles fluctuations ou variations des performances du disque.
  2. Utiliser un grand fichier ou périphérique : Lors du test des performances de lecture, assurez-vous d’utiliser un grand fichier ou périphérique (d’au moins plusieurs gigaoctets). Les petits fichiers peuvent ne pas refléter avec précision les véritables performances du disque, car ils peuvent être mis en cache par le système d’exploitation.
  3. Éviter la mise en cache système : Pour obtenir des résultats précis, il est important d’éviter autant que possible la mise en cache système. Vous pouvez essayer d’exécuter la commande sync avant les tests pour vider les caches système, ou vous pouvez utiliser l’option direct avec dd pour contourner complètement la mise en cache (conv=direct).
  4. Exécuter en tant que root : Dans certains cas, vous devrez peut-être exécuter la commande dd en tant qu’utilisateur root (avec sudo) pour accéder à certains fichiers ou périphériques.
  5. Être prudent avec les tests d’écriture : Lors de l’exécution de tests de performances d’écriture, assurez-vous d’écrire à un emplacement où les données peuvent être écrasées ou supprimées en toute sécurité. L’écrasement accidentel de données importantes peut entraîner une perte de données.
  6. Envisager d’autres outils de test de performances : Bien que dd soit un outil simple et efficace pour les tests de performances de disque de base, il existe des outils de test de performances plus avancés, tels que fioiozone et bonnie++. Ces outils offrent davantage d’options de test complet et peuvent être mieux adaptés à des scénarios plus complexes.

Conclusion

Tester les performances des disques est une tâche importante pour assurer des performances système optimales, en particulier dans les charges de travail impliquant une utilisation intensive du disque. La commande dd fournit un moyen simple et direct de tester les performances de lecture et d’écriture de vos disques sur les systèmes Linux.

En suivant les étapes décrites dans ce guide, vous pouvez facilement effectuer des tests de performances de disque de base et interpréter les résultats. N’oubliez pas de prendre en compte des facteurs tels que le type de disque, l’interface et la charge de travail lors de l’évaluation des performances, et faites toujours preuve de prudence lors de l’exécution de tests d’écriture pour éviter toute perte de données accidentelle.

Bien que dd soit un outil puissant, il est important de noter qu’il s’agit d’un utilitaire de bas niveau, et une utilisation incorrecte peut entraîner une corruption ou une perte de données. Vérifiez toujours attentivement vos commandes et assurez-vous d’en comprendre les implications avant de les exécuter.

Si vous avez besoin de tests de performances de disque ou de tests de performances plus avancés, envisagez d’explorer des outils de test de performances dédiés comme fioiozone et bonnie++, qui offrent des fonctionnalités et des options supplémentaires adaptées à l’analyse approfondie des performances des disques.

Laisser un commentaire