升级到PHP5.5.x可大幅度提高服务器负载能力

到现在PHP5.5.x已经发展到5.5.6了,经过半年的发展已经非常稳定,并且解析编译代码的性能比php5.4.x高不少,同时php5.5.x内置了Opcache。使用Opcache可以显著提高PHP服务器的负载能力,大幅度降低语法解析编译所占用的CPU时间。

Zend OPcache 通过 opcode 缓存和优化提供更快的 PHP 执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。

使用OPcache只需要编译时增加参数 --enable-opcache 即可。
当然不要忘记修改php.ini支持OPcache

zend_extension = {PHP_ROO_PATH}/lib/php/extensions/no-debug-non-zts-20121212/opcache.so
opcache.fast_shutdown=1
opcache.enable_cli=1

下面这段是官方推荐的配置参数,可以进一步提升性能:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli= On
opcache.enable= On

我做了个简单的测试。
我在Codeigniter中新建了一个最简单的Controller用来进行性能测试
class Test extends CI_Controller {

public function index()
{
var_dump('hello world!');
}

使用ab进行测试 (ab在Apache的bin目录中)
$ ab -c 50 -n 1000 http://localhost/index.php/test

测试结果

Zend OPcache off    Request per second: 76.51 [#/sec]
Zend OPcache On 使用默认配置 Request per second: 531.42  [#/sec]
Zend OPcache On 使用优化配置  Request per second: 575.66  [#/sec]

可以看出使用了Opcache后,性能提高可不是一点点。

推荐使用:Zend Opcache 控制面板,效果如下图:
Opcache