【发布时间】:2020-06-17 05:51:53
【问题描述】:
我开发了一个使用 PHP 来接受 api 请求的应用程序。我已经使用Apache Benchmark 来检查它每秒可以从另一个远程服务器处理的最大并发请求。我已经使用了最大 200 的并发,最大请求负载为 10,000。它可以处理的最佳请求是每秒 139 个请求。我想增加它。我该怎么做?
我的服务器配置是
Intel Xeon E3-1230v6 - 4 c / 8 t - 3.5 GHz / 3.9 GHz
RAM: 32GB
Storage: SSD 480GB x 2 (in RAID-1 soft raid)
Network bandwidth: 500Mbps
OS: Ubuntu 18
Server Management: Plesk Web Pro (Apache-Nginx)
PHP Version: 7.3
Database: MariaDB 10.1.44
Database max allowed concurrent connection: 2000
My server Ping Time from test server 200ms.
我的脚本最大处理时间是 0.04~0.06 秒。
我尝试过使用 NodeJS,有趣的是,它没有增加请求级别,而是将请求级别降低到每秒 15 个请求。
我使用过 Redis Cache(由 Docker 托管),但没有运气。等级同138~139。
我真的需要将它设置在 500~1000 之间。我怎样才能做到这一点?
我没有在操作系统级别上进行任何修改。全部设置为默认值。
提前感谢您阅读本文。
【问题讨论】:
-
我现在可以试试
-
PHP 版本:7.3 我在服务器详情中提到过。我一测试就通知你更新。
-
如果redis没有帮助,那么你的瓶颈很可能是apache/nginx。此外,您是要每秒处理 500-1000 个请求,还是要使每台服务器的性能达到每秒 500-1000 个?
-
@NicholasSummers 我只是在检查 PHP 版本,有趣的是我看到,我使用 FPM 和 Apache 运行我的服务器,而不是 nginx。我刚刚从 Apache 的 FPM 到 Nginx 的 FPM 进行了检查,对于 redis,请求级别达到 300+(310~312)。但是如果我使用Mysql,那么它不会改变。现在我只有一台服务器,所以我必须在这台服务器中获取它。我正在尝试每秒处理 500-1000 个请求。
-
@NicholasSummers 感谢您的友好经验分享。我是这么猜的。但我只是想确定像你这样的专家意见。如果有什么办法!现在,我不可能去云端并使用具有负载平衡的多个实例。我必须在这台专用服务器上使用至少 3 到 6 个月。
标签: php apache api ubuntu nginx