如何规避由于操作系统内核版本过低,通用型(g3a/g3i)/计算型(c3a/c3i)/内存型(r3a/r3i)规格实例中偶发出现IO hang问题?

axin 2025-04-19 3人围观 ,发现0个评论 火山引擎云服务器云服务器云服务器教程

👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>

问题描述

在通用型(g3a/g3i)/计算型(c3a/c3i)/内存型(r3a/r3i)规格实例中使用的操作系统内核版本较老、IO合并较多且深度较大时,可能偶发出现IO hang问题。

问题原因

使用CentOS 7.x、Ubuntu 16.04、Ubuntu 18.04及Debian 9镜像的通用型(g3a/g3i)/计算型(c3a/c3i)/内存型(r3a/r3i)规格实例,有较低概率触发virtio_blk的缺陷,导致出现IO hang问题。

解决方案

火山引擎为您提供了blk-none工具,该工具会根据实例磁盘类型,将磁盘调度算法置为none或者noop避免该问题出现。
  1. 登录目标实例,操作详情可查看登录实例。

  1. (可选)手动调整磁盘调度算法,临时解决问题。

说明
  • 若由于业务限制暂不能重启实例时,您可以根据本步骤指引临时解决问题,但重启实例后配置将失效。

  • 若可以重启实例,您可跳过本步骤执行步骤3,通过blk-none工具,持久化解决问题。

    1. 执行如下命令,查看磁盘信息。

lsblk
回显示例:

    1. 手动为每个磁盘配置调度算法。

请将命令中<vdx>替换为上一步中查询获取的实际磁盘名,例如:vda。
echo "none" > /sys/block/<vdx>/queue/scheduler
  1. 安装blk-none工具,持久化解决问题。

    1. 执行如下命令,通过安装blk-none工具。

      • 通过火山引擎内网安装

      • CentOS 7.x

wget http://mirrors.ivolces.com/extra-tools/centos/7/rpms/blk-none-v1.0.1-1.ve1.x86_64.rpmyum install ./blk-none-v1.0.1-1.ve1.x86_64.rpm
      • Ubuntu 16.04/Ubuntu 18.04/Debian 9

wget http://mirrors.ivolces.com/extra-tools/ubuntu/pool/main/b/blk-none/blk-none_1.0.1_amd64.debapt install ./blk-none_1.0.1_amd64.deb
      • 通过公网安装

      • CentOS 7.x

wget https://blk-none.tos-cn-beijing.volces.com/blk-none-v1.0.1-1.ve1.x86_64.rpmyum install ./blk-none-v1.0.1-1.ve1.x86_64.rpm
      • Ubuntu 16.04/Ubuntu 18.04/Debian 9

wget https://blk-none.tos-cn-beijing.volces.com/blk-none_1.0.1_amd64.debapt install ./blk-none_1.0.1_amd64.deb
    1. 重启实例,工具将在实例启动后自行生效并完成调整配置。

工具生效后,您挂载新的数据盘时无需再次重启实例,工具将自动调整新数据盘配置。


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯