1、简介
XCache是一个开源的 opcode 缓存器/优化器,是一个又快又稳定的 PHP opcode 缓存器,经过良好的测试并在大流量/高负载的生产机器上稳定运。他能够提高您服务器上的 PHP 性能,他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍,降低服务器负载。XCache工程由 mOo 领队, 他也是 Lighttpd 的开发成员之一。
各分支的发布版本
当前稳定版本: 3.2.x (全面支持 5.1 ~ 5.6)
XCache 3.2.0.
演示页面: http://xcache.lighttpd.net/demo/
当前稳定版本: 3.1.x (全面支持 5.1 ~ 5.5)
XCache 3.1.2.
2、前提:
1.1、安装压力测试工具webbench
webbench最多可以模拟3万个并发连接去测试网站的负载能力,比Apache自带的ab压力测试工具好,安装使用也特别方便。
123456 | [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记录
1234567 | [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进行压力测试
123456789 | [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
1 | [root@webtool] # wget http://xcache.lighttpd.net/pub/Releases/3.1.2/xcache-3.1.2.tar.gz |
4、安装
12345678910 | [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缓存文件:
12 | [root@web xcache-3.1.2] # touch /tmp/xcache [root@webxcache-3.1.2] # chmod 777 /tmp/xcache |
5.2 创建xcache管理员密码:
123 | [root@web xcache-3.1.2] # echo -n"12345678" | md5sum e10adc3949ba59abbe56e057f20f883e - 记住以上md5密码,等下配置的时候会用到 |
5.3 拷贝xcache后台管理程序到网站根目录:
12 | [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:
12 | [root@web xcache-3.1.2] # cat xcache.ini >> /etc/php .ini |
5.5 配置php支持xcache
1234567891011121314151617181920212223242526272829303132333435 | [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服务
12 | [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,即可登录
xcache安装成功!
7、压力测试
123456789101112 | [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安装在其他的服务器上,已达到测试数据更加精确。