Tag Archive | "hdparm"

Tags: , , ,

Tester les performances de son disque dur

Posted on 20 May 2010 by Thomas Ginestet

Sous Linux, il existe plusieurs outils afin de tester les performances de votre disque dur voire même de les améliorer:

- HDPARM: J’ai pu lire un peu partout que hdparm ne fonctionne qu’avec les disques IDE. Pourtant le man est formel: “hdparm provides a command line interface to various hard disk ioctls supported by the Linux SATA/PATA/SAS “libata” subsystem and the older IDE driver subsystem.

En gros ça fonctionne aussi avec les disques SATA (sauf condition citée plus bas…) et il suffit de tester pour s’en convaincre ! La preuve avec une tripotée d’informations sur mon disque SATA:

thomas@saturne:~$ sudo hdparm -I /dev/sdb2
/dev/sdb2:
ATA device, with  non-removable media
Model Number:       WDC WD2500AAJS-75VWA0
Serial Number:      WD-WCARZ0203751
Firmware Revision:  12.01B02
Transport:           Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical         max     current
cylinders       16383    16383
heads           16      16
sectors/track    63      63
--
CHS current addressable sectors:    16514064
LBA    user addressable sectors:  268435455
LBA48  user addressable sectors:  488281250
device size  with M = 1024*1024:      238418 MBytes
device size with M =  1000*1000:      250000 MBytes (250 GB)
Capabilities:
LBA,  IORDY(can be disabled)
Queue depth: 32
Standby  timer values: spec'd by Standard, with device specific minimum
R/W multiple sector transfer: Max = 16  Current = 8
Recommended acoustic management value: 128, current value: 128
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO:  pio0 pio1 pio2 pio3 pio4
Cycle time: no flow  control=120ns  IORDY flow control=120ns
Commands/features:
Enabled Supported:
*    SMART feature set
Security Mode feature set
*    Power Management  feature set
*    Write cache
*    Look-ahead
*    Host Protected Area feature set
*     WRITE_BUFFER command
*    READ_BUFFER command
*    NOP cmd
*    DOWNLOAD_MICROCODE
Power-Up In Standby feature set
*    SET_FEATURES required  to spinup after power up
SET_MAX security extension
*    Automatic Acoustic Management feature set
*     48-bit Address feature set
*    Device Configuration  Overlay feature set
*    Mandatory FLUSH_CACHE
*    FLUSH_CACHE_EXT
*    SMART error logging
*    SMART self-test
*    General Purpose Logging  feature set
*    WRITE_{DMA|MULTIPLE}_FUA_EXT
*    64-bit World wide name
*    Segmented  DOWNLOAD_MICROCODE
*    SATA-I signaling speed (1.5Gb/s)
*    SATA-II signaling speed (3.0Gb/s)
*     Native Command Queueing (NCQ)
*    Phy event counters
DMA Setup Auto-Activate optimization
*     Software settings preservation
*    SMART Command  Transport (SCT) feature set
*    SCT Long Sector Access  (AC1)
*    SCT LBA Segment Access (AC2)
*     SCT Error Recovery Control (AC3)
*    SCT Features  Control (AC4)
*    SCT Data Tables (AC5)
unknown 206[12]
unknown 206[13]
Security:
Master password revision code = 65534
supported
not     enabled
not     locked
frozen
not     expired: security count
supported: enhanced erase
66min for SECURITY ERASE UNIT.  66min for ENHANCED SECURITY ERASE UNIT.
Checksum: correct

Effectuons maintenant un test de rapidité en lecture sur ce disque (-t) ainsi que sur son cache (-T):

thomas@saturne:~$ sudo hdparm -tT /dev/sdb2
/dev/sdb2:
Timing cached reads:    6818 MB in  2.00 seconds = 3411.63 MB/sec
Timing buffered disk  reads:  228 MB in  3.02 seconds =  75.37 MB/sec

hdparm vous permet aussi d’effectuer des modifications de configuration de votre disque dur, dont certaines plus ou moins risquées. Vous pouvez par exemple:

- Activer , modifier ou désactiver le DMA (Direct Memory Access) avec -d.

- Modifier le paramètrage de l’AAM (Automatic Acoustic Management) avec -M afin d’améliorer les temps d’accès disque ou à l’inverse d’avoir un disque plus silencieux mais des temps d’accès plus important.

- Démonter un disque à chaud avec -Y.

- Réinitialiser un disque avec -w (à bien réfléchir avant).

- Modifier l’APM (Advanced Power Management) avec -B.

Il est également possible de modifier la vitesse de votre lecteur CD avec l’option -E bien que je ne vois pas réellement l’intérêt d’une telle option…après tout les lecteurs sont censés gérer automatiquement cela.

NB: pour rendre vos modifications définitives, vous devrez les paramétrer dans le fichier /etc/hdparm.conf

A noter que si vous disposez d’un disque SATA et qu’il n’apparaît pas en tant que disque IDE, l’utilisation de sdparm plutôt que de hdparm va plus ou moins s’imposer. Le problème c’est que cet utilitaire pour disque SCSl est moins complet que l’autre, essayez donc de déterminer la vitesse de votre disque…

- BONNIE++: Un programme centré sur le benchmark de vos disques. Il n’est pas possible comme avec hdparm de modifier quoi que ce soit dans la configuration de votre disque.

Bonnie++ fonctionne sur tous les types de disques durs et fourni des résultats plus poussés, mais vraiment barbare à décoder !

Voyez par vous même les résultats par défaut de lecture / écriture sur le même disque SATA que précédemment:

Version  1.03        ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine         Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
saturne          4G 42024  69 44121   9 22591   5 51857  80 55822   6 139.7   0
------Sequential Create------ --------Random  Create--------
-Create-- --Read--- -Delete--  -Create-- --Read--- -Delete--
files  /sec %CP  /sec %CP   /sec %CP  /sec %CP  /sec %CP  /sec %CP
16 +++++  +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
saturne,4G,42024,69,44121,9,22591,5,51857,80,55822,6,139.7,0,16,+++++,+++,+++++,
+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++

Quelques petites explications sur cette sortie, le benchmark étant décomposé en plusieurs parties:

- sequential output et sequential input: débit en lecture / écriture octet par octet ou bloc par bloc d’un fichier de 4Go. Affichage de la consommation CPU.

- random seek: temps d’accès et charge CPU.

- sequential create: écriture séquentielle de n fichiers et charge CPU.

- random create: écriture aléatoire de n fichiers et charge CPU.

Il est bien évidemment possible d’affiner votre benchmark en modifiant par exemple la taille du fichier généré pour le test avec -s, la taille de la RAM à utiliser avec -r ou encore la désactivation du buffer avec -b.

Pour mettre en forme vos résultats, vous pouvez utilisez deux scripts perl fournis avec bonnie++: bon_csv2html afin d’exporter les résultats en html et bon_csv2txt afin d’exporter les résultats en …

Voici comment l’utiliser:

thomas@saturne:~$ echo saturne,4G,42024,69,44121,9,22591,5,51857,80,55822,6,139.7,0,16,+++++,+++,+++++,
+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++ |  bon_csv2html >> bonnie_results.html

Il ne reste plus qu’à ouvrir bonnie_results.html dans un navigateur pour voir s’afficher les résultats de vos différents benchmarks dans un “joli” tableau.

Comments (0)