阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP-各PHP加速器性能剖析

83次阅读
没有评论

共计 2805 个字符,预计需要花费 8 分钟才能阅读完成。

参与测试的加速器:Xcache,Opcache,hhvm

Xcache 简介

前面已经介绍了 PHP 加速器的原理和功用(参见 LAMP-PHP-fpm 服务器配置),xcache 作为目前使用广泛的 PHP 加速器之一,其性能比早期的 eAccelerator 加速器要优良,故本次就对比一下 PHP 程序在执行时加速器 xcache 对其的性能影响。

LAMP+Xcache 环境搭建 http://www.linuxidc.com/Linux/2014-05/101087.htm

FastCGI 模式编译安装 LAMP+XCache http://www.linuxidc.com/Linux/2014-03/99091.htm

FreeBSD 安装配置 XCache http://www.linuxidc.com/Linux/2012-06/63312.htm

CentOS 6.2 下 php-5.2.17 安装配置 XCache3 加速器 http://www.linuxidc.com/Linux/2012-11/73686.htm

安装 xcache

# 安装

tar xf xcache-3.0.3.tar.gz

cd xcache-3.0.3

/usr/local/php/bin/phpize # xcache 是作为 php 的外接模块安装的

./configure –enable-xcache –with-php-config=/usr/local/php/bin/php-config

make && make install

# 安装结束时,会出现类似如下行:

Installing shared extensions:    /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/

# 编辑 php.ini,整合 php 和 xcache:

# 首先将 xcache 提供的样例配置导入 php.ini

mkdir /etc/php.d # 这是前面安装 PHP 时配置的配置文件扫描目录

cp xcache.ini /etc/php.d # xcache.ini 文件在 xcache 的源码目录中。

# 接下来编辑 /etc/php.d/xcache.ini,找到 extension 开头的行,修改为如下行:

extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

# 如果 php.ini 文件中有多条 extension 指令行,要确保此新增的行排在第一位。

# 查看 xcache 是否已安装成功:

/usr/local/php/bin/php -m |grep -i xcache

Opcache 简介

新一代 PHP 加速器,由 Zend 公司研发,其实现原理与 Xcache 类似,都是把 PHP 执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,但性能却比 Xcache 更加优越,详见测试结果

安装 Opcache

wget http://pecl.php.net/get/zendopcache-7.0.2.tgz

tar xzf zendopcache-7.0.2.tgz

cd zendopcache-7.0.2

/usr/local/php/bin/phpize

./configure –with-php-config=/usr/local/php/bin/php-config

make

make install

# 配置文件设置,可直接在 php.ini 的最后添加如下内容,但在此在 PHP 配置文件的扫描目录 php.d 下配置新文件 opcache.ini,易于管理,php-config-scan-dir 是在编译安装 PHP 时定义的

# vi /etc/php.d/opcache.ini

[opcache]

zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/opcache.so

opcache.memory_consumption=128 # 分配的内存大小,单位 MB,即能够存储多少预编译的 PHP 代码

opcache.interned_strings_buffer=8 # interned 字符串占内存大小,单位 MB

opcache.max_accelerated_files=4000 # 允许缓存的文件最大数量

opcache.revalidate_freq=60 # 多长时间检查文件时间戳,以改变共享内存分配,单位为 s

opcache.fast_shutdown=1 # 是否开启快速关闭队列功能,1 为开启

opcache.enable_cli=1 # 允许缓存 CLI 下的 PHP 程序

# 检查模块安装成功:/usr/local/php/bin/php -m |grep -i opcache

hhvm 简介

HipHop VM(HHVM) 是 Facebook 推出的用来执行 PHP 代码的虚拟机,它是一个 PHP 的 JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点;

hhvm 将 PHP 代码编译转换成 C ++ 程序来执行,执行效率得到显著提升;

根据 Facebook 透漏,HHVM 在速度方面获得了显著改进,比目前使用的 PHP 解释器快 60%,而使用内存减少 90%

HHVM 宣布支持 FastCGI http://www.linuxidc.com/Linux/2013-12/94254.htm

安装 hhvm

因为目前 hhvm 还处以研发阶段,国内用于生产环境的还很少,安装所需的环境比较复杂(如 CentOS6.5 下的 boost-system 和 boost-filesystem 的版本就过低),故本人还在调试测试阶段,等出了测试结果,再将 hhvm 的测试结果一并贴出。

测试步骤

# 另找一台虚拟机,对 HTTPD 服务器(192.168.1.110)进行压力测试

# 测试工具使用 Apache 自带的基准测试工具 ab 即可

# 测试方法如下:

ab -c 20 -n 2000 http://192.168.1.110:8080/index.php

# 注:测试采用 20 并发,在不影响访问的情况下,查看 xcache 加速器的加速效果;测试页面使用上一讲刚部署的 phpMyAdmin 的登录页面 index.php 即可

# 注:为了更好的测试出 PHP 加速器的缓存特性,可连续多测试几次,得到稳定值

测试结果对比

LAMP- 各 PHP 加速器性能剖析

从上图可以看出,PHP 加速器对 PHP 程序的执行过程加速明显;综合每秒的请求数和 PHP 服务器的负载来看:

xcache 使得 PHP 程序的执行效率提升了 3 - 4 倍;

Opcache 使得 PHP 程序的执行效率提升了 6 - 7 倍;

据说 hhvm 对 PHP 程序的加速效果更加强悍。

基于 Ubuntu 14.04 下搭建 HHVM 环境 http://www.linuxidc.com/Linux/2014-05/101747.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2805字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中