助力产业智慧升级,云服务器首年88元起,更有千元代金券礼包免费领!

搜搜吧

查看: 30|回复: 0

[资讯] 用于测量磁盘活动的Linux命令

[复制链接]
  • TA的每日心情
    擦汗
    6 天前
  • 签到天数: 550 天

    [LV.9]以坛为家II

    硕士生

    1万

    主题

    1万

    帖子

    3万

    积分

    Rank: 8Rank: 8

    UID
    15343
    威望
    -561
    贡献
    7964
    在线时间
    245 小时
    注册时间
    2015-10-12
    发表于 2019-9-25 16:10:47 | 显示全部楼层 |阅读模式
    推广者专属福利,新客户无门槛领取总价值高达2775元代金券,每种代金券限量500张,先到先得。

    Linux 发行版提供了几个度量磁盘活动的有用命令。让我们了解一下其中的几个。

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

    这些命令中最简单、最直观的一个可能是 dstat 了。

    dtstat

    尽管 dstat 命令以字母 “d” 开头,但它提供的统计信息远远不止磁盘活动。如果你只想查看磁盘活动,可以使用 -d 选项。如下所示,你将得到一个磁盘读/写测量值的连续列表,直到使用 CTRL-c 停止显示为止。注意,在第一个报告信息之后,显示中的每个后续行将在接下来的时间间隔内报告磁盘活动,缺省值仅为一秒。

    • $ dstat -d
    • -dsk/total-
    • read  writ
    • 949B   73k
    •   65k     0    <== first second
    •    0    24k    <== second second
    •    0    16k
    •    0    0 ^C

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

    • $ dstat -d 10
    • -dsk/total-
    • read  writ
    • 949B   73k
    •   65k   81M    <== first five seconds
    •    0    21k    <== second five second
    •    0  9011B ^C

    请注意,报告的数据可能以许多不同的单位显示——例如,M(Mb)、K(Kb)和 B(字节)。

    如果没有选项,dstat 命令还将显示许多其他信息——指示 CPU 如何使用时间、显示网络和分页活动、报告中断和上下文切换。

    • $ 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
    •   0   0 100   0   0| 949B   73k|   0     0 |   0     3B|  38    65
    •   0   0 100   0   0|   0     0 | 218B  932B|   0     0 |  53    68
    •   0   1  99   0   0|   0    16k|  64B  468B|   0     0 |  64    81 ^C

    dstat 命令提供了关于整个 Linux 系统性能的有价值的见解,几乎可以用它灵活而功能强大的命令来代替 vmstat、netstat、iostat 和 ifstat 等较旧的工具集合,该命令结合了这些旧工具的功能。要深入了解 dstat 命令可以提供的其它信息,请参阅这篇关于 dstat 命令的文章。

    iostat

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

    • $ iostat
    • Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_       (2 CPU)
    • avg-cpu:  %user   %nice %system %iowait  %steal   %idle
    •            0.07    0.01    0.03    0.05    0.00   99.85
    • Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    • loop0             0.00         0.00         0.00       1048          0
    • loop1             0.00         0.00         0.00        365          0
    • loop2             0.00         0.00         0.00       1056          0
    • loop3             0.00         0.01         0.00      16169          0
    • loop4             0.00         0.00         0.00        413          0
    • loop5             0.00         0.00         0.00       1184          0
    • loop6             0.00         0.00         0.00       1062          0
    • loop7             0.00         0.00         0.00       5261          0
    • sda               1.06         0.89        72.66    2837453  232735080
    • sdb               0.00         0.02         0.00      48669         40
    • loop8             0.00         0.00         0.00       1053          0
    • loop9             0.01         0.01         0.00      18949          0
    • loop10            0.00         0.00         0.00         56          0
    • loop11            0.00         0.00         0.00       7090          0
    • loop12            0.00         0.00         0.00       1160          0
    • loop13            0.00         0.00         0.00        108          0
    • loop14            0.00         0.00         0.00       3572          0
    • loop15            0.01         0.01         0.00      20026          0
    • loop16            0.00         0.00         0.00         24          0

    当然,当你只想关注磁盘时,Linux 回环设备上提供的所有统计信息都会使结果显得杂乱无章。不过,该命令也确实提供了 -p 选项,该选项使你可以仅查看磁盘——如以下命令所示。

    • $ iostat -p sda
    • Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
    • avg-cpu:  %user   %nice %system %iowait  %steal   %idle
    •            0.07    0.01    0.03    0.05    0.00   99.85
    • Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    • sda               1.06         0.89        72.54    2843737  232815784
    • sda1              1.04         0.88        72.54    2821733  232815784

    请注意 tps 是指每秒的传输量。

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

    • $ iostat -p sda -d 5
    • Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
    • Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    • sda               1.06         0.89        72.51    2843749  232834048
    • sda1              1.04         0.88        72.51    2821745  232834048
    • Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    • sda               0.80         0.00        11.20          0         56
    • sda1              0.80         0.00        11.20          0         56

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

    • $ iostat -p sda -d 5 -y
    • Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
    • Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    • sda               0.80         0.00        11.20          0         56
    • sda1              0.80         0.00        11.20          0         56

    接下来,我们看第二个磁盘驱动器。

    • $ iostat -p sdb
    • Linux 4.18.0-041800-generic (butterfly)         12/26/2018      _x86_64_        (2 CPU)
    • avg-cpu:  %user   %nice %system %iowait  %steal   %idle
    •            0.07    0.01    0.03    0.05    0.00   99.85
    • Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    • sdb               0.00         0.02         0.00      48669         40
    • sdb2              0.00         0.00         0.00       4861         40
    • sdb1              0.00         0.01         0.00      35344          0
    iotop

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

    • $ sudo iotop -d 5
    • Total DISK READ:         0.00 B/s | Total DISK WRITE:      1585.31 B/s
    • Current DISK READ:       0.00 B/s | Current DISK WRITE:      12.39 K/s
    •   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
    • 32492 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.12 % [kworker/u8:1-ev~_power_efficient]
    •   208 be/3 root        0.00 B/s 1585.31 B/s  0.00 %  0.11 % [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]
    •     8 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [mm_percpu_wq]
    ioping

    ioping 命令是一种完全不同的工具,但是它可以报告磁盘延迟——也就是磁盘响应请求需要多长时间,而这有助于诊断磁盘问题。

    • $ sudo ioping /dev/sda1
    • 4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=1 time=960.2 us (warmup)
    • 4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=2 time=841.5 us
    • 4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=3 time=831.0 us
    • 4 KiB <<< /dev/sda1 (block device 111.8 GiB): request=4 time=1.17 ms
    • ^C
    • --- /dev/sda1 (block device 111.8 GiB) ioping statistics ---
    • 3 requests completed in 2.84 ms, 12 KiB read, 1.05 k iops, 4.12 MiB/s
    • generated 4 requests in 3.37 s, 16 KiB, 1 iops, 4.75 KiB/s
    • min/avg/max/mdev = 831.0 us / 947.9 us / 1.17 ms / 158.0 us
    atop

    atop 命令,像 top 一样提供了大量有关系统性能的信息,包括有关磁盘活动的一些统计信息。

    • ATOP - butterfly      2018/12/26  17:24:19      37d3h13m------ 10ed
    • PRC | sys    0.03s | user   0.01s | #proc    179 | #zombie    0 | #exit      6 |
    • CPU | sys       1% | user      0% | irq       0% | idle    199% | wait      0% |
    • cpu | sys       1% | user      0% | irq       0% | idle     99% | cpu000 w  0% |
    • CPL | avg1    0.00 | avg5    0.00 | avg15   0.00 | csw      677 | intr     470 |
    • MEM | tot     5.8G | free  223.4M | cache   4.6G | buff  253.2M | slab  394.4M |
    • SWP | tot     2.0G | free    2.0G |              | vmcom   1.9G | vmlim   4.9G |
    • DSK |          sda | busy      0% | read       0 | write      7 | avio 1.14 ms |
    • NET | transport    | tcpi 4 | tcpo  stall      8 | udpi 1 | udpo 0swout   2255 |
    • NET | network      | ipi       10 | ipo 7 | ipfrw      0 | deliv      60.67 ms |
    • NET | enp0s25   0% | pcki      10 | pcko 8 | si    1 Kbps | so    3 Kbp0.73 ms |
    •   PID SYSCPU  USRCPU  VGROW   RGROW  ST EXC   THR  S CPUNR   CPU  CMD 1/1673e4 |
    • 3357  0.01s   0.00s   672K    824K  --   -     1  R     0    0%  atop
    • 3359  0.01s   0.00s     0K      0K  NE   0     0  E     -    0%  <ps>
    • 3361  0.00s   0.01s     0K      0K  NE   0     0  E     -    0%  <ps>
    • 3363  0.01s   0.00s     0K      0K  NE   0     0  E     -    0%  <ps>
    • 31357  0.00s   0.00s     0K      0K  --   -     1  S     1    0%  bash
    • 3364  0.00s   0.00s  8032K    756K  N-   -     1  S     1    0%  sleep
    • 2931  0.00s   0.00s     0K      0K  --   -     1  I     1    0%  kworker/u8:2-e
    • 3356  0.00s   0.00s     0K      0K  -E   0     0  E     -    0%  <sleep>
    • 3360  0.00s   0.00s     0K      0K  NE   0     0  E     -    0%  <sleep>
    • 3362  0.00s   0.00s     0K      0K  NE   0     0  E     -    0%  <sleep>

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

    • $ atop | grep DSK
    • DSK |          sda | busy      0% | read  122901 | write 3318e3 | avio 0.67 ms |
    • DSK |          sdb | busy      0% | read    1168 | write    103 | avio 0.73 ms |
    • DSK |          sda | busy      2% | read       0 | write     92 | avio 2.39 ms |
    • DSK |          sda | busy      2% | read       0 | write     94 | avio 2.47 ms |
    • DSK |          sda | busy      2% | read       0 | write     99 | avio 2.26 ms |
    • DSK |          sda | busy      2% | read       0 | write     94 | avio 2.43 ms |
    • DSK |          sda | busy      2% | read       0 | write     94 | avio 2.43 ms |
    • DSK |          sda | busy      2% | read       0 | write     92 | avio 2.43 ms |
    • ^C
    了解磁盘 I/O

    Linux 提供了足够的命令,可以让你很好地了解磁盘的工作强度,并帮助你关注潜在的问题或减缓。希望这些命令中的一个可以告诉你何时需要质疑磁盘性能。偶尔使用这些命令将有助于确保当你需要检查磁盘,特别是忙碌或缓慢的磁盘时可以显而易见地发现它们。


    楼主热帖排行榜
    搜搜吧社区温馨提示:
    搜搜吧(www.sosoba.org)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
    1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容
    2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生
    3、搜搜吧影视资源均收集自互联网,没有提供影片资源存储,也未参与录制上传,若本站收录的资源涉及您的版权或知识产权或其他利益,我们会立即删除
    4、搜搜吧,删帖,投诉,举报,侵权,若本站侵犯您的权益,附上身份及权利证明,请直接发送邮件到 kefu-sosoba@qq.com 我们将在一个工作日内删除
    soso搜搜吧社区是聚合百度搜索,搜狗搜索,360搜索,新闻,教育,站长,广告,娱乐,影视,微信,网盘,营销,手机,汽车,游戏,论坛综合为一体的大型门户社区www.sosoba.org
    关闭

    搜搜吧社区公告上一条 /1 下一条

    Powered by www.sosoba.org X3.4© 2013-2019 搜搜吧社区 小黑屋|手机版|Archiver|地图|关于我们|腾讯云代金券|帮助中心|soso吧社区
    广告服务/项目合作: kefu-sosoba@qq.com  侵权举报邮箱: kefu-sosoba@qq.com  搜搜吧建站时间:创建于2013年07月23日
    免责声明:本站所有的内容均来自互联网以及第三方作者自由发布,版权归原作者版权所有,搜搜吧不承担任何的法律责任,若有侵权请来信告知,我们立即删除!
    本站热搜:搜搜吧,搜搜,搜搜网,搜一下,搜吧,soso,sousou,快搜,soso搜搜,好搜,搜索,soso问问,搜搜问问,搜搜小说,搜搜图片,搜狗搜索,微信搜索,图片搜索,百度搜索,手机搜索,网盘搜索

    GMT+8, 2019-10-20 06:45 , Processed in 1.203125 second(s), 9 queries , Gzip On, MemCache On.

    快速回复 返回顶部 返回列表