千爱 发表于 2019-3-28 12:43:54

如何在Linux下监控磁盘IO?

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 apt update
https://s5.51cto.com/oss/201903/27/a1a228e0834acd894fc35c1a6577434f.png-wh_651x-s_1933211107.png现在使用以下命令安装sysstat软件包:
[*]$ sudo apt install sysstat
https://s2.51cto.com/oss/201903/27/177a8de4fd74dba07985999ee351562b.pngsysstat软件包应已安装。https://s4.51cto.com/oss/201903/27/42aa5f380caaebe4ae1ae09c796c4b4a.png在CentOS 7上安装iostat:默认情况下,iostat在CentOS 7上不可用。但sysstat软件包可在CentOS 7的官方软件包存储库中找到。因此,你可以用YUM软件包管理器轻松安装它。想使用YUM软件包管理器安装sysstat,运行以下命令:
[*]$ sudo yum install sysstat
https://s5.51cto.com/oss/201903/27/a8e98ef6bb5ddb5e878bd5a588f92936.png现在,按y然后按回车键继续。https://s1.51cto.com/oss/201903/27/e526db99c810a508b236a2b56ba7bd19.png现在,按y然后按回车键,接受CentOS 7软件包存储库的GPG密钥。https://s4.51cto.com/oss/201903/27/1be5b2e46f557d036ebfaf20016bfab6.pngsysstat应已安装。https://s4.51cto.com/oss/201903/27/7a1689a143da6920cbd040a65ec358dd.png在Arch Linux上安装iostat:默认情况下,iostat在Arch Linux上不可用。但sysstat软件包可在Arch Linux的官方软件包存储库中找到。因此,你可以用Pacman软件包管理器轻松安装它。想安装sysstat,运行以下命令:
[*]$ sudo pacman -Sy sysstat
https://s4.51cto.com/oss/201903/27/c78dd8e3acd33b3a53957cd45032febd.png现在,按y然后按回车键继续。https://s5.51cto.com/oss/201903/27/efd625019f950c75d34b65f84c579033.pngsysstat应已安装。https://s5.51cto.com/oss/201903/27/e1247a60b7687cb5d7343f22a3f29443.pngiostat的基本用法:你可以使用iostat监控计算机的所有存储设备和磁盘分区,如下所示:
[*]$ sudo iostat
如你所见,iostat生成了当时每个存储设备和分区的读/写速度(以kB/s为单位)和总的读/写内容(以kB为单位)。https://s3.51cto.com/oss/201903/27/5a00f0509f555f4274c72781b36d9a28.png在上述命令中,iostat仅输出你运行iostat的实例的统计信息。这适用于外壳脚本和自动化。如果你想查看实时统计信息,可以要求iostat每隔n秒(比如说2秒)更新报告,如下所示:
[*]$ sudo iostat -d 2
如你所见,iostat每隔2秒更新一次报告。https://s5.51cto.com/oss/201903/27/f2fd7ad60ef386a4b622ce6232ae649f.pnghttps://s2.51cto.com/oss/201903/27/bf049b0053e1ec8b7e834be99e863ff2.png使用iostat监控特定的存储设备或分区:默认情况下,iostat监控计算机的所有存储设备。但你也可以使用iostat监控特定的存储设备(比如sda和sdb等)或特定的分区(比如sda1、sda2和sdb4等)。比如,若想只监控存储设备sda,按以下方式运行iostat:
[*]$ sudo iostat sda

[*]$ sudo iostat -d 2 sda
如你所见,仅监控存储设备sda。https://s3.51cto.com/oss/201903/27/9f129e3a61ea4b99fc99f7ce998abb9b.png你还可以使用iostat监控多个存储设备。比如想监控存储设备sda和sdb,按以下方式运行iostat:
[*]$ sudo iostat sda sdb

[*]$ sudo iostat -d 2 sda sdb
https://s1.51cto.com/oss/201903/27/e0d85b6e6f930368c5d53776bc868070.png如果你想监控特定分区,还可以这么做。比如假设你想监控分区sda1和sda2,按以下方式运行iostat:
[*]$ sudo iostat sda1 sda2

[*]$ sudo iostat -d 2 sda1 sda2
https://s3.51cto.com/oss/201903/27/e7955f3438176db2fc0b2f201d632bbd.png如你所见,只监控分区sda1和sda2。https://s3.51cto.com/oss/201903/27/0a740b13a55806345939f8e9bbf0b458.png使用iostat监控LVM设备:你可以使用iostat的-N选项监控计算机的LVM设备。想监控Linux机器的LVM设备,按以下方式运行iostat:
[*]$ sudo iostat -N -d 2
https://s3.51cto.com/oss/201903/27/0a01396ea0f8d96090d50c75470a36ce.png你还可以监控特定的LVM逻辑卷。比如想监控LVM逻辑卷centos-root,按以下方式运行iostat:
[*]$ sudo iostat -N -d 2 centos-root
https://s3.51cto.com/oss/201903/27/e4c058321bdf3fc6b2c4343b30c4be57.png更改iostat的单位:默认情况下,iostat以千字节(kB)为单位生成报告。但你可以使用一些选项更改单位。比如说将单位改成兆字节(MB),使用iostat的-m选项。还可以使用iostat的-h选项将单位改成人类可读。人类可读格式可根据可用数据,自动选择合适的单位。想把单位改成兆字节,按以下方式运行iostat:
[*]$ sudo iostat -m -d 2 sda
想把单位改成人类可读格式,按以下方式运行iostat:
[*]$ sudo iostat -h -d 2 sda
https://s4.51cto.com/oss/201903/27/483a912f160bd83ca6391d36172e85fe.png我拷贝文件,你可以看到,现在以兆字节(MB)为单位。https://s2.51cto.com/oss/201903/27/dad52453a79548099b3109946689338b.png一旦文件拷贝结束,它立即变成千字节(kB)。https://s5.51cto.com/oss/201903/27/f2a8bb80e5a04761d96cf3e2a492960d.pngiostat的扩展显示:如果需要,可以用iostat显示有关磁盘I/O的更多信息。为此,使用iostat的-x选项。比如说,想显示有关磁盘I/O的扩展信息,按以下方式运行iostat:
[*]$ sudo iostat -x -d 2 sda
你可以在iostat的参考手册页中找到每个字段(rrqm/s和%wrqm等)的含义。https://s4.51cto.com/oss/201903/27/82789cc69ffcebf54592789c68c9bdc0.png获得帮助:如果你需要有关iostat支持的每个选项的更多信息以及iostat的每个字段的含义,建议查看iostat的参考手册页。你可以使用以下命令查看iostat的参考手册页:
[*]$ man iostat
https://s1.51cto.com/oss/201903/27/e75bb6853e2579e2bfa2369eb5ba9775.png这就是你在Linux中使用iostat的方式。感谢阅读本文。

无敌天喜 发表于 2019-4-1 14:15:43

学习一波

老蒋123 发表于 2019-4-8 20:45:45

千爱开始玩转LINUX了啊,:lol
页: [1]
查看完整版本: 如何在Linux下监控磁盘IO?