Php加速原理及工具試驗

   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模塊爲正常;

wKiom1LjClfTdU17AAJY2RRe-ok728.jpg

 

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

部分測試信息以下,不一樣的機器測試結果不同:

wKioL1LjCjTAT9i-AAG-EQP8fbs370.jpg

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

部分測試信息以下:

wKiom1LjCleDpwc8AAH3oPHtv_I622.jpg

這就對比出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模塊爲正常;

wKioL1LjCjSQDM9WAAI7b_TIhfc983.jpg

4.測試加速效果:

1.在開啓xcache時測試:

[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

部分測試信息以下,不一樣的機器測試結果不同:

wKiom1LjCljQ0CpJAAJc6z5TAz8346.jpg

 

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

部分測試信息以下:

wKioL1LjCobSY0uaAAHl8BSiMTs767.jpg

通過對比能夠看到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模塊便可。

wKiom1LjCqmixMyxAAKHixwaGHk649.jpg

 

4.測試加速狀況:

1.開啓apc加速時:

[root@centos ~]# /usr/local/apache/bin/ab -n 50000 http://localhost/phpmyadmin

部分結果以下:

wKioL1LjCoaQkS0dAAI4HPb0KUg889.jpg

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

部分結果顯示:

wKiom1LjCqqzyNsvAAIm_xKxk_M429.jpg

能夠看到加速效果沒有前兩個明顯,可是仍是能起到一點加速能力的。

感謝你們閱讀!

相關文章
相關標籤/搜索