验证 Apache 2.4 的 PHP-FPM 和 mod_php

我看到了一个令人担忧的言论,所以要验证一下。

Apache2.4及以上版本已经集成了mod_proxy_fcgi,因此与php-fpm的组合是可行的。这样做还能提高内存效率。

因此,當對nginx+php-fpm5.6與apache2.2+mod_php5.6進行基准测试時,由於apache2.2+mod_php5.6得分更高,所以……
※可能有错误的测量方法…

只想知道结论的人们请拢耳听着。

「失败的请求」较少,FPM可能更出色吗?

前提

    • PHP と Apache はソースからコンパイル

 

    • Fibonacci.php はChromeからアクセス

 

    • ab は LISTEN IP に対して

 

    一回ごとにゲストOSリブート

规格

主持人

    • OS:Windows 10 Home 64bit

 

    • CPU:Intel® Core™ i5-3570

 

    • メモリ:8GB

 

    ストレージ:インテル 330 Series SSDSC2CT120A3K5

请提供更多上下文信息,让我能够更准确地翻译。

    • VMware(R) Player 6.0.7 build-2844087

 

    • OS:CentOS Linux release 7.2.1511 (Core)

 

    • メモリ:1024MB

 

    CPU:1

php-fpm (FastCGI Process Manager)

apache2.4.18 可以被简洁地表达为 “阿帕奇2.4.18″。

  "./configure" \
  "--prefix=/usr/local/apache2.4-test1" \
  "--enable-mods-shared=all" \
  "$@"
Server version: Apache/2.4.18 (Unix)
Server built:   Mar 19 2016 11:45:13
Server's Module Magic Number: 20120211:52
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
<IfModule mpm_worker_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>

php-7.0.4

  './configure' \
  '--prefix=/usr/local/php-7.0.4-fpm' \
  '--enable-fpm' \
  '--with-fpm-systemd' \
  "$@"
[global]
include=/usr/local/php-7.0.4-fpm/etc/php-fpm.d/*.conf
[www]
prefix = /usr/local/php-7.0.4-fpm/$pool
user = nobody
group = nobody
listen = socket
listen.owner = daemon
listen.group = daemon
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

斐波那契.php

求解不使用记忆化递归的情况下的getFib(35)。
getFib(35)的答案是24157817。
处理所需时间为1.0560688972473毫秒。

使用记忆化递归计算getFibByMemo(35)的值。
getFibByMemo(35)的答案是24157817。
处理所需的时间为9.9897384643555E-5毫秒。

如果使用记忆化递归,甚至$n=100也没问题!
getFibByMemo(100)的答案为9.2737269219308E+20192.168.0.31

用AB命令在$IP上对Fibonacci.php发起100个请求,每个请求并发量为10个。

这是ApacheBench,版本2.3 <$修订版本: 1706008 $>
版权所有1996年Adam Twiss,Zeus Technology Ltd,http://www.zeustech.net/
许可给Apache Software Foundation,http://www.apache.org/。

正在对192.168.0.31进行基准测试(请耐心等待)…..完成

服务器软件:Apache/2.4.18
服务器主机名:192.168.0.31
服务器端口:80

文档路径:/Fibonacci.php
文档长度:455字节

并发级别:10
测试所需时间:116.601秒
完成的请求:100
失败的请求:28
(连接:0,接收:0,长度:28,异常:0)
总传输量:62471字节
HTML传输量:45471字节
每秒请求数:0.86个/秒
每个请求的时间:11660.100毫秒
每个请求的时间:1166.010毫秒
传输速率:0.52 [千字节/秒] 接收

连接时间(毫秒)
最小值 平均值[+/-标准差] 中位数 最大值
连接: 0 0 0.1 0 1
处理: 3365 11321 1561.3 11646 14213
等待: 3354 11321 1561.9 11646 14213
总计: 3365 11322 1561.2 11646 14213

某一时间段内已响应请求的百分比(毫秒为单位)
50% 11646
66% 11823
75% 11980
80% 12021
90% 12280
95% 12395
98% 12979
99% 14213
100% 14213(最长的请求)


Mod_php

apache2.4.18是一个版本号。

  "./configure" \
  "--prefix=/usr/local/apache2.4-test2" \
  "--enable-mods-shared=all" \
  "--with-mpm=prefork" \
  "$@"
Server version: Apache/2.4.18 (Unix)
Server built:   Mar 19 2016 21:29:05
Server's Module Magic Number: 20120211:52
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0
</IfModule>

PHP-7.0.4是令一个版本的PHP程序。

  './configure' \
  '--prefix=/usr/local/php-7.0.4-mod' \
  '--with-fpm-systemd' \
  '--with-apxs2=/usr/local/apache2.4-test2/bin/apxs' \
  '--disable-cgi' \
  "$@"

斐波那契.php

求解不使用记忆化递归的情况下的 getFib(35)
getFib(35)的答案是24157817
处理时间为1.0643901824951毫秒。

使用记忆化递归方法求得getFibByMemo(35)的结果。
getFibByMemo(35)的答案是24157817。
处理所用时间为9.918212890625E-5毫秒。

使用记忆化递归的话,甚至可以计算$n=100$!!
通过使用getFibByMemo(100),答案为9.2737269219308E+20。

使用ab命令对”http://$IP/Fibonacci.php”进行100次请求,每次并发10次。

这是ApacheBench,版本2.3 <$版本: 1706008 $>
版权所有1996年Adam Twiss,Zeus Technology Ltd,http://www.zeustech.net/
授权给The Apache Software Foundation,http://www.apache.org/

基准测试192.168.0.31(请耐心等待)…..完成

服务器软件:Apache/2.4.18
服务器主机名:192.168.0.31
服务器端口:80

文件路径:/Fibonacci.php
文件长度:453字节

并发级别:10
测试所用时间:105.249秒
完成请求数:100
失败请求数:95
(连接:0,接收:0,长度:95,异常:0)
总传输量:65577字节
HTML传输量:45477字节
每秒请求数:0.95 #/秒
每个请求的时间:10524.895毫秒
每个请求的时间:1052.490毫秒
传输速率:0.61 [Kbytes/sec] 接收

连接时间(毫秒)
最小值 平均值[±标准差] 中位数 最大值
连接:0 0 0.2 0 1
处理:8146 10459 722.6 10478 13598
等待:8146 10453 729.3 10478 13598
总计:8146 10459 722.6 10478 13598

在一定时间内处理请求的百分比(毫秒)
50% 10478
66% 10535
75% 10625
80% 10758
90% 10902
95% 10954
98% 13542
99% 13598
100% 13598(最长的请求)

用PHP通过递归解决斐波那契数列+与记忆化递归进行比较- Fibonacci.php

广告
将在 10 秒后关闭
bannerAds