¿Hay una línea de comandos equivalente a gnome-disks?

10

Gnome Disks ( gnome-disks- anteriormente conocido como palimpsest) proporciona SMART e información de evaluación comparativa. Por lo que deduzco, solía estar basado en una herramienta de línea de comandos, udiskspero estos proyectos parecen haberse fusionado.

La nueva utilidad Gnome Disks parece mostrar solo resultados promedio de las pruebas de evaluación comparativa. De las capturas de pantalla, las versiones anteriores de palimpsest también parecen tener respuestas máximas y mínimas en los resultados.

Estoy interesado en todos los resultados de la evaluación comparativa, específicamente estoy tratando de encontrar discos que tengan un efecto negativo en los usuarios eliminando discos con E / S lenta en el peor de los casos. También quiero asignar estos datos a lo largo del tiempo, así que necesito poder procesarlos / exportarlos de manera programática.

Miré udisksctl(en el paquete udisks2) pero parece ser solo información general sobre los discos y algo de información INTELIGENTE.

¿Existe una herramienta de línea de comandos que ejecute el udisksinforme de evaluación comparativa de estilo antiguo y también devuelva mínimos y máximos?

tu-Reinstate Monica-dor duh
fuente
¿Qué versión de Ubuntu estás usando?
You'reAGitForNotUsingGit
Una mezcla, cada lanzamiento no archivado entre 12.04 y 16.10.
tu-Reinstate Monica-dor duh

Respuestas:

7

No puedo hablar con el viejo informe de evaluación comparativa de los udiscos, pero tal vez fiole sea útil. fioActualmente está disponible para todas las versiones de Ubuntu desde Precise To Zesty

Puede instalarlo sudo apt-get install fiodespués de activar el repositorio de Universe

Algunas pruebas rápidas indican que puede elegir la partición para probar simplemente asegurándose de que el pwd(Directorio de trabajo actual) esté en la partición que desea probar.

Por ejemplo, aquí están los resultados que obtengo al ejecutarlo en mi partición raíz que está en un SSD Toshiba THNSNH128GBST (mi / 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%

Ejecutar en mi directorio de inicio que está en un Western Digital WD2003FZEX-00Z4SA0 HDD con el mismo comando da como resultado el siguiente resultado:

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%

Recorté la salida producida mientras se está ejecutando para mantener esta respuesta en un tamaño legible.

Explicación de salida que me pareció interesante:

Puede ver que obtenemos el promedio mínimo, máximo y la desviación estándar para todas estas métricas.

el listón indica latencia de envío

clat indica latencia de finalización. Este es el tiempo que transcurre entre el envío al kernel y cuando se completa el IO, sin incluir la latencia de envío. En versiones anteriores de fio, esta era la mejor métrica para aproximar la latencia a nivel de aplicación.

lat parece ser bastante nuevo. Parece que esta métrica comienza en el momento en que se crea la estructura IO en fio y se completa justo después de clat, lo que hace que esta sea la que mejor represente qué aplicaciones experimentarán. Este es el que probablemente quieras graficar.

bw Bandwidth se explica por sí solo, excepto por la parte per =. Los documentos dicen que está destinado a probar un solo dispositivo con múltiples cargas de trabajo, para que pueda ver la cantidad de E / S que consumió cada proceso.

Cuando fio se ejecuta en varios dispositivos, como lo hice para esta salida, puede proporcionar una comparación útil independientemente del hecho de que su propósito es probar una carga de trabajo específica.

Estoy seguro de que no sorprende que la latencia en el disco duro sea mucho mayor que la del disco de estado sólido.

Fuentes:

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

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

Elder Geek
fuente