Menu Fermer

hdparm : optimisation et test de vitesse de disques sur Linux

hdparm est un outil pour Linux qui permet de contrôler et de modifier les paramètres d’un disque dur ATA/IDE/SATA sous Linux. Il peut être utilisé pour améliorer les performances, la gestion de l’énergie (APM), le mode de transfert et d’autres aspects du disque. Il peut aussi être utilisé pour tester la vitesse de lecture du disque ou pour effacer les données. Il faut être prudent avec certaines options de hdparm, car elles peuvent endommager le disque ou le système.

Dans ce tutoriel, je vous montre comment utiliser hdparm pour régler et optimiser votre disque et tester les performances et vitesse de lecture.

hdparm : optimisation et test de vitesse de disques sur Linux

Comment installer hdparm

Ubuntu, Debian, Linux Mint

Utilisez APT de cette manière pour installer le paquet :

sudo apt install hdparm

Fedora, RHL

Utilisez l’utilitaire yum pour installer l’utilitaire de disque :

sudo yum install hdparm

Comment utiliser hdparm pour optimiser les disques sur Linux

Afficher les informations d’un disque

hdparm /dev/sda
/dev/sda:
 multcount     = 16 (on)
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 243201/255/63, sectors = 3907029168, start = 0

Pour afficher plus de détails sur le disque, comme le numéro et modèle de disque, les capacités, la configuration, les commandes et fonctionnalités disponibles :

hdparm -I /dev/sda | more

Comment mesurer la vitesse des disques sur Linux avec hdparm

Pour mesurer la vitesse des disques avec hdparm, utilisez l’option -t :

sudo hdparm -t /dev/sda
Timing buffered disk reads: 446 MB in  3.04 seconds = 146.77 MB/sec

Vous pouvez tester la vitesse des disques avec l’accès direct à la mémoire (DMA).
L’option -direct indique à hdparm d’utiliser l’indicateur O_DIRECT pour contourner le cache de page lors des tests de synchronisation. Cela permet d’obtenir une mesure plus précise des performances brutes du disque.

sudo hdparm -t --direct /dev/sda
Timing O_DIRECT disk reads: 464 MB in  3.04 seconds = 152.75 MB/sec

Hdparm lit toujours les données à partir du début du périphérique de stockage. Cependant, les disques durs ont tendance à fournir des données un peu plus lentement à partir des zones extérieures des disques magnétiques ; c’est pourquoi hdparm vous permet de définir un décalage.
Dans l’exemple suivant, nous demanderons à hdparm de lire les données à partir d’un emplacement du disque. Nous demanderons à hdparm de lire les données à partir de 20 Go.

sudo hdparm --offset 20 -T /dev/sda
/dev/sda:
 Timing cached reads:   26184 MB in  1.99 seconds = 13162.58 MB/sec

Comment optimiser son disque sur Linux avec hdparm

Avant de modifier les paramètres de votre disque, notez bien les valeurs avec l’option -I pour pouvoir revenir en arrière en cas de problème.

Activer la mise en cache de l’écriture

La mise en cache de l’écriture recueille les données de plusieurs écritures dans un cache RAM avant de les écrire de manière permanente sur le disque. Comme elle réduit le nombre d’écritures sur le disque dur, elle peut améliorer les performances dans certains cas.

La mise en cache de l’écriture peut entraîner une perte de données si l’alimentation du serveur est coupée avant que le cache ne soit écrit sur le disque. N’activez pas la mise en cache de l’écriture si vous souhaitez minimiser le risque de perte de données.
La commande suivante active la mise en cache en écriture :

sudo hdparm -W1 /dev/sda

Pour désactiver la mise en cache en écriture, utilisez :

sudo hdparm -W0 /dev/sda

Activer l’accès direct à la mémoire (DMA)

L’accès direct à la mémoire (DMA) permet aux composants du serveur d’accéder directement à sa mémoire vive, sans passer par le processeur. Dans certains cas, il permet d’améliorer considérablement les performances du disque dur.

Pour activer le DMA, exécutez la commande suivante, en remplaçant /dev/sda par votre disque dur :

sudo hdparm -d1 /dev/sda

Vous pouvez désactiver le DMA en exécutant la commande suivante

sudo hdparm -d0 /dev/sda

Le DMA n’est pas disponible sur tous les serveurs et, avec les serveurs virtuels en particulier, il se peut que vous ne puissiez pas modifier les paramètres du disque dur.

Augmenter le R/W multiple sector transfer

L’option -I permet dans les Capabilities de vérifier si le transfert de secteurs multiples R/W est au maximum via la valeur Current =.
Si elle est en dessous de Max=, vous pouvez augmenter la valeur avec l’option -m comme ceci :

hdparm -m16 /dev/sda

Vitesse maximale

Certaines propriétés du disque peuvent être modifiées lorsque le périphérique est en fonctionnement ; par exemple, la plupart des disques vous permettent d’activer et de désactiver la gestion de l’alimentation.
Les fonctions que hdparm peut modifier et activer sur un disque dur peuvent être consultées à l’aide de la commande

De nombreux disques durs modernes permettent de ralentir le mouvement de la tête. Bien que cela augmente les temps d’accès, cela réduit également le niveau de bruit. Pour savoir si votre propre disque dur offre ce “mode acoustique”, vous pouvez utiliser la commande suivante :

hdparm -M /dev/sda

Pour atteindre la vitesse maximale, utilisez la valeur maximale :

hdparm -M 254 /dev/sda

En outre, les lecteurs modernes peuvent même récupérer quelques secteurs à l’avance (“read ahead”). Pour en définir le nombre, utilisez le commutateur -a, par exemple :

hdparm -a256 /dev/sda