Comment comparer les performances du disque sur Linux

Comment comparer les performances du disque sur Linux

Je viens d'acheter les plus récents et les plus grands - et surtout le plus rapide - SDD? Ou mis à niveau la carte mémoire microSD de votre téléphone? Avant de commencer à utiliser votre nouveau matériel brillant, vous voudrez peut-être effectuer une vérification des performances par rapport au lecteur. Est la vitesse d'écriture et de lecture des spécifications du fabricant? Comment votre performance se compare-t-elle à celle des autres? Est-ce que la lecteur flash 1 To que vous avez acheté sur un site de vente aux enchères en Chine aussi rapidement que l'inscription a dit qu'elle était? Laissez-nous découvrir!

Dans ce tutoriel, vous apprendrez:

  • What CLI (Command Line Interface: votre bash ou autre environnement terminal) Les outils de mesure des performances du disque sont disponibles
  • What GUI (Interface utilisateur graphique: votre environnement de bureau) outil de mesure des performances du disque que nous recommandons
  • Comment mesurer efficacement les performances du disque de manière simple
  • Découvrez et apprenez avec divers exemples de mesures de performance du disque
  • Comment avoir un sens pour la qualité du matériel disque / flash que vous possédez
Comment comparer les performances du disque sur Linux

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Tout GNU / Linux
Logiciel N / A
Autre Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Comment analyser les performances du disque sur Linux - outils CLI

Pour commencer, branchez votre lecteur dans votre machine. S'il s'agit d'un SSD (Drive Solid State) ou d'un disque dur (disque dur), vous voudrez fermer votre ordinateur, insérer le lecteur et redémarrer le système. Pour les cartes SD, vous utiliserez généralement un lecteur de carte SD que vous pouvez insérer via un port USB sur votre ordinateur. Pour les lecteurs de bâton de mémoire USB / Flash, insérez-les simplement via un port USB sur votre ordinateur.

Ensuite, accédez à votre invite de terminal / commande (sur Ubuntu
Par exemple, vous pouvez le faire en cliquant simplement Activités en haut à gauche de l'écran> Type Terminal et cliquez sur l'icône du terminal).

Sur la ligne de commande, tapez lsblk:

$ lsblk | Grep SDC SDC 8:32 1 119.Disque 3G 0 

Ici, nous exécutons lsblk: vous pouvez lire ceci comme LS BLK: je.e. faire une liste similaire à LS ('Liste du répertoire') sur tous les volumes en vrac (blk).

Comme vous pouvez le voir, il y a un 119.3G lecteur disponible. Cette variation est commercialisée comme 128 Go, et c'est une marque majeure. Il n'est pas rare qu'un lecteur de 128 Go se montre comme seulement ~ 115-120g dans lsblk. Ceci est dû au fait lsblk vous donnera le résultat en gibibyte (1 gibibyte = 1073700000 octets Gigaoctet = 1000000000 octets).

Nous pouvons voir dans ce cas, cela fonctionne parfaitement lorsque nous regardons la taille basée sur les octets:

$ lsblk -b | Grep SDC SDC 8:32 1 128043712512 0 Disque 


Et 119.3 (comme indiqué par lsblk) = 119.3 x 1073700000 = 128092410000. Ainsi, lorsque vous achetez ce prochain lecteur, lisez les petits caractères à l'arrière et vérifiez s'ils utilisent les octets «1000» par kilobyte ou les octets «1024» par norme de kibibyte. Presque toujours, ce sera le premier.

Certains fabricants de SD incluent même la taille d'une zone spéciale réservée pour le nivellement de l'usure sur la carte SD comme espace disque principal, mais un tel espace n'est pas accessible à l'utilisateur, et vous pouvez finir avec par exemple que 115G ne le montre que comme utilisable. Acheteur Bénéficiant.

Lorsque vous exécutez lsblk Pour la première fois, vous voudrez prendre un certain temps à regarder les différents disques disponibles. La façon la plus simple de localiser un volume spécifique, par exemple un lecteur flash qui vient d'être inséré, est de rechercher une taille qui correspond approximativement à la taille du disque inséré.

Maintenant que nous savons que notre nouveau lecteur est étiqueté SDC (Linux utilise SDA,SDB,SDC etc. Selon les disques détectés lors du démarrage et / ou de l'insertion), nous savons également où se trouve le descripteur de fichier de périphérique pour cet appareil (il est toujours en / dev):

$ ls / dev / sdc / dev / sdc 

De plus, s'il y avait déjà des partitions sur le lecteur, cela montrerait différemment, comme ceci:

$ lsblk -b | Grep SDC SDC 8:32 1 128043712512 0 Disque └─Sdc1 8:33 1 128042663936 0 partie 

Vous pouvez voir comment il a le disque (/ dev / sdc - indiqué par «disque»), et la première partition (/ dev / sdc1 - indiqué par «partie»). Logiquement, la partition est légèrement plus petite que la taille totale du disque en raison de l'alignement / de l'espace réservé pour la table de partition, etc.

Enfin, si vous avez d'autres types de périphériques de stockage / disque, par exemple un lecteur NVME, cela peut afficher par exemple:

$ lsblk | grep nvme nvme0n1 259: 0 0 701.3G 0 Disque ├fiquen 

Ici, nous avons un lecteur NVME qui héberge 3 partitions (P1, P2, P3) et les deux premiers sont de petites partitions de démarrage et la troisième est notre principale partition de données. Comme cette partition est utilisée, nous ne pourrons pas avoir accès exclusif ou accès non monté pour lui. Cela deviendra pertinent une fois que nous aurons discuté de certains des outils ci-dessous.

Armé de ces informations, il est désormais facile d'exécuter une vérification des performances de disque de base par rapport à ce lecteur en utilisant hdparm:

$ sudo hdparm -ttv / dev / sdc1 / dev / sdc1: MultCount) : 36928 Mo en 1.99 secondes = 18531.Disque tamponné de 46 Mo / Sec Lics: 276 Mo en 3.02 secondes = 91.37 Mo / sec 

On peut utiliser hdparm Pour effectuer des horaires à des fins de référence et de comparaison, en utilisant le -T (effectuez des horaires de lectures de cache) et -t (effectuez des échéances de lectures de l'appareil) Options.

Comme vous pouvez le voir, nos lectures en cache sont très rapides (comme on peut s'y attendre; il est mis en cache), et ils ne sont pas nécessairement un bon nombre à passer, sauf si vous testez les performances du cache spécifiquement.

Le nombre le plus utile est les lectures de disque tamponné, et ils arrivent à 91.37 Mo / sec. Pas mal car le fabricant de ce disque n'a même pas annoncé la vitesse d'écriture.

Comme le manuel pour hdparm (-Tt OPTIONS) ÉTATS, Pour des résultats significatifs, cette opération doit être répétée 2 à 3 fois sur un système autrement inactif (aucun autre processus actif) avec au moins quelques mégaoctets de mémoire libre, Nous devons effectuer un autre test pour être sûr de nos résultats.

Un test répété, cette fois avec seulement des lectures tamponnées et un peu plus de sortie verbeux (obtenue en ajoutant l'option '-v'):

$ sudo hdparm -tv / dev / sdc1 / dev / sdc1: multicopount = 0 (off) readonly = 0 (off) readahead = 256 (on) géométrie = 15567/255/63, secteurs = 250083328, start = 2048 Disk tampon Lit: 276 Mo en 3.01 secondes = 91.54 Mo / sec 

Comme nous pouvons le voir, le nombre rapporté par HDPARM est assez fiable.



Jusqu'à présent, nous n'avons discuté que des vitesses de lecture. Laissez-nous ensuite jeter un œil aux vitesses d'écriture. Pour cela, nous utiliserons DD.

La façon la plus sûre de le faire est de créer d'abord un système de fichiers (en dehors de la portée de cet article - pour faciliter l'utilisation d'un outil d'interface graphique comme GParted), puis de mesurer les performances avec DD
. Notez que le type de système de fichiers (E.g. ext4, fat32,…) affectera les performances, la convivialité et la sécurité de votre lecteur.

$ sudo su # cd / tmp # mkdir mnt # mont / dev / sdc1 ./ mnt # suppose qu'il y a au moins 1 partition définie sur / dev / sdc. Dans ce cas, il y en a, et c'est une partition EXT4. # sync # echo 3> / proc / sys / vm / drop_caches # dd if = / dev / zero of = / tmp / mnt / temp oflag = Direct bs = 128k count = 1g # notre test de performance réel # rm -f / tmp / / mnt / temp 

Le test de performance se présentera comme suit:

# dd if = / dev / zero of = / tmp / mnt / temp oflag = direct bs = 128k count = 16k 16384 + 0 enregistre en 16384 + 0 enregistres out 2147483648 octets (2.1 Go, 2.0 gib) copié, 32.1541 S, 66.8 Mo / s 

Comme nous pouvons le voir, notre lecteur de 128 Go fonctionne assez bien avec un 66.8 Mo / s vitesse d'écriture. Laissez-nous vérifier avec deux fois la taille (fichier 4 Go) en utilisant le Count = 32k option:

# dd if = / dev / zero of = / tmp / mnt / temp oflag = direct bs = 128k count = 32k 32768 + 0 enregistre en 32768 + 0 enregistre 4294967296 octets (4.3 Go, 4.0 gib) copié, 66.7746 S, 64.3 Mo / s 

Alors regardons tout ce que nous avons fait ici.

Nous avons d'abord élevé les privilèges au niveau sudo / racine sudo su, Et puis nous avons créé un mnt dossier / tmp. Ce sera notre «point de mont» où nous accéderons à notre entraînement de 128 Go (après l'avoir monté en utilisant mont / dev / sdc1 ./ mnt qui mappe efficacement la première partition SDC1au ./ mnt (/ tmp / mnt) Folder).

Après cela, nous nous sommes assurés que tous les caches de fichiers de notre système sont synchronisés / vides en utilisant synchronisation. Il s'agit également d'une commande pratique à exécuter avant le sous-sol et retirer vos lecteurs USB car il garantit que toutes les données qui étaient écrites sur votre lecteur USB sont rincées sur le disque au lieu de rester en mémoire. Si vous démoulisez un disque dans le bureau / GUI, il exécutera un synchronisation pour vous en arrière-plan avant de non-resserrer le lecteur et de vous dire par la suite que le disque est sauver pour supprimer.

Ensuite, nous nous assurons que tous les caches système restants sont supprimés de la mémoire en exécutant Echo 3> / Proc / Sys / Vm / Drop_Caches. Tandis que les deux dernières commandes pourraient être laissées, d'autant plus que nous utilisons / dev / zéro En tant que périphérique d'entrée (un périphérique virtuel qui continue de sortir zéro chaque fois que vous y êtes accessible), il est agréable d'avoir le système «super propre et prêt» à effectuer un test de performance du disque! Fondamentalement, nous nous assurons qu'il y a aussi peu que possible la mise en cache qui va se produire.

Ensuite, nous avons notre principal test de performance en utilisant dd. La syntaxe de dd est assez simple, mais différent de la plupart des autres outils de ligne de commande. Examinons-le en détail:

  • si = / dev / zéro: Utilisez le périphérique / dev / zéro comme fichier d'entrée
  • de = / tmp / mnt / temp: Utilisez le fichier 'temp', situé sur la partition (/ disque) que nous venons de monter sous / tmp / mnt comme fichier de sortie
  • oflag = direct: Définissez l'indicateur de sortie «direct» en veillant à ce que nous «utilisons des E / S directs pour les données» qui élimineront la plupart sinon la totalité de la mise en cache du système d'exploitation
  • BS = 128K: rédiger jusqu'à 128k octets à la fois. La valeur par défaut de 512 est beaucoup à petite et entraînerait la maximisation de la vitesse de débit possible
  • Count = 16K: Copier les blocs d'entrée 16K, qui totalisent environ 2.1 Go ou 2.0 Gib. Vous voudrez peut-être ajuster cette variable en fonction de la taille de votre entraînement et des exigences de précision des performances du lecteur (plus c'est mieux: plus fiable)

Et enfin nous supprimons le fichier auquel nous avons écrit rm -f / tmp / mnt / temp.

Note importante et avertissement
Notez que si votre disque était vide, et seulement si vous êtes sûr qu'il est complètement vide et ne contient aucune donnée précieuse, Vous pourriez faire quelque chose dans le sens de: de = / dev / sdc1 ou même de = / dev / sdc Pour exécuter un test de vitesse de disque de disque exclusif / non monté.

C'est une façon très pure de tester les performances du disque, mais (!) S'il vous plaît, soyez très prudent avec l'utilisation, comme n'importe quel appareil ou partition spécifié dans de =… sera certainement écrasé avec tout ce qui vient de tout Si =… vous spécifiez. Prends soin de toi.



Comment comparer les performances du disque sur l'outil Linux - GUI

Maintenant que vous savez comment exécuter un test de performance de disque à partir de la ligne de commande, en utilisant le hdparm (pour lire) et dd (pour écrire) Terminal / CLI Tools, Laissez-nous ensuite utiliser l'utilisation d'un outil plus visuel / graphique dans l'environnement de bureau.

Si vous utilisez Ubuntu, le système d'exploitation de bureau Linux le plus courant, il y a une grande construction de performances de disque utilitaire dans le système d'exploitation. C'est également l'un des rares outils de test de performance de disque graphique (ou peut-être uniquement disponibles en lecture) disponibles dans Linux. La plupart des autres outils sont basés sur la ligne de commande ou n'ont pas d'équivalents Linux à leurs homologues Microsoft Windows. Par exemple, il n'y a pas de homologue graphique pour l'utilitaire de performance du disque Windows CrystalSiskmark.

Cliquez simplement Activités en haut à gauche de l'écran, et tapez disques qui vous montrera le Disques Icône (montrant une image d'un disque dur). Cliquez sur la même chose pour ouvrir le Disques Utilitaire qui a une construction en outil de référence en disque.

Une fois ouvert, utilisez un seul clic pour sélectionner votre disque sur le côté gauche de la fenêtre de dialogue, puis cliquez sur les 3 points verticaux près de la fenêtre en haut à droite de la fenêtre de dialogue (à gauche du bouton Minimiser). À partir de là, sélectionnez l'option Disque de référence… Pour ouvrir l'outil d'analyse comparative pour le lecteur sélectionné. La fenêtre 'Benchmark' s'ouvrira.

Cliquer sur Démarrer la référence… Pour ouvrir la boîte de dialogue de configuration nommée Paramètres de référence. À partir d'ici, je vous recommande de définir les options suivantes:

Taux de transfert:

  • Nombre d'échantillons: 10
  • Taille de l'échantillon (MIB): 1000 (c'est aussi le maximum)
  • Effectuer Write Benchmark: coché (Lisez les notes ci-dessous avant de commencer la référence!)

Temps d'accès:

  • Nombre d'échantillons: 1000

Puis clique Commencer à l'analyse comparative… Pour commencer le test. Jetons un coup d'œil aux paramètres que nous avons créés ici.

La taille maximale de l'échantillon est de 1000 MIB, et ceci (1 048 576 000 octets) est un grand nombre à tester, mais cela aurait été formidable si nous sommes autorisés à sélectionner des tailles comme 2 Go et 4 Go comme nous l'avons fait dans notre notre dd Test d'écriture d'écriture de l'utilitaire de disque de ligne de commande ci-dessus. Nous prendrons 10 échantillons, ou en d'autres termes, 10 courses de la lecture et d'écriture de 1 Go.

Cet utilitaire de mesure de performance de disque graphique est très intelligent en ce qu'il ne détruira pas les données sur votre lecteur, comme par exemple DD peut le faire si vous spécifiez à tort le de = Définition pour être un disque ou une partition au lieu d'un fichier.

La façon dont cela le fait est - lorsque vous sélectionnez pour effectuer une référence d'écriture (comme nous l'avons fait ici) - est en lisant les données du lecteur en mode d'accès exclusif (plus à ce sujet bientôt), puis en réduisant les mêmes données au même emplacement! À moins qu'une erreur d'écriture très étrange ne se produise, il est peu probable que cela endommagera jamais les données sur votre lecteur (mais pas garanti!). Si vous planez votre curseur sur le Effectuer Benchmark Write Réglage, vous pouvez lire un peu plus à ce sujet.

L'accès exclusif signifie simplement que la sélection de l'option d'écriture garantira que votre lecteur n'est pas monté avant le test, ce qui le rend disponible unique. Ceci est nécessaire pour que le test d'écriture fonctionne correctement. C'est ce que vous voudriez en tout cas; je.e. Vous ne voulez pas accéder à votre lecteur (ou à copier des données vers / depuis le lecteur) pendant l'exécution du test, car cela peut fausser les résultats considérablement.

Nous demandons également à prélever 1000 échantillons de temps d'accès - je.e. Le temps nécessaire au système d'exploitation pour accéder au lecteur. Pour les cartes SD, ce sera assez faible, par exemple notre carte de 128 Go a donné une durée d'accès moyenne de juste 0.71 ms sur 1000 échantillons, tandis qu'un disque plus lent peut entraîner des temps d'accès de 20 à 100 ms.

SD vs différence de performance du disque dur

La capture d'écran ci-dessus montre les différences claires de sortie entre le test de carte SD de 128 Go et un lecteur de disque dur de 3 To.

Conclusion

Armé des compétences pour mesurer les performances de lecture et d'écriture du disque, quel sera votre prochain test de performance de lecteur? Veuillez nous faire savoir dans les commentaires ci-dessous, et si vous finissez par tester ou comparer les SSD modernes, NVME, SD ou autre stockage Flash, veuillez publier certains des résultats que vous voyez!

Tutoriels Linux connexes:

  • Comment utiliser ADB Android Debug Bridge pour gérer votre Android…
  • Comment installer Adobe Flash Player sur Linux
  • Installer Ubuntu 20.04 sur Raspberry Pi
  • Test de référence USB Drive sur Linux
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment éliminer les bloatware de votre mobile Android Samsung…
  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Comment refléter votre écran mobile Android à Linux
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…