/ 中存储网

Nginx +PHP-cgi,apahce+PHP-cli,cgi等PHP运行环境的比较

2013-10-11 08:15:02 来源:ITJS.CN

一,突发神精,来把它们三儿来比较

在网上看到好多文章说nginx有多么,多么好。不管好不好,看看测试结果在说,

1,nginx+php-cgi说明

nginx我开启了11个进程,php-cgi我开启了10个进程

2,apache+php-cgi说明

httpd我开启了11个进程,php-cgi我开启了10个进程

3,apache+php-cli说明

没作任何限制

二,测试文件一test.php无逻辑文件

<?php

phpinfo();

?>

1,nginx+php-cgi

[[email protected] zhangy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost/test.php

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/test.php

100 clients, running 30 sec.

Speed=61598 pages/min, 1524550 bytes/sec.

Requests: 30799 susceed, 0 failed.

2,apache+php-cgi

[[email protected] zhangy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost/test.php

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/test.php

100 clients, running 30 sec.

Speed=15000 pages/min, 371750 bytes/sec.

Requests: 7500 susceed, 0 failed.

3,apache+php-cli

[[email protected] conf]# /usr/local/bin/webbench -c 100 -t 30 http://localhost/test.php

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/test.php

100 clients, running 30 sec.

Speed=54618 pages/min, 1357257 bytes/sec.

Requests: 27309 susceed, 0 failed.

三,测试文件二test1.php

<?php

$con = mysql_connect("localhost","username","password");

if (!$con)

  {

  die('Could not connect: ' . mysql_error());

  }

mysql_select_db("test", $con);

mysql_query('set names utf8');

$result = mysql_query("SELECT id, name, sex FROM test ");

while($row = mysql_fetch_array($result))

  {

  echo $row['id'] . "+" . $row['name']."+".$row['sex'];

  echo "

";

  }

mysql_close($con);

?>

1,nginx+php-cgi

[[email protected] zhangy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost/test1.php

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/test1.php

100 clients, running 30 sec.

Speed=60716 pages/min, 324830 bytes/sec.

Requests: 30358 susceed, 0 failed.

2,apache+php-cgi

[[email protected] zhangy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost/test1.php

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/test1.php

100 clients, running 30 sec.

Speed=12800 pages/min, 68906 bytes/sec.

Requests: 6400 susceed, 0 failed.

3,apache+php-cli

[[email protected] zhangy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost/test1.php

Webbench - Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost/test1.php

100 clients, running 30 sec.

Speed=78844 pages/min, 575834 bytes/sec.

Requests: 39422 susceed, 0 failed.

四,个人分析

1,针对无逻辑文件,或者静态文件

在内存,cpu都没有最大化利用的情况下nginx+php-cgi效果比apache+php-cli的效果好一点,而apache+php-cli是最大化用内存和cpu,由起可见,nginx+php-cgi的对无罗辑或静态文件的解析要好很多。apache+php-cgi的效果很差,虽然php官方力挺php-cgi,但是根apache的配合效果不好。

2,针对逻辑复杂的文件

针对逻辑复杂的文件时,nginx+php-cgi对php的解析的效果下降了,但是下降的不是很厉害。而apache+php-cli对php的解析的效果去增强了,增加了很多,是原来的差不多1.5倍。nginx+php-cgi在利用部分内存和CPU的情况下根apache+php-cli对php的解析都差不了多少,个人认为。nginx+php-cgi要比apache+php-cli要好。但是要想达到好多好多倍,我看难。

上面所做对比,不考虑11nginx,配合10php-cgi是否合理,这个就nginx来说,肯定不是很合理的。