环境:
centos7.2 mysql 5.7.26
故障 在一台总物理内存125G的服务器上,修改mysql的innodb_buffer_pool_size为64G后,启动报错,截图如下:
错误原因大致是内存不足。
诊断
开始以为是调优参数设置问题,仔细参阅官网后,未发现任何问题;试着将innodb_buffer_pool_size调整为60G,数据库可以正常启动,因此怀疑是操作系统限制了内存分配。通过排查发现该操作系统的/proc/sys/vm/overcommit_memory值为2,而默认值应该是0。overcommit_memory是一个内核对内存分配的一种策略,仔细参阅了该参数,大致定义如下: overcommit_memory=0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 overcommit_memory=1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 overcommit_memory=2, 表示内核允许分配超过所有物理内存和交换空间总和的内存。
当overcommit_memory=2的时候,它一般是代表的是系统中总的内存的百分比,具体的虚拟内存总和为:内存总和=SwapTotal + MemTotal * overcommit_ratio,这里的
overcommit_ratio默认为50%。
解决方案
通过上面诊断以后,解决方案就是修改
/proc/sys/vm/overcommit_memory为0:
echo 0 >
/proc/sys/vm/overcommit_memory
修改完成后,再次启动mysql,此时能够正常启动。
mysql启动提示 Cannot allocate memory for the buffer pool
来源:这里教程网
时间:2026-03-01 12:31:08
作者:
编辑推荐:
- 3DMAX教程:制作异形建筑模型的外立面03-01
- mysql启动提示 Cannot allocate memory for the buffer pool03-01
- 脏读、幻读和不可重复读?为啥?03-01
- 解决virtualbox虚拟机设置nat网络提示无效设置03-01
- mysql索引之前缀索引03-01
- MySQL MGR单主模式详细搭建过程03-01
- 3DMAX制作玻璃风格水晶灯材质教程03-01
- 企业使用数据库的12种姿势03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 3DMAX教程:制作异形建筑模型的外立面
3DMAX教程:制作异形建筑模型的外立面
26-03-01 - mysql启动提示 Cannot allocate memory for the buffer pool
- 脏读、幻读和不可重复读?为啥?
脏读、幻读和不可重复读?为啥?
26-03-01 - MySQL MGR单主模式详细搭建过程
MySQL MGR单主模式详细搭建过程
26-03-01 - 3DMAX制作玻璃风格水晶灯材质教程
3DMAX制作玻璃风格水晶灯材质教程
26-03-01 - 程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)
程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)
26-03-01 - 关于数据库MySQL规范全面解读
关于数据库MySQL规范全面解读
26-03-01 - 数据库查询和数据库(MySQL)索引的优化建议
数据库查询和数据库(MySQL)索引的优化建议
26-03-01 - 鸟瞰 MySQL,唬住面试官!
鸟瞰 MySQL,唬住面试官!
26-03-01 - binlog server还是不可靠吗?
binlog server还是不可靠吗?
26-03-01
