您可以通过存储卷的监控仪表板定位分析客户端的IO操作问题,并定位到问题所在的相关业务(Pod)。例如,哪些频繁的操作会导致系统繁忙、访问元数据繁忙或者产生热点文件(热点数据)占用大量带宽等常见的客户端IO问题。本文通过示例介绍如何使用存储卷的监控仪表板定位这些问题。
前提条件
已创建Kubernetes集群,且集群版本大于1.20,存储插件选择为CSI。具体操作,请参见创建Kubernetes托管版集群。
CSI-Plugin和CSI-Provisioner组件版本不低于v1.22.14-820d8870-aliyun。关于升级CSI-Plugin和CSI-Provisioner组件的操作,请参见安装与升级CSI组件。
背景信息
存储卷的监控仪表板包含以下三个大盘:
Container Storage IO Monitoring (Cluster Level):容器存储IO监控(集群维度)的大盘,TOPN Pod的重要指标的统计。
Pod IO Monitoring (Pod Level):容器组IO监控(容器组维度)的大盘,以Pod为过滤选项,存储卷重要指标的统计。
OSS IO Monitoring (Cluster Level):对象存储IO监控(集群维度)的大盘,以OSS Bucket为过滤选项,存储重要指标的统计。
存储插件监控功能费用说明
启用存储插件CSI监控功能后,相关组件会自动将监控指标发送至阿里云Prometheus服务,这些指标将被视为自定义指标。使用自定义指标可能会引起额外的费用。
为了避免产生额外的费用,建议在启用此功能前,仔细阅读阿里云Prometheus的计费概述,了解自定义指标的收费策略。费用将根据您的集群规模和应用数量等因素产生变动。您可以通过资源消耗统计功能,监控和管理您的资源使用情况。
查看存储卷的监控仪表板大盘
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在Prometheus监控页面,单击存储监控页签。
在存储监控页签下,单击OSS IO Monitoring (Cluster Level),即可查看对应大盘。
在存储监控页签下,单击Pod IO Monitoring (Pod Level),即可查看对应大盘。
定位容器内应用的IO问题
以下问题定位的示例均以读操作为例进行说明。
问题1:哪些IO操作频繁会导致系统繁忙?
您可以通过以下操作定位当应用Pod的PVC读访问请求高时,可能触发的服务侧限流和不响应问题。
查看Container Storage IO Monitoring (Cluster Level)监控大盘,根据TopN_Pod_IOPS(IO/s)和TopN_Pod_Throughput(IO/s)面板的read排序,找到高IO和高吞吐的Pod。
由示例可看出,oss-fio-test-deployment-696cd457f4-2dpt9对应的Pod产生了最多的IO和吞吐。
查看Pod IO Monitoring (Pod Level)监控大盘,选择Pod为oss-fio-test-deployment-696cd457f4-2dpt9,然后查看Throughput和POSIX Operation(count/s)面板,找出执行POSIX Operation命令过高导致的高吞吐。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在容器组页面,单击名称列下名为oss-fio-test-deployment-696cd457f4-2dpt9的Pod进入详情页面。
在该页面下获取应用的镜像信息,根据以上获取的高IO和高吞吐信息,修改应用。
问题2:哪些元数据的操作频繁会导致后台系统繁忙?
您可以通过以下操作定位当Bucket元数据读访问请求过高时,可能触发的服务侧限流和不响应问题。
查看OSS IO Monitoring (Cluster Level)监控大盘,选择对应的Bucket,查看Aggregated Operation of OSS Operation (count/s)面板中的head请求数。
由示例可看出,oss--1对应的Bucket产生了很多head请求。
查看Container Storage IO Monitoring (Cluster Level)监控大盘,根据TopN_Pod_Head_OSS_Operation面板的counter排序,找到head请求数过多的Pod,根据TopN_PV_Head_OSS_Operation面板,找到head请求数过多的数据卷。
由示例可看出,oss-fio-test-deployment-696cd457f4-bw275对应的Pod产生的head请求数过多;oss-pv3对应的数据卷产生的head请求数过多。
查看Pod IO Monitoring (Pod Level)监控大盘,选择Pod为oss-fio-test-deployment-696cd457f4-bw275,查看OSS Object Operation Ration(count/s)面板中Pod的IO情况。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在容器组页面,单击名称列下名为oss-fio-test-deployment-696cd457f4-bw275的Pod进入详情页面。
在该页面下获取应用的镜像信息,根据以上获取的head请求数和IO情况,修改应用。
问题3:有哪些数据操作频繁的热点文件和热点文件路径?
查看OSS IO Monitoring (Cluster Level)监控大盘。获取OSS的Bucket中频繁访问的文件和文件路径。
根据HotSpot Path of IOPS面板的read排序,找到Bucket中频繁访问的文件和文件路径。
由示例可看出,Bucket中频繁读取的文件是/test/data/5G.tmpfile,访问的路径为/test/data。
根据HotSpot Path of Head Operation面板的read排序,查看Bucket中Head请求频繁访问的路径。
由示例可看出,Bucket中Head请求频繁访问的路径是/test/。
查看Container Storage IO Monitoring (Cluster Level)监控大盘,根据TopN_Pod_Read_Path面板的counter排序,找到有问题的Pod。
由示例可看出,存在问题的Pod是oss-fio-test-deployment-696cd457f4-csqrf。
查看Pod IO Monitoring (Pod Level)监控大盘,选择Pod为oss-fio-test-deployment-696cd457f4-csqrf,根据HotSpot Path of Top Read Operation面板的counter排序,找到Pod中频繁访问的文件和文件路径。
由示例可看出,Pod中频繁读取的文件/test/data/5G.tmpfile,访问的路径为/test/data。
问题4:存储卷挂载失败,会触发事件中心告警
当存储卷挂载失败时,事件中心会发送报警事件通知,您可以通过以下方式查看当前挂载失败的PV及失败原因。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在事件中心页面,单击核心组件事件页签,然后找到存储CSI区域查看对应挂载失败问题及原因。