mysql如何配置大页内存_mysql large-pages开启方法

MySQL启用large-pages失败主因是内核未配vm.nr_hugepages、limits.conf未设memlock、systemd覆盖ulimit或mysqld非root/CAP_IPC_LOCK权限启动;需依次配置sysctl、limits、service文件,并在mysqld段写large-pages(无等号),再验证pmap和INNODB STATUS。MySQL 启用 large-pages 失败的常见报错直接启动 mysqld 时看到 Failed to set up huge pages 或 Cannot allocate memory for huge pages,基本是内核没配、权限不足、或 MySQL 用户没被授权访问大页。不是配置文件写对了就能跑起来。Linux 默认不启用透明大页(transparent_hugepage),而 MySQL large-pages 要求的是显式大页(hugetlbpage),两者不能混用mysqld 进程必须以 root 或有 CAP_IPC_LOCK 权限的用户启动,普通 mysql 用户默认锁不住大页内存内核参数 vm.nr_hugepages 必须提前分配,且值要 ≥ MySQL 预期申请量(比如 2MB 页 × 1024 = 2GB)配置 /etc/sysctl.conf 和 /etc/security/limits.conf这俩文件漏改一个,large-pages 就会静默退回到普通页------不会报错,但 SHOW VARIABLES LIKE 'large_pages' 显示 ON,实际没生效。在 /etc/sysctl.conf 加:vm.nr_hugepages = 1024(按需调整,单位是 2MB 页)运行 sudo sysctl -p 生效,再用 cat /proc/meminfo | grep Huge 确认 HugePages_Total 不为 0在 /etc/security/limits.conf 加两行:mysql soft memlock unlimited 和 mysql hard memlock unlimited(假设 MySQL 服务用户是 mysql)重启 mysqld 前,确保它由 systemd 启动时未覆盖 ulimit:检查 /usr/lib/systemd/system/mysqld.service 是否含 LimitMEMLOCK=infinitymy.cnf 中开启 large-pages 的关键写法large-pages 是 mysqld 启动时一次性申请的全局行为,不能动态 SET,也不支持只对 buffer pool 开启。配置写错位置或加了引号就无效。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
芝麻开门GEO3 分钟前
泰安GEO优化服务,真的能提升效果吗?
人工智能·python
颜酱13 分钟前
选读:工业级调用 LangChain:从 Demo 到企业级应用
python
颜酱35 分钟前
LangChain 调用大模型实战:从跑通到服务商与模型选型
python·langchain
_qingche40 分钟前
H2 数据库到 MySQL 数据迁移
java·数据库·spring boot·mysql·spring·重构·kotlin
AOwhisky1 小时前
MySQL 学习笔记(第一期):数据库基础与 MySQL 初探
运维·数据库·笔记·学习·mysql·云计算
数据库小学妹1 小时前
MySQL ORDER BY 深度解析:Using temporary 与 Using filesort 的底层机制及索引优化实战
数据库·经验分享·mysql·性能优化·dba
唐装鼠1 小时前
Nginx + Gunicorn + Python Web 应用 架构(Claude)
python·nginx·gunicorn
梦想三三1 小时前
【PYthon词频统计与文本向量化】苏宁易购评论分析实战
开发语言·python
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第93题】【Mysql篇】第23题:从查找速度来看,聚集索引和非聚集索引哪个更快?
java·开发语言·数据库·mysql·面试
WPF工业上位机2 小时前
YXGK.FakeVM数据库示例
jvm·数据库·oracle