前幾日看到鳥哥介紹的 《讓你的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內存功能配置