您好,登錄后才能下訂單哦!
php引擎優(yōu)化
6.1.php引擎緩存優(yōu)化
首先,影響php效率的主要有2個(gè)因素。其一:libphp5.so需要編譯php源代碼成為opcode樹(shù)(操作碼);其二:php需要與數(shù)據(jù)庫(kù)進(jìn)行讀寫,數(shù)據(jù)庫(kù)的并發(fā)能力很低。
于是php緩存加速器為的就是解決上述第一個(gè)原因,將opcode內(nèi)容進(jìn)行緩存,目的是防止php每次請(qǐng)求都重復(fù)編譯php程序代碼,因?yàn)樵诟咴L問(wèn)量的網(wǎng)站上,大量的重復(fù)編譯會(huì)小號(hào)很多資源和時(shí)事件,所以這里的瓶頸就是php的重復(fù)編譯既影響了相應(yīng)速度,又加重了服務(wù)器的負(fù)載,為了解決此問(wèn)題,php加速器就這樣誕生了
解決php與mysql之間的問(wèn)題,用到了memcache,在php與mysql之間架設(shè)緩存,有效提高了數(shù)據(jù)庫(kù)的并發(fā)數(shù)。
查看nginx編譯參數(shù)
/application/nginx/sbin/nginx -V
查看nginx版本
/application/nginx/sbin/nginx -v
查看apache版本
/application/apache/bin/apachectl -v
查看apache編譯參數(shù)
cat /application/apache/build/config.nice
查看Mysql編譯參數(shù)
grep CONFIGURE_LINE /application/mysql/bin/mysqlbug
查看php編譯參數(shù)
/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完成會(huì)顯示這樣一個(gè)目錄,記錄下來(lái)
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只要裝一個(gè)就好了
php緩存加速軟件種類
xcache,eaccelerator,Zend,apc
如何選擇
建議xcache,eaccelerator 二選一
xcache>eaccelerator
原因:
a.xcache更快,效率更高
b.xcache開(kāi)發(fā)更活躍
操作碼緩存加速軟件↑
6.1.2數(shù)據(jù)庫(kù)緩存memcache
php瓶頸:
1.本身需要解析php代碼
2.需要請(qǐng)求數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)并發(fā)比較低
解決方案:在php與數(shù)據(jù)庫(kù)之間架設(shè)緩存,memcached(客戶端軟件)
服務(wù)端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擴(kuò)展模塊
PDO擴(kuò)展為PHP訪問(wèn)數(shù)據(jù)庫(kù)定義了一個(gè)輕量級(jí)的、一致性的接口,它提供了一個(gè)數(shù)據(jù)訪問(wèn)抽象層,這樣,無(wú)論使用什么數(shù)據(jù)庫(kù),都可以通過(guò)一致的函數(shù)執(zhí)行查詢并獲取數(shù)據(jù)
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擴(kuò)展模塊
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配置擴(kuò)展插件
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 ;-----------------------
快速?gòu)?fù)制:
extension = memcache.so
extension = pdo_mysql.so
extension = imagick.so
(1)配置eaccelerator插件
1.配置eaccelerator緩存目錄
mkdir -p /tmp/eaccelerator
chown ett /tmp/eaccelerator -R
此目錄可以用tmpfs內(nèi)存文件系統(tǒng)來(lái)存儲(chǔ),SSD固態(tài)硬盤
cat >> /application/php/lib/php.ini <<EOF
[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的內(nèi)容配置前
[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配置參數(shù)
注釋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
最后通過(guò)phpinfo();檢查都擴(kuò)展都已安裝
<?php
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之前忘記對(duì)網(wǎng)站進(jìn)行壓力測(cè)試了 - -
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。