3种工具监控和调试Linux中的磁盘I/O性能

在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种工具监控和调试Linux中的磁盘I/O性能

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性能,避免因性能瓶颈导致的系统故障或业务中断。

未经允许不得转载:A5数据 » 3种工具监控和调试Linux中的磁盘I/O性能

相关文章

contact