Gnome Disks (gnome-disks
- anciennement appelé palimpsest
) fournit SMART et des informations de référence. D'après ce que j'ai compris, il était basé sur un outil de ligne de commande udisks
, mais ces projets semblent avoir fusionné.
Le nouvel utilitaire Gnome Disks apparaît uniquement pour afficher les résultats moyens de l'analyse comparative. tests. À partir des captures d'écran, les versions précédentes de palimpseste semblent également comporter des réponses maximales et minimales dans les résultats.
Tous les résultats de l'analyse comparative m'intéressent - en particulier, j'essaie de trouver des disques qui ont un effet négatif sur les utilisateurs en éliminant les disques avec une E/S lente dans le pire des cas. Je souhaite également mapper ces données au fil du temps, donc je dois pouvoir les traiter/exporter de manière programmatique.
J'ai regardé udisksctl
(dans le paquet udisks2), mais il semble ne s'agir que d'informations générales sur les disques et d'informations SMART.
Existe-t-il un outil de ligne de commande qui exécute l'ancien rapport d'analyse comparative de style udisks
et renvoie les valeurs minimale et maximale?
Je ne peux pas parler du vieux rapport d'analyse comparative des udisques, mais peut-être que fio
vous sera utile. fio
est actuellement disponible pour toutes les versions d'Ubuntu à partir de Precise To Zesty
Vous pouvez l'installer avec Sudo apt-get install fio
après en activant le référentiel Univers
Certains tests rapides indiquent que vous pouvez choisir la partition à tester simplement en vous assurant que le pwd
(Répertoire de travail actuel) se trouve sur la partition que vous souhaitez tester.
Par exemple, voici les résultats que je reçois en l'exécutant sur ma partition racine située sur un disque SSD Toshiba THNSNH128GBST (mon/dev/sda)
$ Sudo fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=256M --numjobs=8 --runtime=60 --group_reporting randwrite: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=1
...
randwrite: (groupid=0, jobs=8): err= 0: pid=15096: Wed Feb 15 13:58:31 2017
write: io=2048.0MB, bw=133432KB/s, iops=33358, runt= 15717msec
slat (usec): min=1, max=223379, avg=232.82, stdev=4112.31
clat (usec): min=0, max=16018, avg= 0.30, stdev=22.20
lat (usec): min=1, max=223381, avg=233.25, stdev=4112.55
clat percentiles (usec):
| 1.00th=[ 0], 5.00th=[ 0], 10.00th=[ 0], 20.00th=[ 0],
| 30.00th=[ 0], 40.00th=[ 0], 50.00th=[ 0], 60.00th=[ 0],
| 70.00th=[ 0], 80.00th=[ 1], 90.00th=[ 1], 95.00th=[ 1],
| 99.00th=[ 1], 99.50th=[ 1], 99.90th=[ 2], 99.95th=[ 3],
| 99.99th=[ 31]
bw (KB /s): min= 3473, max=241560, per=12.42%, avg=16577.30, stdev=28056.68
lat (usec) : 2=99.79%, 4=0.18%, 10=0.02%, 20=0.01%, 50=0.01%
lat (usec) : 100=0.01%, 250=0.01%, 500=0.01%
lat (msec) : 20=0.01%
cpu : usr=0.52%, sys=1.08%, ctx=3235, majf=0, minf=228
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=0/w=524288/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
WRITE: io=2048.0MB, aggrb=133432KB/s, minb=133432KB/s, maxb=133432KB/s, mint=15717msec, maxt=15717msec
Disk stats (read/write):
sda: ios=0/197922, merge=0/84378, ticks=0/37360, in_queue=37324, util=93.41%
L'exécution de mon répertoire personnel qui se trouve sur un disque dur Western Digital WD2003FZEX-00Z4SA0 avec la même commande génère le résultat suivant:
randwrite: (groupid=0, jobs=8): err= 0: pid=15062: Wed Feb 15 13:53:32 2017
write: io=1299.6MB, bw=22156KB/s, iops=5538, runt= 60062msec
slat (usec): min=1, max=200040, avg=1441.http://meta.stackexchange.com/questions/122692/moderator-tools-make-merging-questions-a-little-easier74, stdev=11322.69
clat (usec): min=0, max=12031, avg= 0.41, stdev=32.24
lat (usec): min=1, max=200042, avg=1442.29, stdev=11323.05
clat percentiles (usec):
| 1.00th=[ 0], 5.00th=[ 0], 10.00th=[ 0], 20.00th=[ 0],
| 30.00th=[ 0], 40.00th=[ 0], 50.00th=[ 0], 60.00th=[ 0],
| 70.00th=[ 0], 80.00th=[ 1], 90.00th=[ 1], 95.00th=[ 1],
| 99.00th=[ 2], 99.50th=[ 2], 99.90th=[ 3], 99.95th=[ 9],
| 99.99th=[ 14]
bw (KB /s): min= 426, max=282171, per=13.12%, avg=2906.99, stdev=17280.75
lat (usec) : 2=98.88%, 4=1.03%, 10=0.05%, 20=0.04%, 50=0.01%
lat (usec) : 100=0.01%, 250=0.01%
lat (msec) : 10=0.01%, 20=0.01%
cpu : usr=0.09%, sys=0.25%, ctx=7912, majf=0, minf=227
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=0/w=332678/d=0, short=r=0/w=0/d=0
Run status group 0 (all jobs):
WRITE: io=1299.6MB, aggrb=22155KB/s, minb=22155KB/s, maxb=22155KB/s, mint=60062msec, maxt=60062msec
Disk stats (read/write):
sdb: ios=0/94158, merge=0/75298, ticks=0/116296, in_queue=116264, util=98.40%
J'ai coupé la sortie produite pendant son exécution pour garder cette réponse lisible.
Explication de la sortie que j'ai trouvée intéressante:
Vous pouvez voir que nous obtenons des écarts minimum, maximum moyen et standard pour toutes ces métriques.
slat indique la latence de soumission -
clat indique une latence d'achèvement. C'est le temps qui s'écoule entre la soumission au noyau et le moment où le IO est terminé, sans la latence de soumission. Dans les anciennes versions de fio, il s'agissait de la meilleure mesure pour approximer la latence au niveau de l'application.
lat semble être relativement nouveau. Il semble que cette métrique commence au moment où la structure IO est créée dans fio et est terminée juste après clat, ce qui en fait celle qui représente le mieux ce que les applications rencontreront. C’est celui que vous voudrez probablement représenter graphiquement.
bw La bande passante est assez explicite, sauf pour la partie per =. Les documents indiquent qu'il est destiné à tester un seul périphérique avec plusieurs charges de travail, afin que vous puissiez voir quelle quantité de IO a été consommée par chaque processus.
Lorsque FIO est exécuté sur plusieurs périphériques, comme je l'ai fait pour cette sortie, il peut fournir une comparaison utile, indépendamment du fait que son objectif est de tester une charge de travail spécifique.
Je suis sûr que ce n’est pas surprenant que la latence du disque dur soit bien supérieure à celle du disque SSD.
Sources:
https://tobert.github.io/post/2014-04-17-fio-output-explained.html