LAMP xcache緩存技術及開啓壓縮傳輸



結合上一章的LAMP,基本架構圖,以及簡單的優化。


wKioL1Pt7oait_TjAAFXL_24FqE766.jpg

客戶端請求訪問某php動態資源,訪問到httpd的地址,http通過代理將請求響應給後端的php,php接到請求後向數據庫調取數據,數據庫準備好數據返回給php,php將動態資源準備好後返回給http,http結合php的動態資源以及本地的靜態資源將動態php頁面返回給客戶端。

可以看看哪些大網站在使用LAMP架構。

wKiom1Pt71yDk3cvAAE8z2pnpdQ247.jpg


1.)使用apache bench 對網站進行壓力測試。

簡稱ab,是apache自帶的壓力測試工具,可以通過測試得出apache每秒能響應多少個訪問。並且不侷限於對apache測試,也使測試nginx等web服務器。


命令選項:

-n:  總測試訪問次數
-c:  併發數
-t:  測試時指定時間,就是在固定的時間內對網站壓力測試
-p:  POST數據文件
-v:  顯示詳細信息,可以跟多個-v選項



2.)指定訪問次數,併發數。

# ab -n 500 -c 100 http://bbs.zhang.com/upload/forum.php

Requests per second:    23.94 [#/sec] (mean) #每秒完成23個響應
Time per request:       4177.809 [ms] (mean) #總請求耗費4177毫秒
Time per request:       41.778 [ms] (mean, across all concurrentrequests) #每個請求41毫秒
Transfer rate:          313.04 [Kbytes/sec] received  #平均輸出速率
 
Requests per second:    27.44 [#/sec] (mean)
Time per request:       3643.652 [ms] (mean)
Time per request:       36.437 [ms] (mean, across all concurrentrequests)
Transfer rate:          358.93 [Kbytes/sec] received 
 
Requests per second:    26.36 [#/sec] (mean)
Time per request:       3793.345 [ms] (mean)
Time per request:      37.933 [ms] (mean, across allconcurrent requests)
Transfer rate:          344.77 [Kbytes/sec] received


3.)安裝php加速工具xcache。

xcache官方介紹:

Xcache是一個快速又穩定的PHP opcode緩存器,經過良好的測試在大流量/高負載的生產機器上穩定運行,支持線程安全/windows。

主要是xcache對於PHP新版本的支持比較好。

# tar xf xcache-3.0.3.tar.gz
# cd xcache-3.0.3
# /usr/local/php5/bin/phpize
#./configure --enable-xcache--with-php-config=/usr/local/php5/bin/php-config
#make && make install
 
/usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/ 
#這個在編譯安裝完成後生成的,後面需要用到。

#mkdir /etc/php.d
# cp xcache.ini /etc/php.d/
#vim /etc/php.d/xcache.ini
extension =/usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
# service php-fpm restart


4.)同樣的併發數,訪問數再次測試。

整體還是提升了很多
Requests per second:    90.11 [#/sec] (mean)
Time per request:       1109.771 [ms] (mean)
Time per request:       11.098 [ms] (mean, across all concurrentrequests)
Transfer rate:          1114.30 [Kbytes/sec] received


5.)開啓http網頁壓縮傳輸。

mod_deflate是aoache自帶的壓縮工具,模塊默認是註釋掉的。

這裏只是針對discuz單個虛擬主機做的傳輸壓縮,如果對所有的虛擬主機都進行傳輸壓縮,放到http.conf配置文件中即可。

# vim /etc/httpd/httpd.conf
LoadModule deflate_module modules/mod_deflate.so
 
# vim /etc/httpd/extra/httpd-vhosts.conf
 
<VirtualHost *:80>
       ServerName bbs.zhang.com
       DocumentRoot "/var/www/php/Discuz"
       ProxyRequests Off
       ProxyPassMatch ^/(.*\.php)$fcgi://172.16.32.12:9000/var/www/php/Discuz/$1
       <Directory "/var/www/php/Discuz">
               Options none
               AllowOverride none
               Require all granted
        </Directory>
 
       SetOutputFilter DEFLATE  
       AddOutputFilterByType DEFLATE text/plain #指定壓縮的類型
       AddOutputFilterByType DEFLATE text/html
       AddOutputFilterByType DEFLATE application/xhtml+xml
       AddOutputFilterByType DEFLATE text/xml
       AddOutputFilterByType DEFLATE application/xml
       AddOutputFilterByType DEFLATE application/x-javascript
       AddOutputFilterByType DEFLATE text/javascript
        AddOutputFilterByTypeDEFLATE text/css
       AddOutputFilterByType DEFLATE application/x-httpd-php
 
       DeflateCompressionLevel 9 #壓縮級別
       BrowserMatch ^Mozilla/4 gzip-only-text/html #特定的瀏覽器不壓縮傳輸
       BrowserMatch ^Mozilla/4\.0[678] no-gzip
       BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
</VirtualHost>

#service httpd reload


再次查看ab壓力測試結果。

Requests per second:    101.69 [#/sec] (mean)
Time per request:       983.361 [ms] (mean)
Time per request:       9.834 [ms] (mean, across all concurrentrequests)
Transfer rate:          1260.27 [Kbytes/sec] received
 
Requests per second:    112.39 [#/sec] (mean)
Time per request:       889.791 [ms] (mean)
Time per request:       8.898 [ms] (mean, across all concurrentrequests)
Transfer rate:          1392.96 [Kbytes/sec] received


總結:以上只是針對目前所簡單瞭解的進行的測試,沒有計算keepalive,以及event線程,php優化,和加入memcache等。

優化需要計算到服務器性能,內核優化,帶寬,及每日的訪問量,什麼時間段訪問次數多等等。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章