优化方案(1)启用ZendOpcache,启用Opcache很简单,在PHP.ini配置文件中添加:zend_extension=opcache.soopcache.enable=1opcache.enable_cli=1(2)使用GCC4。8以上编译器编译安装包,只有用GCC4.8以上编译的PHP才会开启GlobalRegisterforopline和execute_data支持。(3)启用HugePage支持,首先在系统中启用HugePages,然后再启用Opcache的hugecodepages。HugePage操作系统默认内存以4KB为单位进行分页,需要对虚拟地址和内存地址进行转换,而这个转换需要查表。CPU会建立一个TLB(TranslationLookasideBuffer)来加速查表过程。显然,如果虚拟页越小,表中的条目数就会越多,而TLB的大小是有限的,条目数越多,TLBCacheMiss越高,所以如果我们能启用largememorypages,我们可以间接降低TLBCacheMiss。开启方式以CentOS6.5为例,使用命令:sudosysctlvm.nr_hugepages=128分配128块预留大页内存。$cat/proc/内存信息|grepHugeAnonHugePages:444416kBHugePages_Total:128HugePages_Free:128HugePages_Rsvd:0HugePages_Surp:0Hugepagesize:2048kB然后在PHP.ini中添加opcache.huge_code_pages=1
