在Linux服务器上,一个关键的性能指标是磁盘I/O(输入/输出)活动,它会显著影响Linux服务器的多个方面,特别是保存到磁盘或从磁盘检索文件或数据的速度(尤其是在数据库服务器上)。这对应用程序和服务的性能有连锁反应。
1. iostat – 显示设备输入输出统计信息
iostat是sysstat包中的众多终端监控工具之一,这个工具广泛用于报告CPU统计信息以及块设备和分区的I/O统计信息。
要在Linux服务器上使用iostat,您需要通过运行适用于您Linux发行版的命令来安装sysstat包。
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上]
要显示简单的设备利用报告,请使用-d命令行选项运行iostat。通常,第一个报告提供自系统启动以来的统计信息,每个后续报告则是关于自上一个报告以来的时间。
使用-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手册:
man iostat
2. sar – 显示Linux系统活动
sar是sysstat包中另一个有用的工具,用于收集、报告或保存系统活动信息。在您开始使用它之前,您需要按照以下步骤进行设置。
首先,启用它以在/etc/default/sysstat文件中收集数据。
vi /etc/default/sysstat
查找以下行并将值更改为“true”:
ENABLED="true"
接下来,您需要减少sysstat定时任务中定义的数据收集间隔。默认情况下,它设置为每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使用情况
类似于top监控工具,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性能是非常重要的一环。通过使用像iostat、sar和iotop这样的工具,您可以实时跟踪和诊断磁盘I/O活动,及时发现潜在问题,确保系统的稳定性和性能。这些工具提供了强大的功能,能够帮助您优化服务器资源的使用,减少瓶颈,提高应用和服务的响应速度。
无论是针对单一设备的详细报告,还是针对全系统的广泛数据分析,这些工具都能为管理员提供深入的视角,帮助其做出更加精确的决策。通过合理配置和使用这些工具,您将能够有效管理Linux系统中的磁盘I/O性能,避免因性能瓶颈导致的系统故障或业务中断。











