1. 程式人生 > >解決Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory報錯

解決Zend OPcache huge_code_pages: mmap(HUGETLB) failed: Cannot allocate memory報錯

lan share size led 功能 false opcache not als

前幾日看到鳥哥介紹的 《讓你的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) failed: Cannot allocate memory報錯