解决Zend OPcache huge_code_pages: mmap(HUGETLB) fail
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决Zend OPcache huge_code_pages: mmap(HUGETLB) fail相关的知识,希望对你有一定的参考价值。
前几日看到鸟哥介绍的 《让你的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
以上是关于解决Zend OPcache huge_code_pages: mmap(HUGETLB) fail的主要内容,如果未能解决你的问题,请参考以下文章
黄聪:PHP代码性能加速-开启Zend OPcache-优化CPU
modern php enable zend opcache
Zend OPCache - opcache.enable_cli 1 还是 0?它有啥作用?