- 论坛徽章:
- 0
|
本帖最后由 zxpxyz 于 2010-12-14 10:39 编辑
前两天有个朋友发了篇帖子证明了nging+php-fpm和apache+mod_php的差别不是很大,并且又咨询nginx+php-fpm和apache+php-fpm的性能对比。
因为目前的工作环境没有php,所以我昨天搭了一个环境做了一下简单测试。
php-fpm的的搭建方法我参考张宴的博文《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创] 》(http://blog.s135.com/nginx_php_v6)
使用的是nginx 0.8.53 php 5.2.14 apache2.2.17 mod_fastcgi-2.4.6 这几个软件。
简述一下php的安装过程
yum install -y mysql-server mysql-devel pcre-devel
tar zxf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1/
./configure --prefix=/usr/local
make
make install
cd ../
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
make
make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make
make install
cd ../../
tar zxf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make
make install
cd ../
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
tar zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make
make install
cd ../
tar zxf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14/
./configure --prefix=/opt/php --with-config-file-path=/opt/php/etc --with-mysql --with-mysqli --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap
make ZEND_EXTRA_LIBS='-liconv'
make install
cd ../
修改php-fpm.conf
<value name="owner">apache</value>
<value name="group">apache</value>
<value name="mode">0644</value>
<value name="user">apache</value>
<value name="group">apache</value>
---------------------------------------------
tar zxvf nginx-0.8.53.tar.gz
cd nginx-0.8.35/
./configure --prefix=/usr/local/nginx
make && make install
cd ../
修改一下nginx的配置文件
worker_processes 4;
worker_connections 51200;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
----------------------------------------
tar zxf httpd-2.2.17.tar.gz
cd httpd-2.2.17
./configure --prefix=/opt/httpd --enable-so --enable-cgi --enable-rewrite --enable-cgid --with-mpm=worker
make all install
cd ../
tar zxf mod_fastcgi-current.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/opt/httpd
make install
修改配置文件
ServerLimit 16
StartServers 2
MaxClients 450
MinSpareThreads 50
MaxSpareThreads 150
ThreadsPerChild 50
User apache
Group apache
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
ScriptAlias /fcgi-bin/ "/opt/httpd/fcgi-bin/"
FastCGIExternalServer /opt/httpd/fcgi-bin/php-cgi -host 127.0.0.1:9000 -pass-header Authorization
AddHandler php-fastcgi .php
Action php-fastcgi /fcgi-bin/php-cgi
</IfModule>
---------------------------------
apache跑81
nginx跑82
---------------------------------
测试apache+php-fpm
webbench -c 500 -t60 http://192.168.0.108:81/test.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.0.108:81/test.php
500 clients, running 60 sec.
Speed=3975 pages/min, 3098471 bytes/sec.
Requests: 3975 susceed, 0 failed.
机器状态
top - 10:12:42 up 1:14, 1 user, load average: 1.05, 0.35, 0.21
Tasks: 136 total, 1 running, 135 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.9%us, 3.0%sy, 0.0%ni, 89.2%id, 0.0%wa, 0.0%hi, 3.6%si, 0.3%st
Mem: 900096k total, 597488k used, 302608k free, 47292k buffers
Swap: 2097144k total, 0k used, 2097144k free, 311028k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5138 apache 15 0 21120 3956 2276 S 3.6 0.4 0:00.34 php-cgi
3689 apache 18 0 278m 5400 1236 S 1.0 0.6 0:01.33 httpd
4965 apache 18 0 277m 5076 1232 S 1.0 0.6 0:00.40 httpd
3445 root 15 0 9936 2892 2304 S 0.7 0.3 0:01.20 sshd
3692 apache 18 0 278m 5396 1236 S 0.7 0.6 0:00.85 httpd
3695 apache 18 0 278m 5360 1236 S 0.7 0.6 0:01.45 httpd
3803 apache 18 0 278m 5348 1236 S 0.3 0.6 0:01.34 httpd
4020 apache 18 0 278m 5420 1228 S 0.3 0.6 0:00.70 httpd
4048 apache 18 0 278m 5376 1232 S 0.3 0.6 0:00.79 httpd
4050 apache 18 0 278m 5436 1232 S 0.3 0.6 0:00.82 httpd
4964 root 15 0 2352 1064 808 R 0.3 0.1 0:00.21 top
4995 apache 18 0 277m 5040 1232 S 0.3 0.6 0:00.23 httpd
----------------------------------------
测试nginx+php-fpm
webbench -c 500 -t60 http://192.168.0.108:82/test.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.0.108:82/test.php
500 clients, running 60 sec.
Speed=3556 pages/min, 2811849 bytes/sec.
Requests: 3556 susceed, 0 failed.
机器状态
top - 10:16:02 up 1:17, 1 user, load average: 2.97, 1.61, 0.71
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
Cpu(s): 11.3%us, 9.3%sy, 0.0%ni, 74.2%id, 0.0%wa, 0.0%hi, 5.3%si, 0.0%st
Mem: 900096k total, 590464k used, 309632k free, 47628k buffers
Swap: 2097144k total, 0k used, 2097144k free, 311736k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3585 nobody 15 0 16896 13m 688 S 7.0 1.5 0:06.53 nginx
5153 apache 15 0 21120 3952 2272 S 4.6 0.4 0:01.20 php-cgi
5157 apache 16 0 21120 3948 2272 S 1.0 0.4 0:00.03 php-cgi
3572 root 16 0 21120 2548 908 S 0.7 0.3 0:00.38 php-cgi
5156 apache 15 0 21120 3952 2272 S 0.7 0.4 0:00.90 php-cgi
3582 nobody 15 0 19856 16m 688 S 0.3 1.9 0:07.44 nginx
------------------------------------------
测试的是phpinfo,都是粗略配置,并未深入研究。
经过多次测试发现,如果预热一下,承载力还可更大。
没仔细测试,抛砖引玉。 |
|