在通用型(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
避免该问题出现。
登录目标实例,操作详情可查看登录实例。
(可选) 手动调整磁盘调度算法,临时解决问题。
说明
执行如下命令,查看磁盘信息。
lsblk
回显示例:
手动为每个磁盘配置调度算法。
请将命令中
<vdx>
替换为上一步中查询获取的实际磁盘名,例如:vda。
echo "none" > /sys/block/<vdx>/queue/scheduler
安装blk-none工具,持久化解决问题。
通过火山引擎内网安装
wget http://mirrors.ivolces.com/extra-tools/centos/7/rpms/blk-none-v1.0.1-1.ve1.x86_64.rpm yum install ./blk-none-v1.0.1-1.ve1.x86_64.rpm
wget http://mirrors.ivolces.com/extra-tools/ubuntu/pool/main/b/blk-none/blk-none_1.0.1_amd64.deb apt install ./blk-none_1.0.1_amd64.deb
通过公网安装
wget https://blk-none.tos-cn-beijing.volces.com/blk-none-v1.0.1-1.ve1.x86_64.rpm yum install ./blk-none-v1.0.1-1.ve1.x86_64.rpm
wget https://blk-none.tos-cn-beijing.volces.com/blk-none_1.0.1_amd64.deb apt install ./blk-none_1.0.1_amd64.deb
工具生效后,您挂载新的数据盘时无需再次重启实例,工具将自动调整新数据盘配置。