php優化(二)


配置xcache插件加速



1.xcache.ini參數說明

  xcache軟件的解壓目錄xcache-3.2.0下存在一個名爲xcache.ini的配置文件,即爲xcache的配置文件。參數說明如下:

xcache配置文件參數解釋說明

[xcache-common]

extension = xcache.so

加載xcache.so,路徑相對於extension_dir的配置。自3.0版本開始不再使用zend_extension加載xcache的方式

[xcache.admin]

xcache.admin.enable_auth = On

激活管理員認證

xcache.admin.user = “mOo”

xcache.admin.pass = “md5 encrypted password”

執行xcache管理員用戶名和密碼,密碼根據md5加密產生,留空表示禁止管理頁面
[xcache]開始xcache緩存參數配置段,下面所有的初始值即爲默認值,除非明確說明。
xcache.shm_scheme = “mmap”設置XCache如何從系統分配共享內存
xcache.size  =  60M0爲禁止緩存,非0則啓用緩存。需要注意系統所允許的mmap最大值
xcache.count =   1指定將cache切分成多少塊,官方推薦設置爲服務器cpu的數量**
grep-c processor /proc/cpuinfo
xcache.slots =  8K只是作爲bash個數的參考值,緩衝超過這個個數的內容沒有任何問題
xcache.ttl   =  0設置cache對象的生存期TTL(time to live)
0爲永不過期
xcache.gc_interval =  0回收期掃描過期的對象回頭內存空間的間隔,0爲不掃描,其他值的單位是
xcache.var_size  =     4M
xcache.var_count =      1
xcache.var_slots =      8K
xcache.var_slots =      0
xcache.var_gc_interval =  300
這幾個值和上面的幾個類似,只不過用於變量緩存,而不是opcode緩存
xcache.readonly_protection = Off如果啓用了該參數,將會略微降低性能,但會提高一定的安全係數,這個選項對於
xcache.mmap_path = /dev/zero 無效
xcache.mmap_path =  “/dev/zero”對於*nix,xcache.mmap_path是一個文件路徑而非目錄。如果要啓用該參數 請使用“/tmp/xcache”這樣的路徑,而是“/dev/*”如果開啓了xcache.readonly_protection參數,不同進程組的PHP將不會共享同一個/tmp/xcache路徑
xcache.coredump_directory =  “”當XCache crash後,是否把數據保存到指定路徑
xcache.disable_on_crash =   Off當xcache發生crash時,自動關閉xcache緩存

有關更多參數說明請看配置文件對應註釋說明或參考官方文檔:

http://xcache.lighttpd.net/wiki/XcacheIni

2.操作

因爲xcache已經提供好配置文件我們追加到php.ini即可

[root@web02 xcache-3.2.0]# cat xcache.ini >>/application/php/lib/php.ini


3.檢查XCache加速情況

[root@web02 ~]# /application/php/bin/php -vPHP 5.5.32 (cli) (built: May 24 2016 13:55:46) Copyright (c) 1997-2015 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies    with XCache v3.2.0, Copyright (c) 2005-2014, by mOo    with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo

提示:eAccelerator和xcache在php中只能有一個否則會出現error

修改完成後必須要重啓PHP,否則不生效

phpinfo顯示如下

 640?wx_fmt=png&wxfrom=5&wx_lazy=1


4.配置Web界面查看XCache緩存加速信息

XCache支持Web界面管理,使用web界面生產md5地址如下:


http://xcache.lighttpd.net/demo/cacher/mkpassword.php 通過輸入字符串生產Xcache管理員的密碼,這裏使用MD5sum生成明文密碼。

[root@web02 xcache-3.2.0]# echo -n "123456"|md5sum e10adc3949ba59abbe56e057f20f883e  -

修改配置php.ini,在xcache.admin標籤段修改

[xcache.admin]xcache.admin.enable_auth = Onxcache.admin.user = "abcdocker"    #此處是用戶名xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"#此處是md5加密的密碼路徑提示:要求密碼必須要使用md5加密

然後複製xcache軟件下面的緩存加速管理PHP程序到站點目錄下:

[root@web02 xcache-3.2.0]# cp -a htdocs/ /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# chown -R www.www /application/nginx/html/blog/xadmin[root@web02 xcache-3.2.0]# pkill php-fpm[root@web02 xcache-3.2.0]# /application/php/sbin/php-fpm

可以直接在瀏覽器上輸入:域名/IP/xadmin 就可以訪問

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 

進入xcache界面

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 如果我們沒有設置時區,會出現警告,解決方法如下 


修改時區

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Chongqing
去掉註釋,修改地址

修改完需要重啓

配置ZendOpcache參數

在php.ini的最後面加入下面幾行:

[opcache]
zend_extension=/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/opcache.so;
extension=opcache.so
opcache.memory_consumption=32   
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=1000  
opcache.revalidate_freq=60   
opcache.fast_shutdown=1
opcache.enable_cli=1

opcache參數說明

opcache參數解釋說明
opcache.memory_consumption=32Opcache共享內存空間大小,用於存放precompiled PHP code,默認爲64,單位爲Mbytes
opcache.interned_strings_buffer=8
默認值爲4,interned strings內存的數量,單位是M
opcache.max_accelerated_files=1000
默認值是2000,Opcache哈希表的key的最大數量
opcache.revalidate_freq=60
默認值2,檢查文件時間戳的頻率,用於共享內存分配的變化。
opcache.fast_shutdown=1
默認值爲0,如果激活,一個快速的關閉隊列獎盃用來加速代碼
opcache.enable_cli=1
默認值爲0,激活PHP CLI的OPcache,用於測試和調試

更多參數說明:

[root@web02 zendopcache-7.0.5]# cd zendopcache-7.0.5
[root@web02 zendopcache-7.0.5]# less README

再次提示:

ZendOPcache是PHP官方的新一代的緩存加速軟件,php5.5以前可以用ZendOPcache軟件以插件擴展的方式安裝,從PHP5.5版本開始整合到PHP軟件裏,編譯時只需要指定一個參數即可,例如:–enable-opcache

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 phpinfo顯示如下信息

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 

PHP指定MySQL的編譯參數帶來的問題

如果我們再編譯的時候指定了–with-mysql=mysqlnd和–with-pdo-mysql=mysqlnd的參數進行編譯,例如:

./configure \
--prefix=/application/php5.5.32 \
--with-mysql=/application/mysql/ \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
.....省略其他參數

則再生產中可能會遇到socket連接問題,解決方法是在php.ini裏添加如下命令

pdo_mysql.default_socker=/application/php5.5.32/tmp/mysql.sock

生成環境PHP擴展插件的安裝建議

1.PHP的安裝插件表格列表

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


2.生成環境查看的安裝建議

(1)對於功能性插件,如果業務產品不需要使用,可以暫時不考慮安裝,例如:PDO_MYSQL\memcached\imagick等。如果不清楚是否需要,還是最好裝上,有備無患。

(2)對於性能優化插件,eAccelerator、xcache、ZendOPcache、APC可以安裝任一種,具體情況看業務需求,在選擇時最好能搭建相關環境進程壓力測試,然後根據實際測試結果來選擇,用數據說話。


3.PHP加速插件的測試結果對比

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


針對PHP加速器比較結果進行總結

1.通過測試得出eAccelerator在請求時間和內存佔用綜合方面是最好的

2.通過測試得出使用加速器比無加速器的請求時間快了3倍左右

3.通過各個官方觀察,Xcache是更新最快的,說明它是最有發展的。


那我們到底用哪個加速器呢?

首先,用一定比不用好,其次每個加速器還有一些可以優化的參數,所以要根據你的系統環境而定,此外,xcache和zendopcache這兩款加速器的潛力還是很大的。


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