帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 轻量应用服务器
  4. 服务支持
  5. 故障排除
  6. 检测文件系统和块层的IO hang

检测文件系统和块层的IO hang

  • 故障排除
  • 发布于 2025-04-16
  • 0 次阅读
文档编辑
文档编辑

IO hang是指在系统运行过程中,因某些IO耗时过长而引起的系统不稳定甚至宕机。为了准确检测出IO hang,Alibaba Cloud Linux 2和Alibaba Cloud Linux 3扩展核心数据结构,增加了在较小的系统开销下,快速定位并检测IO hang的功能。本文主要介绍实现该功能的接口以及接口操作示例。

接口说明

接口

描述

/sys/block/<device>/queue/hang_threshold

该接口能够查看和修改用于检测IO hang的阈值,单位为ms,默认值为5000。

/sys/block/<device>/hang

该接口能够输出对应设备上超过IO hang阈值的读写IO个数。

/sys/kernel/debug/block/<device>/rq_hang

该接口能够获取IO hang的详细信息。

/proc/<pid>/wait_res

该接口能够获取进程正在等待的资源信息。

/proc/<pid>/task/<tid>/wait_res

该接口能够获取线程正在等待的资源信息。

以上接口中变量说明如下。

变量名

说明

<device>

块存储设备名。

<pid>

进程ID。

<tid>

线程ID。

示例一

您可以根据需求调用接口/sys/block/<device>/queue/hang_threshold修改用于检测IO hang的阈值。本示例中将默认阈值5000 ms修改为10000 ms。

  1. 将磁盘vdb下的用于检测IO hang的阈值修改为10000 ms。

    echo 10000 > /sys/block/vdb/queue/hang_threshold
  2. 查看修改结果。

    cat /sys/block/vdb/queue/hang_threshold

    返回结果示例。

    10000

示例二

您可以调用接口/sys/block/<device>/hang查询磁盘上产生IO hang的读写IO个数。本示例查询的磁盘为vdb。

查询命令如下。

cat /sys/block/vdb/hang

返回结果示例。

0        1     # 左边参数表示产生IO hang的读IO的个数,右边参数表示产生IO hang的写IO的个数

示例三

您可以调用接口/sys/kernel/debug/block/<device>/rq_hang获取产生IO hang的详细信息。本示例中的磁盘为vdb。

查询命令如下。

cat /sys/kernel/debug/block/vdb/rq_hang

返回结果示例如下。

ffff9e50162fc600 {.op=WRITE, .cmd_flags=SYNC, .rq_flags=STARTED|ELVPRIV|IO_STAT|STATS, .state=in_flight, .tag=118, .internal_tag=67, .start_time_ns=1260981417094, .io_start_time_ns=1260981436160, .current_time=1268458297417, .bio = ffff9e4907c31c00, .bio_pages = { ffffc85960686740 }, .bio = ffff9e4907c31500, .bio_pages = { ffffc85960639000 }, .bio = ffff9e4907c30300, .bio_pages = { ffffc85960651700 }, .bio = ffff9e4907c31900, .bio_pages = { ffffc85960608b00 }}

上述示例显示了IO的详细信息,从信息中获取到IO请求开始时间io_start_time_ns已被赋值。表明该IO请求未被及时处理,从而导致IO耗时过长。

示例四

您可以调用接口/proc/<pid>/wait_res获取进程正在等待的资源信息。本示例所查询的进程ID为577。

查询命令如下。

cat /proc/577/wait_res

返回结果示例。

1 0000000000000000 4310058496 4310061448    #示例值依次对应Field 1 Field 2 Field 3 Field 4

返回结果示例中参数说明如下。

参数

说明

Field 1

等待的资源类型。1表示文件系统中的缓存页(page),2表示块层bio。

Field 2

等待的资源(page/bio)地址。

Field 3

等待资源开始时间。

Field 4

读取该文件的当前时间,与Field 3的差值即为在该资源上等待的耗时。

相关文章

能够ping通Windows服务器但是无法远程连接 2025-04-16 17:05

本文主要介绍能够ping通Windows服务器但是无法远程连接的问题描述、问题原因及其解决方案。 问题描述 本地电脑可以ping通Windows服务器,但无法远程连接Windows服务器,报错信息如下图所示。

能够ping通Linux服务器但是无法远程连接 2025-04-16 17:05

本文主要介绍能够ping通Linux服务器但是无法远程连接的问题描述、问题原因及其解决方案。 问题描述 无法远程连接Linux系统的阿里云轻量应用服务器,但是可以ping通该Linux服务器。报错信息如下图所示。

特定IP地址无法访问轻量应用服务器 2025-04-16 17:05

本文主要介绍特定IP地址无法访问轻量应用服务器的问题描述、问题原因及其解决方案。 问题描述 某特定IP地址无法访问阿里云轻量应用服务器。例如:当您在轻量应用服务器上搭建宝塔面板后,如果轻量应用服务器的防火墙没有放行8888端口,则您访问宝塔面板时,提示“无法访问此网站”。

远程连接非中国内地的轻量应用服务器提示连接超时 2025-04-16 17:05

本文介绍远程连接非中国内地的轻量应用服务器提示连接超时的问题描述、问题原因及其解决方案。 问题描述 通过远程连接登录非中国内地的阿里云轻量应用服务器失败,并提示连接超时。 问题原因 如果您在中国内地访问其他国家和地区地域下的轻量应用服务器,可能会出现较大延迟及丢包,造成无法访问轻量应用服务器的情况。

重置轻量应用服务器的密码后未生效 2025-04-16 17:05

本文主要介绍重置轻量应用服务器的密码后未生效的问题描述、问题原因及其解决方案。 问题描述 在阿里云轻量应用服务器控制台中,重置轻量应用服务器的密码后未生效。

使用自定义镜像创建轻量应用服务器失败 2025-04-16 17:05

本文主要介绍使用自定义镜像创建轻量应用服务器失败的问题描述、问题原因及其解决方案。 问题描述 在轻量应用控制台中,使用自定义镜像创建服务器失败。 问题原因 不符合重置镜像的条件或者删除自定义镜像相关的

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1