一、前言
在达梦 DM8、Oracle 等数据库国产化实施规范中,必须关闭 Linux 透明大页(THP/Transparent HugePages)。透明大页动态合并内存页,会引发数据库内存抖动、进程卡顿、偶发卡死。
透明大页机制会由内核khugepaged进程后台动态合并4K内存页为2MB大页,该过程会频繁抢占内存锁,数据库高并发读写场景下极易引发:内存分配抖动、SQL 执行卡顿、会话阻塞、数据库偶发
卡死、业务响应延迟突增等严重性能问题,达梦官方部署文档、DCA 认证培训材料均明确要求永久禁用透明大页。很多实施人员因为书写格式、空格、拼写、grub 文件生成错误,执行重启后服
务器直接无法引导启动,生产风险极高。
方案:修改/etc/default/grub内核启动参数,追加transparent_hugepage=never,执行grub2-mkconfig -o /etc/grub2.cfg进行编译,reboot重启实现。
二、故障现象
1、重启服务器后,服务器开机卡在 GRUB 引导阶段,黑屏、持续加载、无法进入系统;
2、远程控制台看不到系统登录界面,业务中断

三、应急修复方案
前提:服务器能正常弹出 GRUB 启动菜单
1、令服务器重启,出现 GRUB 菜单时,快速按 e 进入启动项编辑模式;

2、找到 linux16 / linux 开头内核启动行;
3、修改因修改产生的异常参数;

该方式只临时生效,重启后失效,必须进系统修复原始配置。
4、快捷键 Ctrl + X 使用临时配置启动系统;
5、成功进入操作系统后,修正/etc/default/grub语法,重新生成 grub 配置。
GRUB_CMDLINE_LINUX="resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb transparent_hugepage=never quiet crashkernel=1024M,high audit=0"

6、然后需要执行reboot重启
核心总结:修改 GRUB 关闭透明大页的风险全部来自配置文件语法错误,故障发生后优先使用 GRUB 菜单 e 键临时修复,无需重装操作系统,快速恢复数据库业务。
达梦在线服务平台:https://eco.dameng.com
浙公网安备 33010602011771号