You need to enable JavaScript to run this app.
导航
Linux系统的ECS实例磁盘BPS/IOPS负载高问题的排查及解决方案
最近更新时间:2024.10.18 17:12:43首次发布时间:2024.04.03 15:47:01

本文主要介绍如何使用iostat、Atop工具,排查和解决Linux实例在使用过程中,由于磁盘BPS(每秒传输的字节数)/IOPS(每秒的输入/输出操作次数)负载较高,出现系统卡顿、磁盘IO性能被限速、磁盘IO时延增高导致业务进程性能受损的问题。

操作步骤

  1. 登录目标实例,操作详情可参考登录Linux实例

  2. 执行如下命令,安装iostat工具。

    • CentOS
      sudo yum install sysstat -y
      
    • Ubuntu、Debian
      sudo apt-get install sysstat -y
      
  3. 执行如下命令,使用iostat工具查询磁盘的使用情况。

    说明

    命令中参数作用如下所示,请按需调整。

    • -d:显示磁盘的使用情况。
    • -k:以KB为单位显示。
    • 3:统计时间间隔,请按需调整。
    • 5:统计次数,请按需调整。
    iostat -d -k 3 5
    

    回显示例

    参数说明

    参数说明
    Device磁盘名称。
    tps每秒钟发送到的I/O请求数。
    Blk_read/s每秒读取的block数。
    Blk_wrtn/s每秒写入的block数。
    Blk_read读入的block总数。
    Blk_wrtn写入的block总数。
  4. 使用Atop工具,查看磁盘占用排序情况。

    1. 请确保在目标实例中已经安装Atop工具,若未安装,请执行如下命令完成操作。
      • CentOS

        sudo yum -y install atop
        
      • Ubuntu、Debian

        sudo apt update 
        sudo apt -y install atop
        
    2. 执行如下命令,查看磁盘占用实时排序情况。
      atop -d
      
      回显示例
    3. 请根据RDDSK(每秒读的数据量)、WRDSK(每秒写的数据量)、WCANCAL(每秒磁盘活动的次数)、DSK(磁盘利用率)、与CMD(进程名),判断占用磁盘较高的进程是否符合预期,并获取目标进程的PID(进程标识符)。
      • 符合预期
        请优化该进程对应的程序处理逻辑,减少磁盘占用。您也可以升级您的实例配置、扩容云盘或变更云盘规格,避免程序受限于云盘性能无法正常运行,操作详情可查看修改实例规格扩容云盘变更云盘规格
      • 不符合预期
        您可以执行如下命令,手动终止异常进程。

        注意

        • 终止进程后,可能导致目标进程的数据丢失。
        • 终止操作系统关键进程可能导致系统重启,请谨慎操作。
        1. 在Atop监控页面中,按k键进入终止进程模式。
        2. 输入目标进程PID,按回车键确认。
        3. 输入9,按回车键确认,强制关闭进程。