Linux下监控磁盘io,如何在Linux下监控磁盘IO?

【51CTO.com快译】iostat用于获取存储设备和分区的I/O统计信息。iostat是sysstat软件包的一部分。使用iostat,你可以监控存储设备(比如硬驱和SSD)以及分区(磁盘分区)的读/写速度。本文将介绍如何在Linux下使用iostat监控磁盘I/O。

在Ubuntu/Debian上安装iostat:

默认情况下,iostat命令在Ubuntu/Debian上不可用。但你可以使用APT软件包管理器,从Ubuntu/Debian的官方软件包存储库轻松安装sysstat包。正如前面提到,iostat是sysstat软件包的一部分。

先使用以下命令更新APT软件包存储库的缓存:

$ sudo aptupdate

d60b9e204b53677fe17702913ec5c357.png

现在使用以下命令安装sysstat软件包:

$ sudo apt install sysstat

2c65f880b294aff983525cc10d6530b8.png

sysstat软件包应已安装。

ecbf95d31c25013a8040d5c14232fa0e.png

在CentOS 7上安装iostat:

默认情况下,iostat在CentOS 7上不可用。但sysstat软件包可在CentOS 7的官方软件包存储库中找到。因此,你可以用YUM软件包管理器轻松安装它。

想使用YUM软件包管理器安装sysstat,运行以下命令:

$ sudo yum install sysstat

3408dba2c57bee32013160efd7d132cf.png

现在,按y然后按回车键继续。

e9ad39394a02ee6c96c8da1dc37c7497.png

现在,按y然后按回车键,接受CentOS 7软件包存储库的GPG密钥。

4fa4ab3b71b9354f49b1ed248e484e76.png

sysstat应已安装。

dff3e5ac66cc14cdfba38cc3aec98d08.png

在Arch Linux上安装iostat:

默认情况下,iostat在Arch Linux上不可用。但sysstat软件包可在Arch Linux的官方软件包存储库中找到。因此,你可以用Pacman软件包管理器轻松安装它。

想安装sysstat,运行以下命令:

$ sudo pacman -Sy sysstat

05fff7bad36d8c7ca635cfa3a360cb4b.png

现在,按y然后按回车键继续。

a76b278e95d510c5190af304216327d0.png

sysstat应已安装。

2fd23e1f3a25e214808897c9ea7194a3.png

iostat的基本用法:

你可以使用iostat监控计算机的所有存储设备和磁盘分区,如下所示:

$ sudo iostat

如你所见,iostat生成了当时每个存储设备和分区的读/写速度(以kB/s为单位)和总的读/写内容(以kB为单位)。

c6a9992026e9fe0ec655678a386b68fa.png

在上述命令中,iostat仅输出你运行iostat的实例的统计信息。这适用于外壳脚本和自动化。

如果你想查看实时统计信息,可以要求iostat每隔n秒(比如说2秒)更新报告,如下所示:

$ sudo iostat -d 2

如你所见,iostat每隔2秒更新一次报告。

0f665d85a56fa050c82f34ea8e410c27.png

bf79fc644c155e9db3061f9ecf57e1ca.png

使用iostat监控特定的存储设备或分区:

默认情况下,iostat监控计算机的所有存储设备。但你也可以使用iostat监控特定的存储设备(比如sda和sdb等)或特定的分区(比如sda1、sda2和sdb4等)。

比如,若想只监控存储设备sda,按以下方式运行iostat:

$ sudo iostat sda

$ sudo iostat -d 2 sda

如你所见,仅监控存储设备sda。

e0552c5c58551c4fcdc13ea843dfd3df.png

你还可以使用iostat监控多个存储设备。

比如想监控存储设备sda和sdb,按以下方式运行iostat:

$ sudo iostat sda sdb

$ sudo iostat -d 2 sda sdb

50e9e28d7af3322e2a1ea0aed06abd95.png

如果你想监控特定分区,还可以这么做。

比如假设你想监控分区sda1和sda2,按以下方式运行iostat:

$ sudo iostat sda1 sda2

$ sudo iostat -d 2 sda1 sda2

a061fa806070d75c4e1c78ff415a6fe6.png

如你所见,只监控分区sda1和sda2。

01ca32736d4483e2bac0f4084a406860.png

使用iostat监控LVM设备:

你可以使用iostat的-N选项监控计算机的LVM设备。

想监控Linux机器的LVM设备,按以下方式运行iostat:

$ sudo iostat -N -d 2

fa2dca461e379a9d84e7e85c4cb8ec1a.png

你还可以监控特定的LVM逻辑卷。

比如想监控LVM逻辑卷centos-root,按以下方式运行iostat:

$ sudo iostat -N -d 2 centos-root

de29171dbc0d0fca637e628e28e4f7e4.png

更改iostat的单位:

默认情况下,iostat以千字节(kB)为单位生成报告。但你可以使用一些选项更改单位。

比如说将单位改成兆字节(MB),使用iostat的-m选项。

还可以使用iostat的-h选项将单位改成人类可读。人类可读格式可根据可用数据,自动选择合适的单位。

想把单位改成兆字节,按以下方式运行iostat:

$ sudo iostat -m -d 2 sda

想把单位改成人类可读格式,按以下方式运行iostat:

$ sudo iostat -h -d 2 sda

9ae1f277a01d2e59026b156eaf1bbb71.png

我拷贝文件,你可以看到,现在以兆字节(MB)为单位。

878ed706d41cab3f9cf89b9cc9b0c25c.png

一旦文件拷贝结束,它立即变成千字节(kB)。

8e9fd2013353bd9f72557a9457a9c028.png

iostat的扩展显示:

如果需要,可以用iostat显示有关磁盘I/O的更多信息。为此,使用iostat的-x选项。

比如说,想显示有关磁盘I/O的扩展信息,按以下方式运行iostat:

$ sudo iostat -x -d 2 sda

你可以在iostat的参考手册页中找到每个字段(rrqm/s和%wrqm等)的含义。

b75efd386463ec4bde8b8540876a928a.png

获得帮助:

如果你需要有关iostat支持的每个选项的更多信息以及iostat的每个字段的含义,建议查看iostat的参考手册页。

你可以使用以下命令查看iostat的参考手册页:

$ man iostat

e374f95a83a62cb11021b8a3f4e75d7b.png

这就是你在Linux中使用iostat的方式。感谢阅读本文。

原文标题:How to Monitor Disk IO in Linux,作者:Shahriar Shovon

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值