IO流量分析

IO流量分析主要分析系统中IO流量的归属,通常用于解决IO Burst问题。本文将介绍在操作系统控制台上诊断IO流量的使用说明。

地域限制

本功能目前仅支持中国内地与中国香港。

前提条件

  • 如果您使用RAM用户,请确保阿里云账号(主账号)已将系统策略AliyunECSReadOnlyAccessAliyunSysomFullAccess授予RAM用户。具体操作,请参见RAM用户授权

  • 已开通控制台权限。

    首次登录操作系统控制台时,单击开通服务以开通控制台服务。

操作步骤

  1. 登录操作系统控制台

  2. 在左侧导航栏,单击系统诊断

  3. 在页面左侧顶部,选择目标实例所在的地域。

    image

  4. 诊断类型列表中,选择存储诊断,在诊断项中,选择IO流分析,配置相关参数,单击执行诊断

    相关参数如下:

    参数名

    参数说明

    是否必填

    实例ID

    目标ECS实例ID。

    诊断时长

    持续诊断时长,默认为15秒。

    目标磁盘

    需要检测的磁盘名称(例如sda等)。

    否(不指定则诊断所有磁盘)

  5. 诊断记录区域,单击查看报告

    image

诊断报告

诊断报告记录单次诊断的所有信息。

  • 基础信息

    基础信息部分包含单次诊断的基本信息,包括诊断实例ID(资源ID)、诊断项、诊断报告ID及诊断发起时间。

  • 诊断结论

    • 若检测出IO流量正常,则展示当前IO性能指标。

    • 若检测出IO流量异常,则展示IO流量异常的原因。

  • 诊断建议

    根据诊断情况提供相应的处理建议。

  • 诊断详情

    诊断详情包含四大部分:原因分析、磁盘级IO流量列表、进程级IO流量列表和进程IO块大小分布。

    • 原因分析

      原因分析部分主要展示了进程访问磁盘所产生的IO流量,其一般形式为:某进程访问某磁盘时的IOPSIO吞吐量,并指明所访问的目标文件。

    • 磁盘级IO流量列表

      该部分展示了诊断期间统计到的磁盘IO流量,并对主要字段的含义进行了说明。

      image

      • 磁盘/分区名称:检测磁盘/分区的名称

      • IO合并个数:诊断期间合并读操作的次数

      • IO合并个数:诊断期间合并写操作的次数

      • IO吞吐:诊断期间读IO吞吐

      • IO吞吐:诊断期间写IO吞吐

      • 平均IO时延:每个I/O平均所需的时间

      • 平均读IO时延:每个读操作平均所需的时间

      • 平均写IO时延:每个写操作平均所需的时间

      • IO繁忙度(百分比):该硬盘设备的繁忙比率

    • 进程级IO流量列表

      该部分展示了诊断期间进程级别的IO流量,并对主要字段的含义进行了说明。

      • 进程名:进程的名称 

      • 父进程ID:进程ID:进程ID信息

      • IO个数:进程贡献的读iops

      • IO个数:进程贡献的写iops

      • IO吞吐:进程贡献的读bps

      • IO吞吐:进程贡献的写bps

      • 刷新磁盘缓存次数:表示此进程产生的flush IO个数

      • 磁盘/分区名称:消费IO的目标磁盘

      • 文件名:产生IO的来源文件

      该功能支持kworker对刷脏的IO进行溯源,因此可以看到在kworker进程下存在子项,展开可以看到实际产生脏页(写入Buffer IO)的进程。

      image

    • 进程IO块大小分布

      该部分展示了诊断期间进程级别IO提交到OS块层的块大小分布,并对主要字段的含义进行了说明。

      image

      • 进程名:进程的名称 

      • 父进程ID:进程ID:进程ID信息

      • nKio占比:IO大小为nKIO个数占比

      • 512KIO占比:大于512KB的大块IO的占比