GPU实例宕机故障排查
所有文档
menu

云服务器 BCC

GPU实例宕机故障排查

产品详情自助选购

故障现象

使用CentOS等Linux系统的GPU实例且部署的业务会频繁进行内存分配时,实例发生宕机。

故障原因

CentOS等Linux操作系统默认开启透明大页,若您GPU实例上部署的业务中有频繁的内存分配场景,就可能触发透明大页频繁进行内存规整、内存迁移等操作来聚合透明大页,这些操作可能会通过发送ipi让某个CPU执行flush tlb操作,当这些flush tlb操作堆积起来,CPU没办法调度其他进程运行,可能造成soft lockup,最终导致系统宕机。

透明大页THP(Transparent Huge Pages)是Linux内核中的一个通用特性,它可以自动将小页面合并成大页面,减小TLB miss,提高内存访问的效率。但是,透明大页的存在有可能会造成系统的卡顿,更严重的可能造成宕机。所以需要您根据自己的业务场景来决定打开或者关闭。

一般而言,如果用户的业务有频繁的短生命周期的内存分配的场景,比如AI训练、PFS等场景,建议关闭透明大页功能。

处理步骤

验证是否由于透明大页引起

步骤一 登录服务器

可以通过ssh远程连接服务器,如果无法远程连接,可以使用VNC登录。

步骤二 查看系统日志

1.使用cd进入/var/crash目录或者/home/coresave目录下查看,如果有类似有 127.0.0.1-2024-07-23-15:00:45 这样的目录,说明kdump服务将宕机发生时的信息记录了下来。进入这个目录,可以看到存在一个vmcore-dmesg.txt文件:

image.png

2.打开vmcore-dmesg.txt文件,如果发现异常栈中有如下函数调用,比如do_huge_pmd_anonymous_page,说明可能是因为透明大页引起的异常。

image.png

3.使用如下命令查看当前机器上是否开启透明大页:

cat /sys/kernel/mm/transparent_hugepage/enabled

如果发现如下显示,说明透明大页是开启状态。

image.png

关闭透明大页

您可以通过执行以下命令来持久化关闭透明大页,但该命令需要重启系统才能生效。

sudo grubby --args="transparent_hugepage=never" --update-kernel="/boot/vmlinuz-$(uname -r)"

若您当前不想重启系统,可以也执行以下命令临时关闭透明大页:

sudo sh -c 'echo "never" > /sys/kernel/mm/transparent_hugepage/enabled'

如此不用重启系统,透明大页已关闭,若后续系统重启,持久化关闭透明大页命令生效,透明大页仍处于关闭状态。

image.png

关闭大页后,您可以尝试运行业务,观测一段时间,看是否还会宕机。若仍会宕机,可提交工单联系技术人员协助排查。

上一篇
Linux云服务器进入单用户重置密码报错:Authentication token manipulation error
下一篇
Linux云服务器执行 yum update 报错存在依赖冲突