nginx Unit相较于PHP-FPM真的快8倍吗?

起因

原始来源。

 

使用nginx Unit,与目前使用的PHP应用程序服务器PHP-FPM相比,响应速度快了8倍。红色彗星也惊讶不已。

软件概览

PHP-FPM(PHP FastCGI Process Manager)

 

PHP是一种常用的服务器端应用程序软件,可用作Web服务器,并通过浏览器请求来执行PHP程序。如果没有特定的选择,它似乎会被广泛使用。

nginx Unit (nginx单元)

 

nginx公司推出的应用服务器软件。
不仅支持PHP,还可以执行Python和Javascript等,它能够适应多种语言,这是它的魅力所在。
最近在上述文章中可能有些爆发性的话题讨论,令人意外。

我亲自实际验证了一下

やってみないと良く分からないので、設定した上でベンチマークしてみる事にした。
サイトはAWS上で作成したテストサイト。実装済のサイトなので、画像読み込み等がある。
EC2はt2.microで作成。webサーバにはnginxを採用。

基准测试

用于测量的软件使用Apache Bench。

 

在网站基准测试软件中,我们可以在执行 yum install httpd-tools 命令之后使用。
在背后,我们进行了测试并更改了请求数量和同时连接数,但本次测试使用了500个请求和50个同时连接的条件,以下是测试结果。
命令如下所示。如果最后一个地址没有加上斜杠,将无法运行(1次失败)。

ab -n 500 -c 50 https://hogehoge.jp/

以下是详细的结果。概要将在另一部分进行总结。

PHP-FPM
Server Software: nginx
Server Hostname: hogehoge.jp
Server Port: 443
SSL/TLS Protocol: TLSv1.3,TLS_AES_256_GCM_SHA384,2048,256
Server Temp Key: X25519 253 bits
TLS Server Name: hogehoge.jpDocument Path: /
Document Length: 43877 bytes

Concurrency Level: 50
Time taken for tests: 75.685 seconds
Complete requests: 500
Failed requests: 69
(Connect: 0, Receive: 0, Length: 69, Exceptions: 0)
Total transferred: 20336044 bytes
HTML transferred: 20248544 bytes
Requests per second: 6.61 [#/sec] (mean)
Time per request: 7568.488 [ms] (mean)
Time per request: 151.370 [ms] (mean, across all concurrent requests)
Transfer rate: 262.40 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 36 57.8 6 421
Processing: 383 7349 3370.4 7137 16983
Waiting: 281 2378 1321.5 2272 9458
Total: 388 7384 3385.5 7170 17135

Percentage of the requests served within a certain time (ms)
50% 7170
66% 8484
75% 8949
80% 9239
90% 11292
95% 15774
98% 16567
99% 16865
100% 17135 (longest request)

nginx Unit
Server Software: nginx
Server Hostname: hogehoge.jp
Server Port: 443
SSL/TLS Protocol: TLSv1.3,TLS_AES_256_GCM_SHA384,2048,256
Server Temp Key: X25519 253 bits
TLS Server Name: hogehoge.jpDocument Path: /
Document Length: 43892 bytes

Concurrency Level: 50
Time taken for tests: 94.478 seconds
Complete requests: 500
Failed requests: 0
Total transferred: 22033500 bytes
HTML transferred: 21946000 bytes
Requests per second: 5.29 [#/sec] (mean)
Time per request: 9447.799 [ms] (mean)
Time per request: 188.956 [ms] (mean, across all concurrent requests)
Transfer rate: 227.75 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 13 25.1 4 138
Processing: 715 9015 1373.4 9156 11380
Waiting: 282 7916 1384.4 8080 10278
Total: 719 9029 1367.6 9164 11384

Percentage of the requests served within a certain time (ms)
50% 9164
66% 9416
75% 9586
80% 9697
90% 10200
95% 10503
98% 10896
99% 11154
100% 11384 (longest request)

综述验证结果

以下是简要总结:

PHP-FPMnginx-unit総時間75秒94秒リクエスト失敗数690リクエスト時間平均6.61秒5.29秒

不考虑速度快慢,
PHP-FPM出现了大量未响应的情况。
这在同时连接数约为10时不会发生,
而同时连接数增加后,请求失败的数量呈加速增长。
这一点在nginx Unit中并不存在,给人留下了好印象。
从总体时间来看,PHP-FPM更快,
但就请求时间本身而言,nginx Unit更快。
甚至可以说PHP-FPM的请求还失败了。

结论

这次我第一次尝试了导入测试,感觉还不错。
根据以前对nginx Unit的评价,这些文章中也有提到PHP-FPM的速度很快,
但根据现在的印象,感觉这种评价已经有所改变了。

广告
将在 10 秒后关闭
bannerAds