Php加速原理及工具測試php
本實驗相關軟件地址:http://pan.baidu.com/s/1dDuwvE5mysql
第一部分。Php加速分類:算法
一.緩衝層級別的優化sql
1.xCache是把 PHP 操做碼緩存到內存中的 PHP 擴展中,XCache 將避免代價高昂且沒必要要的花費來從新編譯相同的 PHP 代碼去交付一個頁面,這一點上和Accelerator有點類似,我一直認爲他們的機理是同樣的,不過xCahce是開源產品[opensource].數據庫
2.Zend Accelerator 站在解析和執行的中間,當頁面第一次被請求時,Zend 引擎解析了它,而Accelerator 把解析的映象放入內存,而後執行並把信息發送給瀏覽器。 好像也叫Zend Cache。apache
3.Memcache 守護程序 (memcached) 是一種高性能分佈式對象緩存。memcached 的安裝位置介於應用程序與數據存儲之間,它將把對象保存在 RAM 中。每次緩存命中將替換到數據庫服務器的一次往返,使應用程序運行得更快。很是適合訪問量大的網站使用。編程
4.APC (Alternative PHP Cache)它對php opcode進行緩衝,而不是迫使php在每一次執行的時候都從新解釋每個腳本.vim
二.優化代碼級別centos
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,
[root@centos xcache-3.1.0]# cat xcache.ini >> /usr/local/php/lib/php.ini
2.編輯usr/local/php/lib/php.ini文件
加入下面一行:
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
部分結果顯示:
能夠看到加速效果沒有前兩個明顯,可是仍是能起到一點加速能力的。
感謝你們閱讀!