1、简介

       XCache是一个开源的 opcode 缓存器/优化器,是一个又快又稳定的 PHP opcode 缓存器,经过良好的测试并在大流量/高负载的生产机器上稳定运。他能够提高您服务器上的 PHP 性能,他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 5 ,降低服务器负载。XCache工程由 mOo 领队, 他也是 Lighttpd 的开发成员之一。

各分支的发布版本

 

2、前提:

1.1、安装压力测试工具webbench

webbench最多可以模拟3万个并发连接去测试网站的负载能力,比Apache自带的ab压力测试工具好,安装使用也特别方便。

[root@webtools]# wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
[root@webtools]# tar xf webbench-1.5.tar.gz
[root@webtools]# cd webbench-1.5
[root@webwebbench-1.5]# make && make install
[root@webwebbench-1.5]# echo $?
0

1.2、给本机hosts添加DNS记录

[root@web ~]# vim /etc/hosts
 
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.111   www.25linux.com
192.168.0.111   bbs.25linux.com
192.168.0.111   blog.25linux.com

1.3、使用webench进行压力测试

[root@web ~]# webbench -c 300 -t 30http://www.25linux.com/
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPLOpen Source Software.
 
Benchmarking: GET http://www.25linux.com/
300 clients, running 30 sec.
 
Speed=2940 pages/min, 722666 bytes/sec.
Requests: 1470susceed, 0 failed.

3、下载xcache

[root@webtool]# wget http://xcache.lighttpd.net/pub/Releases/3.1.2/xcache-3.1.2.tar.gz

4、安装

[root@web tool]# tar xfxcache-3.1.2.tar.gz 
[root@web tool]# cd xcache-3.1.2
# phpize是用来安装php扩展模块的,通过phpize可以建立php的外挂模块
[root@web xcache-3.1.2]#/usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
[root@web xcache-3.1.2]#  ./configure--enable-xcache --with-php-config=/usr/local/php/bin/php-config
[root@web xcache-3.1.2]#make && make install

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

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

表示安装成功!

5、配置

5.1创建xcache缓存文件:

[root@web xcache-3.1.2]# touch /tmp/xcache
[root@webxcache-3.1.2]# chmod 777 /tmp/xcache

5.2 创建xcache管理员密码:

[root@web xcache-3.1.2]# echo -n"12345678" | md5sum 
e10adc3949ba59abbe56e057f20f883e  -
记住以上md5密码,等下配置的时候会用到

5.3 拷贝xcache后台管理程序到网站根目录:

[root@web xcache-3.1.2]# cp-r htdocs/ /usr/local/nginx/html/www/xcache
[root@web xcache-3.1.2]#chown nginx:nginx -R /usr/local/nginx/html/xcache

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

[root@web xcache-3.1.2]# cat xcache.ini >>
/etc/php.ini

5.5 配置php支持xcache

[root@web xcache-3.1.2]# vim /etc/php.ini
[xcache-common]
extension = xcache.so
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "xcache"
xcache.admin.pass = "25d55ad283aa400af464c76d713c07ad"
[xcache]
xcache.shm_scheme =       "mmap"
xcache.size =               60M
xcache.count =                 1
xcache.slots =                8K
xcache.ttl  =                 0
xcache.gc_interval =           0
xcache.var_size =            4M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl  =             0
xcache.var_maxttl  =          0
xcache.var_gc_interval =     300
xcache.var_namespace_mode =    0
xcache.var_namespace =        ""
xcache.readonly_protection = Off
xcache.mmap_path =   "/tmp/xcache"
xcache.coredump_directory =   ""
xcache.coredump_type =         0
xcache.disable_on_crash =    Off
xcache.experimental =        Off
xcache.cacher =               On
xcache.stat  =               On
xcache.optimizer =           Off
[xcache.coverager]
xcache.coverager =           Off
xcache.coverager_autostart =  On
xcache.coveragedump_directory= ""

5.6 重启httpd服务

[root@web xcache-3.1.2]# service nginx restart
[root@webxcache-3.1.2]# service php-fpm restart

6、测试:

浏览器:输入http://www.25linux.com/xcache,提示输入用户名:xcahe,密码:12345678,即可登录

wKioL1cq4FHiivsHAACUx9KtHY0998.png

wKiom1cq33vSvfZjAAG-_0ZDtGE945.png


xcache安装成功!


7、压力测试

[root@web www]# webbench -c 300 -t 30http://www.25linux.com/
           # webbench -c 并发数 -t 运行测试时间  URL
 
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPLOpen Source Software.
 
Benchmarking: GET http://www.25linux.com/
300 clients, running 30 sec.
 
Speed=3120 pages/min, 766997 bytes/sec.
# 每秒钟响应请求数为3120 每秒钟传输数据量为766997,对比没有安装xcache之前的测试的数据,可以看到xcache能够提高PHP页面访问速度。
Requests: 1560 susceed, 0 failed.

补充:

 

压力及性能测试工作应该放到产品上线之前,而不是上线以后;

测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开页面是否流畅,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少;

更详细的进行某个页面测试,如电商网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大。

备注:webbench 做压力及性能测试时,该软件自身也会消耗CPU和内存资源,为了测试准确,建议将 webbench安装在其他的服务器上,已达到测试数据更加精确。