解决Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory报错

在尝试为服务器启用Hugepages以提升PHP7性能时,遇到 Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory 的错误。通过检查系统发现并非内存不足,而是Hugepage未开启。启用Hugepage并重新启动php-fpm后,问题得到解决。参考了《让你的PHP7更快之Hugepage》等文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几日看到鸟哥介绍的 《让你的PHP7更快之Hugepage》, 于是想试试手给服务器加上,参照格式安装好扩展,调整好配置文件,然后重启php-fpm,结果启动一直报Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory

 

看字面意思是无法分配内存?怎么会呢,机器内存还是很充足的,这点排查掉了。后面查找相关资料得到,是因为系统Hugepage不够,一般系统Hugepage是没有开启的,可以通过下面命令查看

cat /proc/meminfo | grep Huge
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB


HugePages_Total是0,加上就可以了,加上办法

sysctl vm.nr_hugepages=128
cat /proc/meminfo | grep Huge
HugePages_Total:     128
HugePages_Free:      123
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

已经加上了,重启php-fpm,问题解决。

 

参考文章:

让你的PHP7更快之Hugepage

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值