手机版
你好,游客 登录 注册
背景:
阅读新闻

用于检测查看磁盘活动的Linux命令

[日期:2018-12-29] 来源:Linux公社  作者:醉落红尘 [字体: ]

Linux系统提供了一套方便的命令,可以帮助您查看磁盘的繁忙程度,而不仅仅是有多满。 在这篇文章中,我们将研究五个非常有用的命令来查看磁盘活动。 可能必须将两个命令(iostat和ioping)添加到您的系统中,这两个命令要求您使用sudo权限,但所有五个命令都提供了查看磁盘活动的有用方法。

可能这些命令中最容易和最明显的一个是dstat。

dstat

尽管dstat命令以字母“d”开头,但它提供的数据不仅仅是磁盘活动。 如果要仅查看磁盘活动,可以使用-d选项。 如下所示,您将获得连续的磁盘读/写测量列表,直到您使用^ c停止显示。 请注意,在第一个报告之后,显示中的每个后续行将在以下时间间隔内报告磁盘活动,默认值仅为一秒。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ dstat -d
-dsk/total-
 read  writ
 346k  307k
  0    0
  0    0
  0    44k
 520k    0
 128k  324k
 244k    0
 924k  376k
 256k    0

用于检测查看磁盘活动的Linux命令

在-d选项后面加一个数字会将间隔设置为该秒数。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ dstat -d 10
-dsk/total-
 read  writ
 344k  306k
7782B 2048B
 354k  300k
4096B  98k
2458B 9421B
9557B  132k

用于检测查看磁盘活动的Linux命令

注意,报告的数据可以以许多不同的单位显示 - 例如,M(兆字节),k(千字节)和B(字节)。

如果没有选项,dstat命令也会向您显示许多其他信息 - 指示CPU如何花费时间,显示网络和分页活动,以及报告中断和上下文切换。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ dstat
You did not select any stats, using -cdngy by default.
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read  writ| recv  send|  in  out | int  csw
  5  2  93  0  0| 341k  303k|  0    0 |6755B  41k| 140  548
  3  1  96  0  0|  0    0 |  0    0 |  0    0 | 202  731
  5  3  91  1  0|  0    48k|  0    0 |  0    0 | 262  782
 31  9  60  0  0|  0    0 |  0    0 |  0    0 | 555  1882
 41  13  44  3  0|6600k    0 |  0    0 |  0    0 | 444  2309
 73  23  0  3  0|6408k  716k|  0    0 |  0    0 | 787  2629

用于检测查看磁盘活动的Linux命令

dstat命令提供了对整体Linux系统性能的宝贵见解,几乎用一组结合其功能的灵活而强大的命令取代了vmstat,netstat,iostat和ifstat等旧工具的集合。 有关dstat命令可以提供的其他信息的更多信息,请参阅dstat命令上的这篇文章。

iostat

iostat命令通过观察设备相对于其平均传输速率的活动时间来帮助监视系统输入/输出设备负载。 它有时用于评估磁盘之间的活动平衡。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ iostat
Linux 4.20.0-042000-generic (linuxidc)  2018年12月29日  _x86_64_ (1 CPU)

avg-cpu:  %user  %nice %system %iowait  %steal  %idle
          4.76    0.10    2.00    0.17    0.00  92.97

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
loop0            0.01        0.06        0.00        680          0
loop1            0.03        0.19        0.00      2291          0
loop2            0.01        0.02        0.00        219          0
loop3            0.04        0.18        0.00      2215          0
loop4            0.04        0.19        0.00      2256          0
loop5            0.01        0.02        0.00        220          0
loop6            0.01        0.02        0.00        228          0

用于检测查看磁盘活动的Linux命令

当然,当您只想专注于磁盘时,Linux环路设备上提供的所有统计信息都会使显示混乱。 但是,该命令提供了-p选项,允许您只查看磁盘 - 如下面的命令所示。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ iostat -p sda
Linux 4.20.0-042000-generic (linuxidc)  2018年12月29日  _x86_64_ (1 CPU)

avg-cpu:  %user  %nice %system %iowait  %steal  %idle
          4.76    0.12    2.00    0.17    0.00  92.95

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.59      322.89      310.22    3942493    3787784
sda1            16.58      322.64      310.22    3939409    3787784

用于检测查看磁盘活动的Linux命令

请注意,tps指的是每秒传输次数。

您也可以通过iostat提供重复报告。 在下面的示例中,我们使用-d选项每五秒进行一次测量。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ iostat -p sda -d 5
Linux 4.20.0-042000-generic (linuxidc)  2018年12月29日  _x86_64_ (1 CPU)

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.55      321.79      309.15    3944097    3789224
sda1            16.54      321.54      309.15    3941013    3789224

用于检测查看磁盘活动的Linux命令

如果您希望省略第一个(启动后的统计信息)报告,请在命令中添加-y。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ iostat -p sda -d 5 -y
Linux 4.20.0-042000-generic (linuxidc)  2018年12月29日  _x86_64_ (1 CPU)

Device            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              0.64        0.00        10.19          0        48
sda1              0.64        0.00        10.19          0        48

用于检测查看磁盘活动的Linux命令

如果是两个磁盘,可以看看第二个磁盘驱动器,命令如下:

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ iostat -p sdb

iotop

iotop命令是用于查看磁盘I/O的顶级实用程序。 它收集Linux内核提供的I/O使用信息,以便您了解哪些进程在磁盘I/O方面最苛刻。 在下面的示例中,循环时间已设置为5秒。 显示屏将自动更新,覆盖以前的输出。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ sudo iotop -d 5

Total DISK READ :      0.00 B/s | Total DISK WRITE :      3.18 K/s
Actual DISK READ:      0.00 B/s | Actual DISK WRITE:      7.95 K/s
  TID  PRIO  USER    DISK READ  DISK WRITE  SWAPIN    IO>    COMMAND       
  389 be/3 root        0.00 B/s    3.18 K/s  0.00 %  0.01 % [jbd2/sda1-8]
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init splash
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_gp]
    4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_par_gp]
    6 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/~-kblockd]
    8 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [mm_percpu_wq]
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]

用于检测查看磁盘活动的Linux命令

ioping

ioping命令是一种完全不同类型的工具,但它可以报告磁盘延迟 - 磁盘响应请求所需的时间 - 并且可以帮助诊断磁盘问题。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ sudo ioping /dev/sda1
[sudo] linuxidc 的密码:
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=1 time=937.0 us (warmup)
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=2 time=5.90 ms
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=3 time=3.94 ms
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=4 time=3.88 ms
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=5 time=6.37 ms
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=6 time=5.72 ms
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=7 time=958.4 us (fast)
4 KiB <<< /dev/sda1 (block device 30.0 GiB): request=8 time=93.3 us (fast)

atop

atop命令和top一样,提供了很多关于系统性能的信息,包括一些关于磁盘活动的统计信息。

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ atop

ATOP - linuxidc      2018/12/29  13:57:54      --------------        10s elapsed
PRC | sys    2.05s | user  1.93s | #proc    337 | #zombie    1 | #exit    12 |
CPU | sys      9% | user    22% | irq      0% | idle    68% | wait      0% |
CPL | avg1    0.55 | avg5    0.24 | avg15  0.13 | csw    25241 | intr    4509 |
MEM | tot    2.8G | free  128.9M | cache 840.2M | buff  123.1M | slab  191.8M |
SWP | tot    1.4G | free    1.0G |              | vmcom  5.2G | vmlim  2.8G |
PAG | scan    6661 | steal  5565 | stall      0 | swin      6 | swout    123 |
DSK |          sda | busy    112% | read      71 | write    134 | avio 46.2 ms |
NET | transport    | tcpi    390 | tcpo    370 | udpi    104 | udpo    104 |
NET | network      | ipi      494 | ipo      474 | ipfrw      0 | deliv    494 |
NET | ens33    0% | pcki    753 | pcko    402 | si  614 Kbps | so  43 Kbps |
NET | lo      ---- | pcki      72 | pcko      72 | si    4 Kbps | so    4 Kbps |

用于检测查看磁盘活动的Linux命令

如果您只想查看磁盘统计信息,可以使用以下命令轻松管理:

linuxidc@linuxidc:~/www.linuxidc.com/Linux公社$ atop | grep DSK
DSK |          sda | busy    100% | read  163221 | write  43826 | avio 63.9 ms |
DSK |          sda | busy    86% | read      12 | write    77 | avio 93.7 ms |
DSK |          sda | busy    104% | read      3 | write    40 | avio  231 ms |
DSK |          sda | busy    108% | read    110 | write    306 | avio 21.7 ms |

用于检测查看磁盘活动的Linux命令

了解磁盘I/O

Linux提供了足够的命令,可以让您深入了解磁盘运行的难度,并帮助您专注于潜在的问题或减速。 希望其中一个命令可以告诉您在询问磁盘性能时需要知道的内容。 偶尔使用这些命令有助于确保在需要检查时特别忙或慢的磁盘是显而易见的。

更多Linux命令相关信息见Linux命令大全 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=16

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-12/156091.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款