php引擎优化
6.1.php引擎缓存优化
首先,影响php效率的主要有2个因素。其一:libphp5.so需要编译php源代码成为opcode树(操作码);其二:php需要与数据库进行读写,数据库的并发能力很低。
于是php缓存加速器为的就是解决上述第一个原因,将opcode内容进行缓存,目的是防止php每次请求都重复编译php程序代码,因为在高访问量的网站上,大量的重复编译会小号很多资源和时事件,所以这里的瓶颈就是php的重复编译既影响了相应速度,又加重了服务器的负载,为了解决此问题,php加速器就这样诞生了
解决php与mysql之间的问题,用到了memcache,在php与mysql之间架设缓存,有效提高了数据库的并发数。
查看nginx编译参数
/application/nginx/sbin/nginx -V
查看nginx版本
/application/nginx/sbin/nginx -v
查看apache版本
/application/apache/bin/apachectl -v
查看apache编译参数
cat /application/apache/build/config.nice
查看Mysql编译参数
grep CONFIGURE_LINE /application/mysql/bin/mysqlbug
查看php编译参数
/application/php/bin/php -i | grep configure
6.1.1安装php引擎缓存加速器
echo 'export LC_ALL=C' >> /etc/profile
source /etc/profile
echo $LC_ALL
yum install perl-CPAN
(1) eaccelerator
tar xf eaccelerator-0.9.6.tar.bz2
cd eaccelerator-0.9.6
/application/php/bin/phpize
./configure \
--enable-eaccelerator=shared \
--with-php-config=/application/php/bin/php-config
make
make install
make install完成会显示这样一个目录,记录下来
ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/
(2)xcache
http://xcache.lighttpd.net
/application/php/bin/phpize
./configure \
--enable-xcache \
--with-php-config=/application/php/bin/php-config
make
make install
注意:xcache与eaccelerator只要装一个就好了
php缓存加速软件种类
xcache,eaccelerator,Zend,apc
如何选择
建议xcache,eaccelerator 二选一
xcache>eaccelerator
原因:
a.xcache更快,效率更高
b.xcache开发更活跃
操作码缓存加速软件↑
6.1.2数据库缓存memcache
php瓶颈:
1.本身需要解析php代码
2.需要请求数据库,数据库并发比较低
解决方案:在php与数据库之间架设缓存,memcached(客户端软件)
服务端memcached-1.4.3.tar.gz
客户端memcache-2.2.5.tgz
tar xf memcache-2.2.5.tgz
cd memcache-2.2.5
/application/php/bin/phpize
./configure --with-php-config=/application/php/bin/php-config
ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/
6.1.3PDO_MYSQL扩展模块
PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询并获取数据
tar xf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/application/php/bin/phpize
./configure \
--with-php-config=/application/php/bin/php-config \
--with-pdo-mysql=/application/mysql
make
make install
ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/
6.1.4安装图像处理程序及imagick扩展模块
BEGIN failed--compilation aborted at Makefile.PL line 24.
make[1]: *** [PerlMagick/Makefile] Error 2
make[1]: Leaving directory `/home/xiaoyi/tools/ImageMagick-6.5.1-2'
make: *** [all] Error 2
yum install perl-CPAN -y
tar xf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
make
make install
cd ..
tar xf imagick-2.3.0.tgz
cd imagick-2.3.0
/application/php/bin/phpize
./configure --with-php-config=/application/php/bin/php-config
make
make install
[root@apache imagick-2.3.0]# ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/
eaccelerator.so imagick.so memcache.so pdo_mysql.so
6.1.5配置扩展插件
cp /application/php/lib/php.ini /application/php/lib/php.ini.bak
vim /application/php/lib/php.ini
819 extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/"
尾行追加
1919 ; ----------------------
1920 extension = memcache.so
1921 extension = pdo_mysql.so
1922 extension = imagick.so
1923 ;-----------------------
快速复制:
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
(1)配置eaccelerator插件
1.配置eaccelerator缓存目录
mkdir -p /tmp/eaccelerator
chown ett /tmp/eaccelerator -R
此目录可以用tmpfs内存文件系统来存储,SSD固态硬盘
cat >> /application/php/lib/php.ini < [eaccelerator] extension=eaccelerator.so eaccelerator.shm_size="64" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="3600" eaccelerator.shm_prune_period="3600" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" EOF 如果配置了Zend [eaccelerator]要放在Zend的内容配置前 [root@apache imagick-2.3.0]# /application/php/bin/php -v PHP 5.3.27 (cli) (built: Apr 13 2015 10:53:41) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator (2)配置xcache插件加速 cp php-5.3.27/php.ini-production /application/php/lib/php.ini vim /home/xiaoyi/tools/xcache-1.3.2/xcache.ini编辑修改xcache配置参数 注释3 ;zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so 注释6 ;zend_extension_ts = c:/php/extensions/php_xcache.dll 取消注释8 extension = xcache.so cat /home/xiaoyi/tools/xcache-1.3.2/xcache.ini >> /application/php/lib/php.ini 最后通过phpinfo();检查都扩展都已安装
phpinfo(); ?> wget http://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz tar xf webbench-1.5.tar.gz cd webbench-1.5 make make install 565 webbench -c 100 -t 10 http://bbs.etiantian.org/forum.php 566 webbench -c 200 -t 10 http://bbs.etiantian.org/forum.php 567 webbench -c 300 -t 10 http://bbs.etiantian.org/forum.php 568 webbench -c 400 -t 10 http://bbs.etiantian.org/forum.php 569 webbench -c 500 -t 10 http://bbs.etiantian.org/forum.php 570 webbench -c 500 -t 30 http://bbs.etiantian.org/forum.php 571 webbench -c 600 -t 30 http://bbs.etiantian.org/forum.php 572 webbench -c 650 -t 30 http://bbs.etiantian.org/forum.php 573 webbench -c 550 -t 30 http://bbs.etiantian.org/forum.php 574 webbench -c 520 -t 30 http://bbs.etiantian.org/forum.php 575 webbench -c 510 -t 30 http://bbs.etiantian.org/forum.php 未安装eaccelerator之前忘记对网站进行压力测试了 - -