在Linux服务器上监控的一个关键性能指标是磁盘I/O(输入/输出)活动,它可以显着影响Linux服务器的多个方面,尤其是文件或数据(尤其是在数据库服务器上),因为它会对应用程序和服务的性能产生连锁反应。
在本文中,小编简单整理几个在Linux服务器中监视和调试磁盘I/O性能的有用工具,它可以更好的帮助我们管理Linux服务器,下面依次来介绍下。
1、iostat – 显示设备输入和输出统计信息
iosat是sysstat包中众多基于终端的系统监控实用程序之一,它是一种广泛使用的实用程序,旨在报告块设备和分区的CPU统计信息和I/O统计信息。
要在Linux服务器上使用iostat,需要通过运行适用于Linux发行版的命令在Linux系统上安装sysstt包。
$ sudo apt install sysstat [Debian、Ubuntu和Mint] $ sudo yum install sysstat [RHEL/CentOS/Fedora和Rocky Linux/AlmaLinux] $ sudo Emerge -a app-admin/sysstat [Gentoo Linux] $ sudo apk add sysstat [Alpine Linux] $ sudo pacman -S sysstat [Arch Linux] $ sudo zypper install sysstat [OpenSUSE]
要显示简单的设备利用率报告,请运行iostat命令并使用-d
选项。通常情况下,第一个报告提供有关自系统启动以来的时间(启动时间)的统计信息,而且每个后续报告都关注自上一次报告以来的时间。
使用-x
扩展统计报告和-t
标志来启用每个报告的时间。此外,如果希望消除报告输出中没有任何活动的设备,请添加-z
标志:
# iostat -d -t 或者 # iostat -d -x -t
要以每秒千字节而不是每秒块显示统计信息,请添加-k
标志,或使用-m
标志以每秒兆字节显示统计信息。
# iostat -d -k 或者 # iostat -d -m
iostat还可以以x秒的时间间隔显示连续的设备报告。例如,以下命令以两秒的间隔显示报告:
# iostat -d 2
与前面的命令相关,还可以以x秒的时间间隔显示n个报告。以下命令将以两秒的间隔显示10个报告。或者,可以将报告保存到文件中以供以后分析:
# iostat -d 2 10 或者 # iostat -d 2 10 > disk_io_report.txt &
有关报告列的更多信息,请阅读iostat帮助手册页:
# man iostat
2、sar – 显示Linux系统活动
sar是sysstat软件包附带的另一个有用的实用程序,旨在收集、报告或保存系统活动信息。在开始使用之前,需要进行如下设置。
首先,使其能够收集/etc/default/sysstat文件中的数据。
# vi /etc/default/sysstat
查找以下行并将值更改为“true”,如图所示。
ENABLED="true"
接下来,需要减少sysstat cron作业中定义的数据收集间隔。默认情况下,它设置为每10分钟一次,你可以将其降低到每2分钟一次。
你可以在/etc/cron.d/sysstat文件中执行此操作:
# vi /etc/cron.d/sysstat
保存文件并关闭它。
最后,使用以下systemctl命令启用并启动sysstat服务:
# systemctl enable --now sysstat.service # systemctl enable sysstat.service
接下来,等待2分钟开始查看sar报告。使用sar命令和命令行-b
选项来报告I/O和传输速率统计信息,-d
选项会报告每个块设备的活动,如下图所示:
# sar -d -b
3、iotop – 监控Linux磁盘I/O使用情况
与设计上的顶级监控工具类似,iotop是一个简单的实用程序,可基于每个进程监控磁盘I/O活动和使用情况。
你可以按如下方式将它安装在Linux服务器上(请记住为不同Linux发行版运行适当的命令):
$ sudo apt install iotop [ Debian、Ubuntu和Mint] $ sudo yum install iotop [RHEL/CentOS/Fedora和Rocky Linux/AlmaLinux] $ sudo Emerge -a sys-processs/iotop [Gentoo Linux] $ sudo apk add iotop [Alpine Linux] $ sudo pacman -S iotop [Arch Linux] $ $ sudo zypper install iotop [OpenSUSE]
要监视每个进程的I/O活动,可以不带任何参数运行iotop,如下所示。默认情况下,迭代之间的延迟为1秒。可以使用-d
标志更改此设置。
# iotop 或者 # iotop -d 2
iotop默认会显示一个进程的所有线程,要更改此行为以使其仅显示进程,请使用-P
命令行选项。
# iotop -P
此外,使用-a
选项,可以指示它显示累积的I/O,而不是显示带宽。在此模式下,iotop显示自调用iotop以来执行的I/O进程的数量。
# iotop -P -a
总结
以上就是在Linux服务器中监视和调试磁盘I/O性能的几个有用工具,对于Linux新手用户来说,都是比较不错的管理工具,有需要的小伙伴可以试试安装使用,或许比较适合你。