iostat 中的参数有哪些

iostat 中的参数有哪些

我使用iostat并尝试通过此链接了解 iostat 输出:https://linoxide.com/linux-command/linux-iostat-command/但解释得不太清楚。

在 18:00:00 至 18:45:00 的不同时间对输出进行 PF
我们在 18:45:00 收到数据库写入操作延迟

18:00:00

Linux 4.1.0-0.Node1.1-amd64 (Node1)        05/25/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.58    0.00    0.84    0.14    0.00   96.44

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              20.45       318.11       272.61    4801729    4114908
loop0            15.24        15.29         0.00     230867          0

18:10:00

Linux 4.1.0-0.Node1.1-amd64 (Node1)        05/25/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.54    0.07    1.67    0.28    0.00   93.44

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              66.79       450.28      6292.63    7071585   98824332
loop0            14.65        14.70         0.00     230867          0

18:20:00

Linux 4.1.0-0.Node1.1-amd64 (Node1)        05/25/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           6.48    0.17    2.46    0.66    0.00   90.23

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             115.61      1712.27     13585.10   27917361  221496016
loop0            14.11        14.16         0.00     230892          0

18:30

Linux 4.1.0-0.Node1.1-amd64 (Node1)        05/25/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.17    0.30    3.11    1.02    0.00   87.40

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             158.97      2682.65     19061.12   45347101  322206568
loop0            13.61        13.66         0.00     230892          0

18:40:00

Linux 4.1.0-0.Node1.1-amd64 (Node1)        05/25/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.73    0.45    3.30    1.40    0.00   86.12

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             175.77      3647.19     19549.58   63840689  342197396
loop0            13.14        13.19         0.00     230930          0

18:45:00

Linux 4.1.0-0.Node1.1-amd64 (Node1)        05/25/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           8.98    0.46    3.55    1.57    0.00   85.45

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             181.99      4116.60     19870.20   73291969  353769384
loop0            12.92        12.97         0.00     230930          0

我们在数据库写入时遇到了延迟18:45:00,所以我想了解从18:00:00到的IO 操作18:45:00,并且上面的输出是否18:45:00显示了 IO 中的任何问题?

答案1

我假设这是一个 SATA 磁盘系统,因此 181 TPS 是极限。您可以尝试iostat -x 1获取一些扩展统计数据(下面的示例)。注意列%util。这将告诉您磁盘的读/写负载是多少。我猜这接近 100% 并导致数据库问题。另一个指标是svctm。这告诉您磁盘完成任何给定的 I/O 操作需要多长时间。数字越高,情况越糟。

调查此时正在运行的其他程序(数据库转储正在运行?备份?slocate/mlocate?)可能会导致 I/O 瓶颈。

$ iostat  -x
Linux 4.4.0-124-generic (nebulus)         05/29/2018      _x86_64_        (8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.02    0.00    0.03    0.00    0.00   99.94

    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    vda               0.00     0.35    0.18    0.40     3.23     7.03    35.07     0.00    1.17    0.71    1.38   0.29   0.02
    dm-0              0.00     0.00    0.09    0.24     1.01     0.87    11.24     0.00   10.91    0.76   14.68   0.18   0.01
    dm-1              0.00     0.00    0.07    0.29     1.69     4.17    32.90     0.00    2.33    0.59    2.74   0.23   0.01

如果您的利用率仍接近 100%,请与您的程序员交谈,看看他是否可以通过更高效的数据库查询来改善情况。如果这不可行,那么就投资一些更快的磁盘硬件(转移到 RAID0 或 SSD 磁盘)。

磁盘利用率过高也可能是由于系统可用 RAM 太少造成的。一旦内存紧张,就会开始进行磁盘交换,然后一切都会变得很慢。

只需开始寻找几个地方。

相关内容