记一次iotop分析磁盘占用io问题

本文记录了一次针对服务器程序丢包问题的排查过程,通过iotop命令发现磁盘IO过高。利用iotop的-b参数配合awk进行非交互式监控,筛选出占用IO超过0.2%的进程,并展示如何打印相应时间和进程信息,以解决不规律出现的IO问题。

问题描述    

                 某一台服务器上面 程序在每小时内偶尔丢包 排查服务器所有性能瓶颈之后发现一个奇怪的问题 程序丢包前后 会有IO过高的情况 于是使用iotop命令排查是哪个程序偶尔占用过高的磁盘IO

所用命令  

                 iotop

相关参数 

    -o:只显示有io操作的进程

    -b:批量显示,无交互,主要用作记录到文件

    -n NUM:显示NUM次,主要用于非交互式模式

    -d SEC:间隔SEC秒显示一次

    -p PID:监控的进程pid

    -u USER:监控的进程用户

排查方法

    iostat命令 只能看出每个盘符的IO情况 不能看到是具体哪个进程使用的IO 所以 我们需要使用iotop命令 但是这次的IO情况并不是一直出现 而是偶尔不规律出现 如果用肉眼去一直盯着终端看 显然不可行 于是我们可以用iotop的-b参数 让结果以非交互的方式输出 这样我们便可以用awk去处

### 查看 Linux 系统中 sda 磁盘 IO 占用高的进程的方法 在 Linux 系统中,`iostat` 和 `pidstat` 是两个非常有用的工具,可以用来查看磁盘 IO 的性能和定位占用 IO 较高的进程。以下是具体方法: #### 使用 `iostat` 查看磁盘 IO 性能 `iostat` 命令可以提供关于 CPU 和磁盘 IO 的统计信息。通过指定 `-d` 参数可以仅显示磁盘的统计信息,而 `-x` 参数则会提供更详细的扩展统计信息。以下是一个示例命令: ```bash iostat -dxk 1 ``` 此命令会每秒刷新一次输出,并显示所有磁盘的详细 IO 统计信息[^4]。对于 `sda` 磁盘,可以观察其 `await`(平均等待时间)、`svctm`(平均服务时间)以及 `util`(设备利用率)等指标来判断是否存在 IO 瓶颈。 #### 使用 `pidstat` 定位占用 IO 高的进程 `pidstat` 是一个用于监控进程活动的工具,它可以显示每个进程的 CPU、内存、IO 等使用情况。通过指定 `-d` 参数,可以查看每个进程的 IO 使用情况。以下是一个示例命令: ```bash pidstat -d 1 ``` 此命令会每秒刷新一次输出,并显示每个进程的读写速度(KB/sec)以及其他 IO 相关的统计信息[^3]。通过分析输出结果,可以找到占用 `sda` 磁盘 IO 较高的进程。 #### 结合 `iotop` 动态监控进程 IO 除了 `iostat` 和 `pidstat`,还可以使用 `iotop` 工具进行动态监控。`iotop` 是一个交互式的进程 IO 监控工具,可以实时显示每个进程的读写速度,从而直观地定位资源占用者。安装和使用方法如下: ```bash # Ubuntu/Debian 系统 sudo apt update && sudo apt install iotop # CentOS/RHEL 系统 sudo yum install iotop # 启动 iotop sudo iotop ``` 在 `iotop` 的界面中,可以通过观察 `IO` 列来找到占用 `sda` 磁盘 IO 较高的进程[^2]。 ### 示例代码 以下是一个结合 `iostat` 和 `pidstat` 的脚本,用于查找占用 `sda` 磁盘 IO 较高的进程: ```bash #!/bin/bash # 查看磁盘 IO 性能 echo "查看 sda 磁盘 IO 性能:" iostat -dxk 1 5 | grep sda # 查找占用 IO 高的进程 echo "查找占用 IO 高的进程:" pidstat -d 1 5 | awk '$6 > 10 {print $0}' ``` 此脚本会先使用 `iostat` 查看 `sda` 磁盘IO 性能,然后使用 `pidstat` 找出 IO 读写速度超过 10 KB/sec 的进程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值