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

纵饮孤独 提交于 2019-12-03 03:29:31

前几日看到鸟哥介绍的 《让你的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

https://www.geek-share.com/detail/2654715223.html 

让PHP7达到最高性能的几个Tips

http://www.laruence.com/2015/12/04/3086.html 

Linux下HugePage内存功能配置

https://www.geek-share.com/detail/2633503427.html 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!