我孤身走在路上, 石子在雾中发亮,夜很安静,荒原面对太空,星星互诉衷肠
利用iostat查看服务器IO状况
利用iostat查看服务器IO状况

利用iostat查看服务器IO状况

iostat 是一个用于监测系统输入输出设备和CPU使用情况的统计工具。它是大多数类Unix操作系统中的标准工具,包括Linux。iostat 可以显示关于硬盘、分区、NFS、光盘等的统计信息,以及CPU的使用情况。

iostat 命令通常用于检测磁盘I/O性能问题和CPU性能问题。通过分析iostat提供的数据,管理员可以了解系统中的哪些部分可能成为瓶颈,从而采取相应的优化措施。

在CentOS 7上安装iostat,我们可以使用yum包管理器,因为iostat包含在sysstat包中。请按照以下步骤操作:

  1. 打开终端。
  2. 输入以下命令来安装sysstat包:
   sudo yum install sysstat
  1. 如果系统提示确认安装,请按y键。
  2. 安装完成后,可以通过输入iostat来运行它。

请确保用户账户有使用sudo的权限

iostat命令提供了多种参数,可以帮助我们根据需要定制输出。以下是一些常用的参数:

  • -c:仅显示CPU使用情况统计。
  • -d:仅显示磁盘I/O统计。
  • -x:显示扩展的磁盘I/O统计。
  • -m:以MB为单位显示所有的块设备(磁盘)的I/O统计。
  • -p [设备]:显示指定分区或全部分区的统计信息。
  • -t:在报告中包含时间戳信息。
  • -k:以千字节为单位显示数据,而不是默认的扇区。
  • -z:省略所有为零的输出行,只显示活动的设备。
  • -j ID:显示指定的磁盘组的统计信息,例如-j ID,sda

我们可以组合使用这些参数来定制输出,以便更好地满足监控需求。例如:

iostat -dxmt 1 5

这个命令将以扩展模式显示详细的磁盘I/O统计信息(-dx),包括时间戳(-t),以MB为单位(-m),每1秒更新一次,总共显示5次输出结果。

解释输出结果的关键指标包括:

  • Device: 设备名称,例如sdadm-0
  • rrqm/s: 每秒合并读取请求的数量。
  • wrqm/s: 每秒合并写入请求的数量。
  • r/s: 每秒完成的读I/O操作数量。
  • w/s: 每秒完成的写I/O操作数量。
  • rkB/s: 每秒从设备读取的数据量(以KB为单位)。
  • wkB/s: 每秒向设备写入的数据量(以KB为单位)。
  • avgrq-sz: 平均每次I/O操作的数据大小(以扇区为单位)。
  • avgqu-sz: 平均I/O队列长度。
  • await: 平均每次I/O操作的等待时间(以毫秒为单位)。
  • r_await: 平均每次读操作的等待时间(以毫秒为单位)。
  • w_await: 平均每次写操作的等待时间(以毫秒为单位)。
  • svctm: 平均每次I/O操作的服务时间(以毫秒为单位)。
  • %util: 设备的利用率百分比,接近100%意味着设备接近饱和。

请注意,svctm%util字段在多核处理器系统上可能不会提供准确的指标,因为它们不能很好地反映并发操作。

例如,如果您看到%util值接近或等于100%,这通常意味着您的磁盘在指定的时间间隔内几乎一直在忙碌,但并不代表已到达性能上限。如果await值很高,这可能表明I/O请求等待时间过长,可能是由于磁盘过于繁忙或存在I/O性能瓶颈。

使用iostat时,通常需要收集一段时间的数据,并对结果进行长期分析,以便更准确地理解系统的I/O性能,下面是本机运行的截图

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

66 − = 62