一.緩沖層級別的優化
1.xCache是把 PHP 操作碼緩存到內存中的 PHP 擴展中,XCache 將避免代價高昂且不必要的花費來重新編譯相同的 PHP 代碼去交付一個頁面,這一點上和Accelerator有點相似,我一直認為他們的機理是一樣的,不過xCahce是開源產品[opensource].
2.Zend Accelerator 站在解析和執行的中間,當頁面第一次被請求時,Zend 引擎解析了它,而Accelerator 把解析的映象放入內存,然后執行并把信息發送給瀏覽器。 好像也叫Zend Cache。
3.Memcache 守護程序 (memcached) 是一種高性能分布式對象緩存。memcached 的安裝位置介于應用程序與數據存儲之間,它將把對象保存在 RAM 中。每次緩存命中將替換到數據庫服務器的一次往返,使應用程序運行得更快。非常適合訪問量大的網站使用。
4.APC (Alternative PHP Cache)它對php opcode進行緩沖,而不是迫使php在每一次執行的時候都重新解釋每一個腳本.
二.優化代碼級別
Zend Optimizer就要對PHP 源碼作相應的調整,比如去掉一些PHP注釋,使得代碼更容易編譯。
三.編程時級別的優化
XDebug 是類似于軟件 x 光照片的內容:它將深入應用程序,揭露內部工作原理,并且揭示代碼如何度過其周期。擁有了 XDebug 度量之后 —— 而不是之前 —— 您可以優化代碼來調整算法、減少瓶頸并減輕過多的內存使用。
第二部分 加速演示
我在這里給大家用php5.4版本來演示在CentOS6.4下幾種不同的加速器的加速效果。
1.Opcache(在php5.5以后得版本中都已經被內置);
2.Xcache;
3.APC (Alternative PHP Cache)
演示之前首先安裝php5.4:
1.拆包:
[root@centos ~]# tar -jxvf php-5.4.24.tar.bz2 -C /usr/local/src/
2.進入 /usr/local/src/目錄,執行安裝:
[root@centos php-5.4.24]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all
3.最后make 和make install:
[root@centos php-5.4.24]# make && make install
4.創建php.ini,它是指明php擴展功能,如加速等功能的文件;
[root@centos php-5.4.24]# cp php.ini-development /usr/local/php/lib/php.ini
5.測試php與apache的連接:
在httpd站點主目錄下新建靜態網頁:
[root@centos ~]# cd /usr/local/apache/htdocs/
[root@centos htdocs]# vim index.php 寫入如下:
<?php
phpinfo();
?>
在瀏覽器內用(http://服務器地址) 方式訪問服務器;
出現php版本信息的話則連接正常。
一.Zend OPCache:
1.安裝
[root@centos ~]# tar -xzf zendopcache-7.0.2.tgz -C /usr/local/src/
[root@centos ~]# cd /usr/local/src/zendopcache-7.0.2/
添加pocache的擴展模塊:
[root@centos zendopcache-7.0.2]# /usr/local/php/bin/phpize
執行安裝環境:
[root@centos zendopcache-7.0.2]# ./configure --with-php-config=/usr/local/php/bin/php-config
執行最后的安裝:
[root@centos zendopcache-7.0.2]# make && make install
2.配置
編輯php.ini文件:
vim /usr/local/php/lib/php.ini 在下面添加下面內容:
[opcache]
zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
3.測試opcache.so的調用:
打開瀏覽器,輸入http://192.168.2.101/(具體主機ip),出現opcache模塊為正常;
4.安裝phpmyadmin并利用httpd的壓力測試工具ab進行性能測試;
安裝phpmyadmin并放到apache的站點主目錄下;
[root@centos ~]# unzip phpMyAdmin-4.1.5-all-languages.zip
[root@centos ~]# mv phpMyAdmin-4.1.5-all-languages /usr/local/apache/htdocs/phpmyadmin
5..在開啟opcache時測試:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分測試信息如下,不同的機器測試結果不一樣:
5.關閉opcache時測試:
關閉opcache:
具體做法是編輯/usr/local/php/lib/php.ini 文件,把我們加入的關于opcache的所有內容前面加分號(;),保存后重啟httpd服務[root@centos ~]# service httpd restart。
再次測試:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分測試信息如下:
這就對比出opcache加速時處理并發連接請求的速度提升。
二.Xcache:
1.安裝xcache:
[root@centos ~]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src/
[root@centos ~]# cd /usr/local/src/xcache-3.1.0
[root@centos xcache-3.1.0]# /usr/local/php/bin/phpize
[root@centos xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
[root@centos xcache-3.1.0]# make && make install
進入目錄/usr/local/src/xcache-3.1.0,將xcache.ini文件內容追加至php配置文件php.ini:
[root@centos xcache-3.1.0]# cat xcache.ini >> /usr/local/php/lib/php.ini
2.編輯usr/local/php/lib/php.ini文件
加入下面一行,指定xcache模塊位置:
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
3.測試xcache.so的調用:
打開瀏覽器,輸入http://192.168.2.101/(具體主機ip),出現xcache模塊為正常;
4.測試加速效果:
1.在開啟xcache時測試:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分測試信息如下,不同的機器測試結果不一樣:
2.關閉xcache時測試:
關閉xcache:具體做法是編輯/usr/local/php/lib/php.ini 文件,把我們加入的關于xcache的所有內容前面加分號(;),
保存后重啟httpd服務[root@centos ~]# service httpd restart。
再次測試:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分測試信息如下:
經過對比可以看到xcache的加速效果。
三.APC (Alternative PHP Cache)
1.安裝
tar -zxvf APC-3.1.10.tgz -C /usr/local/src/
[root@centos APC-3.1.10]# /usr/local/php/bin/phpize
[root@centos APC-3.1.10]# ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config
[root@centos APC-3.1.10]# make && make install
2.編輯:/usr/local/php/lib/php.ini
在后面加入:
[apc]
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/apc.so
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl = 3600
apc.cache_by_default = on
保存,重啟httpd服務;
3.測試加載模塊情況;
訪問服務器:http://192.168.2.101/ 結果出現apc模塊即可。
4.測試加速情況:
1.開啟apc加速時:
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分結果如下:
2.關閉apc加速時:
關閉apc加速:
編輯/usr/local/php/lib/php.ini:
把添加的apc的幾行代碼都屏蔽掉;(前面加分號;)
重啟httpd服務;[root@centos lib]# service httpd restart
查看處理能力,
[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin
部分結果顯示:
可以看到加速效果沒有前兩個明顯,但是還是能起到一點加速能力的。
感謝大家閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。