是否有与 gnome-disks 等效的命令行?

是否有与 gnome-disks 等效的命令行?

侏儒磁盘gnome-disks- 以前称为palimpsest)提供 SMART 和一些基准测试信息。据我所知,它曾经基于命令行工具udisks,但这些项目似乎已经合并。

新的 Gnome磁盘效用似乎只显示平均的基准测试的结果。从屏幕截图来看,palimpsest 的先前版本似乎在结果中也有最大和最小响应。

我对基准测试的所有结果都很感兴趣 - 具体来说,我试图通过清除最坏情况下 I/O 速度较慢的磁盘来查找对用户产生负面影响的磁盘。我还想随时间映射这些数据,因此我需要能够以编程方式处理/导出它。

我查看了udisksctl(在 udisks2 包中),但它似乎只是有关磁盘的一般信息和一些 SMART 信息。

是否有一个命令行工具可以运行旧式udisks基准测试报告并返回最小值和最大值?

答案1

我无法谈论旧的 udisks 基准测试报告,但也许fio对你有用。fio目前适用于所有版本的 Ubuntu精准至极

sudo apt-get install fio您可以使用以下方式安装激活 Universe 存储库

一些快速测试表明,您只需确保pwd(当前工作目录)位于您想要测试的分区上即可选择要测试的分区。

例如,这是我在 Toshiba THNSNH128GBST SSD(我的 /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%

在我的 Western Digital WD2003FZEX-00Z4SA0 HDD 上的主目录中运行相同的命令将产生以下输出:

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%

我修剪了运行时产生的输出以使这个答案保持可读的大小。

我发现有趣的输出解释:

您可以看到我们获得了所有这些指标的最小值、最大值平均值和标准差。

板条表示提交延迟 -

克拉特表示完成延迟。这是从提交到内核到 IO 完成之间的时间,不包括提交延迟。在旧版本的 fio 中,这是估算应用程序级延迟的最佳指标。

纬度似乎相当新。似乎这个指标从 fio 中创建 IO 结构时开始,并在 clat 之后立即完成,这使得它最能代表应用程序将经历的情况。这可能是您想要绘制的图表。

体重除了 per= 部分之外,带宽的含义非常明显。文档称,它用于测试具有多个工作负载的单个设备,以便您可以看到每个进程消耗了多少 IO。

当 fio 针对多个设备运行时,正如我对此输出所做的那样,它可以提供有用的比较,而不管其预期目的是测试特定的工作负载。

我确信硬盘的延迟比固态硬盘的延迟高得多,这并不奇怪。

资料来源:

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

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

相关内容