Existe-t-il une ligne de commande équivalente aux disques gnome?

10

Gnome Disks ( gnome-disks- anciennement connu sous le nom de palimpsest) fournit SMART et certaines informations de benchmarking. D'après ce que je comprends, il était basé sur un outil en ligne de commande, udisksmais ces projets semblent avoir fusionné.

Le nouvel utilitaire Gnome Disks ne semble afficher que les résultats moyens des tests de benchmarking. D'après les captures d'écran, les versions précédentes de palimpsest semblent également avoir des réponses maximales et minimales dans les résultats.

Je suis intéressé par tous les résultats de l'analyse comparative - en particulier, j'essaie de trouver des disques qui ont un effet négatif sur les utilisateurs en éliminant les disques avec des E / S lentes dans le pire des cas. Je souhaite également mapper ces données au fil du temps, je dois donc pouvoir les traiter / exporter de manière programmatique.

J'ai regardé udisksctl(dans le paquet udisks2) mais cela semble être juste des informations générales sur les disques et quelques informations SMART.

Existe-t-il un outil en ligne de commande qui exécute l'ancien udisksrapport d'analyse comparative et renvoie également les minimums et les maximums?

tu-Reinstate Monica-dor duh
la source
Quelle version d'Ubuntu utilisez-vous?
You'reAGitForNotUsingGit
Un mélange, chaque sortie non étalée entre 12.04 et 16.10.
tu-Reinstate Monica-dor duh

Réponses:

7

Je ne peux pas parler de l'ancien rapport d'analyse comparative des udisks, mais peut fio-être vous sera utile. fioest actuellement disponible pour toutes les versions d'Ubuntu de Precise To Zesty

Vous pouvez l'installer avec sudo apt-get install fioaprès avoir activé le référentiel Universe

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 j'obtiens en l'exécutant sur ma partition racine qui se trouve sur un 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 dans mon répertoire personnel situé sur un disque dur Western Digital WD2003FZEX-00Z4SA0 avec la même commande entraîne la sortie suivante:

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 supprimé la sortie produite pendant son exécution pour conserver cette réponse à une taille lisible.

Explication de la sortie que j'ai trouvée intéressante:

Vous pouvez voir que nous obtenons la moyenne minimale, maximale et l'écart type pour toutes ces mesures.

latte indique la latence de soumission -

clat indique la latence d'achèvement. Il s'agit du temps qui s'écoule entre la soumission au noyau et la fin des E / S, sans compter la latence de la soumission. Dans les anciennes versions de fio, il s'agissait de la meilleure mesure pour estimer la latence au niveau de l'application.

lat semble être assez nouveau. Il semble que cette métrique commence au moment où la structure d'E / S 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 connaîtront. 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 appareil avec plusieurs charges de travail, de sorte que vous pouvez voir la quantité d'E / S consommée par chaque processus.

Lorsque fio est exécuté sur plusieurs appareils, 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 qu'il n'est pas surprenant que la latence sur le disque dur soit beaucoup plus élevée que celle du disque SSD.

Sources:

https://tobert.github.io/post/2014-04-17-fio-output-explained.html

https://github.com/axboe/fio/blob/master/README

Elder Geek
la source