- 文档首页
云服务器
云服务器ECS
故障处理
操作系统问题
Linux操作系统问题
如何规避由于操作系统内核问题,导致第3代DPU规格实例磁盘偶发出现IO hang?
Linux操作系统问题
如何规避由于操作系统内核问题,导致第3代DPU规格实例磁盘偶发出现IO hang?
如何规避由于操作系统内核问题,导致第3代DPU规格实例磁盘偶发出现IO hang?
第3代DPU规格实例(例如通用型g3a/g3i、计算型c3a/c3i、内存型r3a/r3i)出现IO hang问题,实例挂载的磁盘出现IO操作长时间处于挂起或停滞状态,导致系统响应缓慢甚至无响应。
问题原因
由于不同版本的操作系统内核配置不一,部分内核可能导致第3代DPU规格实例(例如通用型g3a/g3i、计算型c3a/c3i、内存型r3a/r3i)磁盘出现不同的IO hang问题。
- 使用低版本内核的CentOS 7.x、Ubuntu 16.04、Ubuntu 18.04及Debian 9操作系统,在IO合并较多且深度较大时,有较低概率触发virtio_blk的缺陷,导致出现IO hang问题。解决方案。
- 使用部分内核版本的veLinux、CentOS、Ubuntu操作系统,在高负载场景下,有概率触发内核时序异常问题,进而引发WBT(Writeback Threads)与block-core相互阻塞出现IO hang问题。解决方案。
说明
您可以使用VNC登录目标实例并执行dmesg -T命令,若回显包含下图红框标识内容,表示您实例的IO hang问题是由WBT与block-core相互阻塞引起。
解决方案
平台为您提供了blk-none工具,该工具会根据实例磁盘类型,将磁盘调度算法置为none或者noop避免该问题出现。
说明
- 若由于业务限制暂不能重启实例时,您可以根据本步骤指引临时解决问题,但重启实例后配置将失效。
- 若可以重启实例,您可跳过本步骤执行步骤3,通过blk-none工具,持久化解决问题。
-
请将命令中<vdx>替换为上一步中查询获取的实际磁盘名,例如:vda。
echo "none" > /sys/block/<vdx>/queue/scheduler
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
- 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.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
- Ubuntu 16.04/Ubuntu 18.04/Debian 9
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
- 重启实例,工具将在实例启动后自行生效并完成调整配置。
工具生效后,您挂载新的数据盘时无需再次重启实例,工具将自动调整新数据盘配置。
平台为您提供了bytedance-iohung-tools工具,该工具会检测当前操作系统是否存在IO hang问题;若存在,则通过更改wbt_lat_usec参数配置尝试规避WBT引发的IO hang问题。
说明
bytedance-iohung-tools工具暂仅支持在如下操作系统中使用:
- 执行如下命令,配置extra-tools软件源。
veLinux
CentOS
Ubuntu
Debian
wget -O - https://mirrors.ivolces.com/extra-tools/velinux/GPG-KEY-system | apt-key add -
cat << EOF > /etc/apt/sources.list.d/extra-tools.list
deb https://mirrors.ivolces.com/extra-tools/velinux orion main
cat << EOF > /etc/yum.repos.d/extra-tools.repo
baseurl=https://mirrors.ivolces.com/extra-tools/velinux-centos/1/rpm
gpgkey=https://mirrors.ivolces.com/extra-tools/velinux-centos/GPG-KEY-system
CentOS 8.3/CentOS Stream 8
cat << EOF > /etc/yum.repos.d/extra-tools.repo
baseurl=https://mirrors.ivolces.com/extra-tools/centos/8/rpms
gpgkey=https://mirrors.ivolces.com/extra-tools/centos/GPG-KEY-system
wget -O - https://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
cat << EOF > /etc/apt/sources.list.d/extra-tools.list
deb https://mirrors.ivolces.com/extra-tools/ubuntu xenial main
wget -O - https://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
cat << EOF > /etc/apt/sources.list.d/extra-tools.list
deb https://mirrors.ivolces.com/extra-tools/ubuntu bionic main
wget -O - https://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | apt-key add -
cat << EOF > /etc/apt/sources.list.d/extra-tools.list
deb https://mirrors.ivolces.com/extra-tools/ubuntu focal main
wget -qO- https://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | sudo gpg --dearmor -o /etc/apt/keyrings/extra-tools.gpg
echo "deb [signed-by=/etc/apt/keyrings/extra-tools.gpg] https://mirrors.ivolces.com/extra-tools/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/extra-tools.list
wget -qO- https://mirrors.ivolces.com/extra-tools/ubuntu/GPG-KEY-system | sudo gpg --dearmor -o /etc/apt/keyrings/extra-tools.gpg
echo "deb [signed-by=/etc/apt/keyrings/extra-tools.gpg] https://mirrors.ivolces.com/extra-tools/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/extra-tools.list
wget -O - https://mirrors.ivolces.com/extra-tools/debian/GPG-KEY-system | apt-key add -
cat << EOF > /etc/apt/sources.list.d/extra-tools.list && apt-get update
deb https://mirrors.ivolces.com/extra-tools/debian buster main
wget -O - https://mirrors.ivolces.com/extra-tools/debian/GPG-KEY-system | apt-key add -
cat << EOF > /etc/apt/sources.list.d/extra-tools.list && apt-get update
deb https://mirrors.ivolces.com/extra-tools/debian bullseye main
- veLinux CentOS 兼容版/CentOS/CentOS Stream
- 执行如下命令,安装bytedance-iohung-tools工具。
apt-get install -y bytedance-os-assistants
- veLinux CentOS 兼容版/CentOS/CentOS Stream
yum install -y bytedance-os-assistants
systemctl status bytedance-iohung-tools.service
-
- (可选)您还可以按需执行如下命令,删除已安装的bytedance-iohung-tools工具。
apt-get remove -y bytedance-os-assistants
- veLinux CentOS 兼容版/CentOS/CentOS Stream
yum remove -y bytedance-os-assistants
最近更新时间:2026.01.21 12:04:00