之前一直使用的PHP版本都是6.5/6.6的,这次的项目开发要求使用PHP7,在网上大概看了下,发现PHP7的性能较之前相比提升了很多,所以使用PHP7我也没啥意见,欣然接受。
今天温州一家客户做活动,导致用户量突然多了起来,原本服务器现在还处于内测阶段,服务器以及PHP环境并没有做相关的性能优化,并且服务器配置还比较低,导致php-fpm进程出现挂死状态,一度服务全挂。
好,废话不多说,今天主要记录PHP7的相关优化,资料也是从网上查了许久,整理了下,准备晚上优化看看效果。
1、开启Zend Opcache
Zend Opcache支持php5.2.0+的版本,但是Zend Opcache到底是什么呢?官方介绍翻译是通过代码缓存和优化提供了更快的PHP执行。根据官方的介绍为:通过在share memory中存储已经编译好的代码来提升执行速度(PS:可以通过配置来决定他的存储时间),省去了从磁盘读取再编译的时间(PS:这其实是时间开销最大的部分),此外,还通过一些代码优化模式来提升执行速度(PS:官方并没有给出这个优化原理)。好以上是官方介绍,我尽量多读几遍,理解理解。
下面是启动方法,在php.ini文件加入:
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
2、Hugepage 大页内存管理方式
关于Hugepage详细介绍可参考:http://blog.csdn.net/leshami/article/details/8777639
首先在系统中开启Hugepage,然后开启Opcache的huge_code_pages:
sysctl vm.nr_hugepages=512 ##分配512个预留的大页内存
cat /proc/meminfo | grep Huge
然后在php.ini中加入:
opcache.huge_code_pages=1
3、Opcache File Cache
开启Opcache File Cache,通过开启这个可以让Opcache把opcode缓存缓存到外部文件中,对于一些脚本,会有明显的性能提升。在php.ini中加入:
opcache.file_cache=/tmp
4、PGO
这块不是很理解,后面再更新。。。