想知道您是否能帮助解决这个小问题。我管理的系统在父域中有 Wordpress,并且从子域提供 api。通常,api 会在不到 1 秒的时间内将结果返回给其客户端。但是,当 api 变得“繁忙”时,事务似乎会排队。我们已经通过在客户端和服务器上使用计时器证明了这一点。当服务器收到请求时,它会在不到 1 秒的时间内处理它,然后立即将数据返回给客户端。当繁忙时,事务可能需要 10 秒才能到达服务器进程。有趣的是,这只影响子域,主域正在提供页面,没有任何延迟。我假设这不是应用程序问题,因为请求到达时会迅速返回给客户端。我猜这不是 Apache 问题,因为 apache 在同一台服务器上覆盖至少四个域,并且只有为 API 提供服务的子域受到影响。所以,我的问题是……这种延迟/排队发生在哪里?我担心我对服务器和网络的知识现在已经耗尽了。
提前致谢。
答案1
经过大量的摸索,我想我已经解决了这个问题,并希望传递下去,以防其他人遇到这个问题。我发现 PHP-FPM 是导致这个问题的原因。我们的 PLESK 托管服务器有自己的 PHP 环境和 PHP-FPM 配置。随着 API 子域上的流量增加,其“处理器”很快被占用并形成队列。然而,在父域上,没有看到任何影响,因为并非所有“处理器”都在使用中。因此,对 pm.max_children 参数的更改增加了 API 子域中的“处理器”数量。当然,应该考虑使用此参数,因为这会对服务器的系统内存产生影响,所以不要为此而疯狂。