LAMP之AMP分離+XCache加速

實驗需求

搭建LAMP平臺,要求apache、php、MariaDB分別在不同服務器實現動靜分離,不需要考慮動態服務器和靜態服務器數據同步問題;

在LAMP平臺之上,搭建博客和論壇,博客和論壇分別位於不同主機;

公網用戶除了可以訪問httpd之外不能訪問內網任何一臺服務器;

部署完成使用ab命令進行壓力測試,並且部署Xcache爲php提供加速功能。

 

環境拓撲如下所示:

image_thumb[17]

 

部署思路

網絡環境:

  Apache服務器使用雙網卡,一塊網卡監聽外網用戶請求,一塊網卡和內網服務區進行通信,apache的內網網卡和其他服務器使用交換機進行連接。

Apache和php交互:

  Apache和php交互有三種方式,cgi,模塊方式,fcgi;但是cgi和fcgi跨主機訪問php服務器,所以apache和php服務器只能使用fcgi方式進行交互。

php和MariaDB交互:

  安裝bbs和blog時,會要求提供MariaDB數據庫和用戶密碼等信息,所以只需要在MariaDB數據創建好相關的數據庫和用戶,然後在保證php服務器可以訪問即可。

bbs和blog安裝問題:

  1. 安裝的程序包需要在apache和php服務器都存在一份,apache提供靜態頁面訪問,php提供動態頁面訪問;不考慮同步問題

  2. 如果出現要求對程序有寫入權限,靜態服務器設置apache的服務用戶daemon對文件可寫,動態服務器設置php-fpm的服務用戶nobody對文件可寫。

 

實驗環境


系統版本

主機名

ip地址

Apache

Centos 6.6 64位

web-01

外網:eth0: 1.1.1.1

內網:eth1:172.16.4.100

論壇

Centos 6.6 64位

bbs-01

內網: eth0:172.16.4.101

博客

Centos 6.6 64位

blog-01

內網: eth0:172.16.4.102

數據庫

Centos 6.6 64位

MariaDB-01

內網:eth0:172.16.4.136

使用軟件

apr-1.5.0.tar.bz2
apr-util-1.5.3.tar.bz2
httpd-2.4.10.tar.bz2
mariadb-5.5.43-linux-x86_64.tar.gz
php-5.4.40.tar.bz2
wordpress-3.3.1-zh_CN.zip
xcache-3.2.0.tar.bz2
Discuz_7.2_FULL_SC_UTF8.zip

Apache配置

解決依賴關係

yum -y groupinstall "Development tools""Desktop Platform Development"
yum -y install pcre-devel openssl-devel
 
tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install
cd ..
 
tar xf apr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr
make && make install
cd ..

編譯安裝httpd

tar xf httpd-2.4.10.tar.bz2
cd httpd-2.4.10
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install

修改PATH變量,讓系統可以直接找到http的命令路徑

[root@web-01 httpd-2.4.10]# vim/etc/profile.d/httpd.sh
export PATH=/usr/local/acaphe/bin:$PATH
[root@web-01 httpd-2.4.10]# ./etc/profile.d/httpd.sh
[root@web-01 httpd-2.4.10]# which httpd
/usr/local/apache/bin/httpd

設置啓動腳本

[root@web-01 httpd-2.4.10]# cp/usr/local/apache/bin/apachectl /etc/init.d/httpd24
[root@web-01 httpd-2.4.10]# vim /etc/init.d/httpd24
#!/bin/sh
# chkconfig: 35 85 15      #設置服務識別參數,3、5級別啓動,啓動順序85,關閉順序15
# description: Apache   #服務描述信息
[root@web-01 ~]# chkconfig --add httpd24
[root@web-01 ~]# chkconfig --level 35 httpd24 on
[root@web-01 ~]# chkconfig --list httpd24
httpd24          0:off  1:off  2:off  3:on   4:off  5:on   6:off

修改httpd配置文件設置監聽的端口         

[root@web01 ~]# vim /etc/httpd24/httpd.conf
Listen 1.1.1.1:80
Listen 172.16.4.100:80

啓動服務並訪問驗證

[root@web01 ~]# service httpd24 start
[root@web01 ~]# netstat -lnt | grep 80
tcp       0      0 172.16.4.100:80             0.0.0.0:*                   LISTEN     
tcp       0      0 1.1.1.1:80                  0.0.0.0:*                   LISTE

image_thumb[18]

 

虛擬主機配置

編輯主配置文件,註釋中心主機,啓用虛擬主機選項

[root@web01 ~]# vim /etc/httpd24/httpd.conf
#DocumentRoot "/usr/local/apache/htdocs"  
Include /etc/httpd24/extra/httpd-vhosts.conf

設置虛擬主機

[root@web01 ~]# vim/etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost *:80>
   ServerName bbs.discuz.com
   DocumentRoot "/www/bbs"
   <Directory "/www/bbs">
      Options none
      AllowOverride none
      Require all granted
   </Directory>
    ErrorLog"/var/log/httpd/bbs-error-log"
    CustomLog"/var/log/httpd/bbs-access-log" common
</VirtualHost>
<VirtualHost *:80>
   ServerName blog.wordpress.com
   DocumentRoot "/www/blog"
   <Directory "/www/blog">
      Options none
      AllowOverride none
      Require all granted
   </Directory>
    ErrorLog"/var/log/httpd/blog-error-log"
    CustomLog"/var/log/httpd/blog-access-log" common
</VirtualHost>

設置虛擬主機目錄

[root@web01 ~]# mkdir -p /www/{bbs,blog}
[root@web01 ~]# echo bbs > /www/bbs/index.html
[root@web01 ~]# echo blog > /www/blog/index.html

訪問測試虛擬主機

image_thumb[19]

image_thumb[20]

 

MariaDB配置

配置/dev/sda3爲lvm分區

 

[root@MariaDB-01 ~]# fdisk -l /dev/sda
 
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000471dd
 
   DeviceBoot      Start         End      Blocks  Id  System
/dev/sda1  *           1          26      204800  83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859   62914560   8e  Linux LVM
/dev/sda3           7859       11775    31462303+ 8e  Linux LVM

創建邏輯卷

[root@MariaDB-01 ~]# pvcreate /dev/sda3
[root@MariaDB-01 ~]# vgcreate myvg /dev/sda3
[root@MariaDB-01 ~]# lvcreate -L 15G -n mydata myvg
[root@MariaDB-01 ~]# lvs
  LV     VG  Attr       LSize  Pool Origin Data%  Meta% Move Log Cpy%Sync Convert
  mydata myvg-wi-a----- 15.00g                                                   
  root   vg0 -wi-ao---- 20.00g                                                   
  swap   vg0 -wi-ao----  2.00g                                                   
  usr    vg0 -wi-ao---- 10.00g                                                   
  var    vg0 -wi-ao---- 20.00g

格式化並掛載

[root@MariaDB-01 ~]# mkfs.ext4 /dev/myvg/mydata
[root@MariaDB-01 ~]# vim /etc/fstab
/dev/myvg/mydata        /mydata                 ext4    defaults        0 0
[root@MariaDB-01 ~]# mkdir /mydata
[root@MariaDB-01 ~]# mount -a

創建MariaDB服務用戶,並且設置數據目錄的屬主屬組爲服務用戶

[root@MariaDB-01 ~]# groupadd -r mysql
[root@MariaDB-01 ~]# useradd -g mysql -r -s/sbin/nologin -M mysql
[root@MariaDB-01 ~]# mkdir /mydata/data
[root@MariaDB-01 ~]# chown -R mysql:mysql/mydata/data/

安裝MariaDB並初始化

tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/
cd /usr/local/
ln -sv mariadb-5.5.43-linux-x86_64/ mysql
cd mysql/
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql--datadir=/mydata/data/

 

爲MariaDB提供主配置文件

[root@MariaDB-01 mysql]# cpsupport-files/my-large.cnf /etc/my.cnf
[root@MariaDB-01 mysql]# vim /etc/my.cnf
thread_concurrency = 2     #設置CPU核心數量乘以2
datadir = /mydata/data     #設置數據文件目錄
innodb_file_per_table = 1  #使用inoodb引擎,每表一個表文件

爲MariaDB提供啓動腳本

[root@MariaDB-01 mysql]# cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld
[root@MariaDB-01 mysql]# chkconfig --add mysqld
[root@MariaDB-01 mysql]# chkconfig mysqld on
[root@MariaDB-01 mysql]# chkconfig --list mysqld
mysqld           0:off  1:off  2:on   3:on   4:on   5:on   6:off

修改PATH環境變量,讓系統直接使用MariaDB相關命令

[root@MariaDB-01 ~]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@MariaDB-01 ~]# . /etc/profile.d/mysql.sh

啓動測試

[root@MariaDB-01 ~]# service mysqld start
Starting MySQL...                                         [  OK  ]
[root@MariaDB-01 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.43-MariaDB-log MariaDB Server
 
Copyright (c) 2000, 2015, Oracle, MariaDBCorporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clearthe current input statement.
 
MariaDB [(none)]>

 

動態服務器blog配置

Php-fpm配置

編譯安裝php依賴於MariaDB的文件,但是不需要對MariaDB進行任何配置,只需要解壓到指定目錄即可。

解壓MariaDB到指定位置

tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/
cd /usr/local/
ln -sv mariadb-5.5.43-linux-x86_64/ mysql

安裝php依賴軟件包

yum -y install libmcrypt libmcrypt-devel mhashmhash-devel openssl-devel bzip2-devel

編譯安裝php

tar xf php-5.4.40.tar.bz2
cd php-5.4.40
./configure --prefix=/usr/local/php5--with-mysql=/usr/local/mysql --with-openssl--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr--enable-xml  --enable-sockets--enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d--with-bz2
make && make install

爲php提供配置文件

[root@blog-01 php-5.4.40]# cp php.ini-production/etc/php.ini

爲php-fpm提供配置文件

[root@blog-01 php-5.4.40]# cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

爲php-fpm提供啓動腳本

[root@blog-01 php-5.4.40]# cpsapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@blog-01 php-5.4.40]# chmod +x/etc/rc.d/init.d/php-fpm
[root@blog-01 php-5.4.40]# chkconfig --add php-fpm
[root@blog-01 php-5.4.40]# chkconfig php-fpm on

修改php-fpm設置

[root@blog-01 php-5.4.40]# vim/usr/local/php/etc/php-fpm.conf
pm.max_children = 50         #每個進程的子進程數據
pm.start_servers = 5         #啓動時開啓的進程數
pm.min_spare_servers = 2     #最少空閒機艙內
pm.max_spare_servers = 8     #最多空閒進程
pid = /usr/local/php/var/run/php-fpm.pid
listen = 172.16.4.102:9000   #設置監聽的地址,需要保證web服務器可以訪問此地址。

啓動並驗證

[root@blog-01 php-5.4.40]# service php-fpm start
[root@blog-01 php-5.4.40]# netstat -lnt | grep:9000
tcp       0      0 172.16.4.102:9000           0.0.0.0:*                   LISTEN

查看啓動的進程

[root@blog-01 ~]# ps aux | grep php-fpm
root     12569  0.0  0.0 103252  832 pts/0    S+   06:48  0:00 grep php-fpm
root     97811  0.0  0.4 155924 4084 ?        Ss   04:05  0:01 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf)                                                                      
nobody   97812  0.0  2.5 175708 26068 ?        S   04:05   0:03 php-fpm: poolwww                                                                                                              
nobody   97813  0.0  2.5 175936 25992 ?        S   04:05   0:04 php-fpm: poolwww                                                                                                              
nobody   97814  0.0  2.1 170612 21372 ?        S   04:05   0:02 php-fpm: poolwww                                                                                                               
nobody   97815  0.0  2.0 170584 20980 ?        S   04:05   0:03 php-fpm: poolwww                                                                                                              
nobody   97816  0.0  2.0 168996 21084 ?        S   04:05   0:03 php-fpm: poolwww

apacheblog虛擬主機設置連接php

配置httpd支持fcgi,修改主配置文件取消註釋即可

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

修改虛擬主機配置,使所有php結尾的文件通通轉發到後端的blog服務器

[root@web01 ~]# vim/etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost *:80>
   ServerName blog.wordpress.com
   DocumentRoot "/www/blog"
   <Directory "/www/blog">
      Options none
       AllowOverridenone
      Require all granted
   </Directory>
    ErrorLog"/var/log/httpd/blog-error-log"
    CustomLog"/var/log/httpd/blog-access-log" common
  ProxyRequests Off          #關閉正向代理
  ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.4.102:9000/www/blog/$1   #訪問php結尾的所有文件,轉發給後端的php服務器
</VirtualHost>

設置完成重啓httpd服務

 

blog服務器準備目錄

[root@blog-01 php-5.4.40]# mkdir -p /www/blog

放入測試頁測試

[root@blog-01 ~]# vim /www/blog/index.php
<?php
phpinfo();
?>

訪問web服務器,web服務器看到訪問的文件是php結尾,就將請求轉發給了後端的blog服務器

image_thumb[21]

Blog服務器和MariaDB數據庫連接

MariaDB數據庫創建blog的庫和用戶,並且授權用戶對庫有所有權限

MariaDB [mysql]> create database wordpress;
MariaDB [mysql]> GRANT all ON wordpress.* TO'wordpress'@'172.16.4.102' IDENTIFIED BY 'blogpasswd';

 

測試php和MariaDB的連接

測試頁如下:

[root@blog-01 ~]# vim /www/blog/index.php
<?php
 $conn=mysql_connect('172.16.4.136','wordpress','blogpasswd');
  if ($conn)
   echo"連接數據庫成功";
  else
   echo"連接數據庫失敗"
?>

image_thumb[23]

安裝blog

[root@blog-01 ~]# unzip wordpress-3.3.1-zh_CN.zip
[root@blog-01 ~]# mv wordpress/* /www/blog/
[root@blog-01 ~]# cd /www/blog/
[root@blog-01 blog]# cp wp-config-sample.phpwp-config.php
[root@blog-01 blog]# vim wp-config.php
/** WordPress 數據庫的名稱 */
define('DB_NAME', 'wordpress');
 
/** MySQL 數據庫用戶名 */
define('DB_USER', 'wordpress');
 
/** MySQL 數據庫密碼 */
define('DB_PASSWORD', 'blogpasswd');
 
/** MySQL 主機 */
define('DB_HOST', '172.16.4.136');

web服務器需要爲用戶提供wordpress的靜態文件

[root@web01 ~]# mv wordpress/* /www/blog/
[root@web01 ~]# unzip wordpress-3.3.1-zh_CN.zip

在blog服務器和web服務器都準備好靜態文件之後,就可以進行安裝了,打開瀏覽器輸入,http://blog.wordpress.com/wp-admin/install.php即可安裝。

image_thumb[24]

配置完成之後登錄

image_thumb[25]

 

動態服務器bbs配置

Php-fpm配置

解壓MariaDB到指定位置

tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/
cd /usr/local/
ln -sv mariadb-5.5.43-linux-x86_64/ mysql

安裝php依賴軟件包

yum -y install libmcrypt libmcrypt-devel mhashmhash-devel openssl-devel bzip2-devel

編譯安裝php

tar xf php-5.4.40.tar.bz2
cd php-5.4.40
./configure --prefix=/usr/local/php5--with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir--with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt  --with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2
make && make install

爲php提供配置文件

[root@bbs-01 php-5.4.40]# cp php.ini-production/etc/php.ini

爲php-fpm提供配置文件

[root@bbs-01 php-5.4.40]# cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf

爲php-fpm提供啓動腳本

[root@bbs-01 php-5.4.40]# cp sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm
[root@bbs-01 php-5.4.40]# chmod +x/etc/rc.d/init.d/php-fpm
[root@bbs-01 php-5.4.40]# chkconfig --add php-fpm
[root@bbs-01 php-5.4.40]# chkconfig php-fpm on

編輯php-fpm的配置文件

[root@bbs-01 php-5.4.40]# vim /usr/local/php/etc/php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid
listen = 172.16.4.101:9000    #設置php-fpm監聽的地址,保證web服務器可以訪

問此地址

啓動php-fpm

[root@bbs-01 php-5.4.40]# service php-fpm start
[root@bbs-01 php-5.4.40]# netstat -lnt | grep :9000
tcp       0      0 172.16.4.101:9000           0.0.0.0:*                   LISTEN

配置web服務器和bbs服務器連接

虛擬主機設置,將php結尾的文件轉發到後端的bbs服務器

<VirtualHost *:80>
   ServerName bbs.discuz.com
    DocumentRoot "/www/bbs"
   <Directory "/www/bbs">
      Options none
      AllowOverride none
      Require all granted
   </Directory>
    ErrorLog"/var/log/httpd/bbs-error-log"
    CustomLog"/var/log/httpd/bbs-access-log" common
   ProxyRequests Off
   ProxyPassMatch^/(.*\.php)$ fcgi://172.16.4.101:9000/www/bbs/$1
</VirtualHost>

驗證apache和php的cfgi連接

[root@bbs-01 ~]# vim /www/bbs/index.php
<?php
phpinfo();
?>

image_thumb[26]

配置bbs服務器和MariaDB服務器連接

創建數據庫和數據庫用戶,並且授權用戶對數據庫具有全部權限

MariaDB [mysql]> create database bbsdb;
MariaDB [mysql]> GRANT all ON bbsdb.* TO 'runbbs'@'172.16.4.101' IDENTIFIED BY 'adm123';

測試php和mysql的連接

修改測試頁面

[root@bbs-01 ~]# vim /www/bbs/index.php
<?php
 $conn=mysql_connect('172.16.4.136','runbbs','adm123');
  if ($conn)
   echo"連接數據庫成功";
  else
   echo"連接數據庫失敗"
?>
 
<?php
phpinfo();
?>

image_thumb[27]

 

部署論壇

將Discuz的程序文件解壓,並且將upload中所有文件放置到網站目錄

[root@bbs-01 ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip-d Discuz
[root@bbs-01 ~]# mv Discuz/upload/* /www/bbs/

設置php-fpm的服務用戶爲下面文件的屬主或者對其設置寫權限,否則安裝時會報錯

[root@bbs-01 ~]# cd /www/bbs/
[root@bbs-01 bbs]# chown -R nobody templates/attachments/ forumdata/
[root@bbs-01 bbs]# chown -R nobodyuc_client/data/cache/ config.inc.php

web服務器也需要有靜態文件

[root@web01 ~]# mv Discuz/upload/* /www/bbs/
[root@web01 ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip-d Discuz

設置httpd的服務用戶對指定文件也需要有寫權限

[root@web01 ~]# cd /www/bbs/
[root@web01 bbs]# chown -R daemon templates/attachments/ forumdata/
[root@web01 bbs]# chown -R daemonuc_client/data/cache/ config.inc.php

設置完成之後,輸入httd://bbs.discuz.com/install即可安裝

image_thumb[28]

 

只需要根據錯誤提示進行排除即可

[root@bbs-01 bbs]# vim /etc/php.ini
short_open_tag = ON
[root@bbs-01 bbs]# service php-fpm restart

排錯之後繼續訪問安裝目錄,就可以繼續安裝了

image_thumb[29]

填寫數據庫的相關信息,添加數據庫服務器的地址和MariaDB創建的數據庫和用戶密碼,而後在設置bbs的管理員帳號密碼就可以繼續安裝了。

image_thumb[30]

剩下的根據提示安裝即可。

image_thumb[31]

 

出現上面這種情況是由於php服務器安裝了discuz之後導致程序發生變化從而導致動態服務器和靜態服務器的程序不一致,只需要手動把bbs服務器的文件和web服務器進行一次同步即可,如果想實現自動同步,需要使用其他服務,如initory+rsync、sersync等工具。

[root@bbs-01 bbs]# scp -r *[email protected]:/www/bbs/

動態服務器和靜態服務器同步文件之後,再次訪問bbs的網址就正常了。

image_thumb[32]

 

壓力測試

[root@client ~]# ab -n 3000 -c 100 httpd://www.discuz.com/index.php
省略部分內容……
 
Server Software:        Apache/2.4.10
Server Hostname:        bbs.discuz.com
Server Port:            80
 
Document Path:          /index.php
Document Length:        7691 bytes
 
Concurrency Level:      100
Time taken for tests:   58.782 seconds
Complete requests:      3000
Failed requests:        2137
   (Connect:0, Receive: 0, Length: 2137, Exceptions: 0)
Write errors:           0
Non-2xx responses:      29
Total transferred:      23679924 bytes
HTML transferred:       22723414 bytes
Requests per second:    51.04 [#/sec] (mean)    #每秒可以處理請求
Time per request:       1959.391 [ms] (mean)
Time per request:       19.594 [ms] (mean, across all concurrentrequests)
Transfer rate:          393.40 [Kbytes/sec] received
 
Connection Times (ms)
             min  mean[+/-sd] median   max
Connect:       0    2  10.2     0     135
Processing:  142 1926 1621.3   1355   31212
Waiting:     141 1924 1620.6   1354   31212
Total:       195 1928 1620.6   1356   31212
 
Percentage of the requests served within a certaintime (ms)
  50%   1356
  66%   1717
  75%   2312
  80%   2482
  90%   2945
  95%   4149
  98%   6231
  99%   9875
 100%  31212 (longest request)

 

 

部署xcachephp加速

編譯安裝Xcache

tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/usr/local/php5/bin/phpize
./configure --enable-xcache--with-php-config=/usr/local/php5/bin/php-config
make && make install

安裝結束會出現如下行

Installing shared extensions:    /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/

整合php和xcache,將XCache配置文件複製到php.d目錄下,使php可以讀取XCache配置文件

[root@bbs-01 xcache-3.2.0]# mkdir /etc/php.d
[root@bbs-01 xcache-3.2.0]# cp xcache.ini/etc/php.d/

接下來編輯/etc/php.d/xcache.ini,找到zend_extension開頭的行,修改爲如下行

zend_extension =/usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/xcache.so

設置完成之後,重啓php-fpm服務。

在bbs網頁目錄準備php測試頁面,訪問如果出現Xcache的內容說明Xcache安裝成功

image_thumb[33]


在次進行壓力測試

[root@client ~]# ab -n 3000 -c 100http://bbs.discuz.com/index.php
省略部分內容…………
 
Server Software:        Apache/2.4.10
Server Hostname:        bbs.discuz.com
Server Port:            80
 
Document Path:          /index.php
Document Length:        7687 bytes
 
Concurrency Level:      100
Time taken for tests:   9.983 seconds
Complete requests:      3000
Failed requests:        0
Write errors:           0
Total transferred:      24031128 bytes
HTML transferred:       23061000 bytes
Requests per second:    300.51 [#/sec] (mean)    
Time per request:       332.762 [ms] (mean)
Time per request:       3.328 [ms] (mean, across all concurrentrequests)
Transfer rate:          2350.82 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       0    1   3.9     0      25
Processing:   31  327  45.2   328     701
Waiting:      31  327  45.2   327     701
Total:        42  328  43.4   328     701
 
Percentage of the requests served within a certaintime (ms)
  50%    328
  66%    339
  75%    346
  80%    354
  90%    378
  95%    391
  98%    417
  99%    428
 100%    701 (longest request)

通過對比安裝Xcache前後的壓力測試結果,可以看出處理的請求數由每秒處理50個請求提升到了300個,當然由於是本機進行測試,沒有考慮帶寬的因素,所以性能稍高。

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