Nginx的Fastcgi性能问题

我在Nginx后面运行了几个fastcgi服务器。 我运行了3个Nginx工作者和6个fastcgi服务器作为上游后端。

当我运行每秒1次请求的负载testing时,我可以清楚地看到,平均回复时间为0.1秒,但是不时会有3.1秒的响应。

这是一个可疑的确定性数字,即使在非常小的负载下也会发生。 CPU和内存都没有问题。

任何想法这个延迟可能来自? 任何build议如何debugging呢?

非常感谢,巴里。

如果服务器没有响应,3秒是tcp超时。 检查您的nginx日志连接超时。

你是否在运行并行请求? 如果是这样,请看下面。 如果没有,我会build议看你的后端服务器。 也许你的环境有一些types的分析工具,你可以使用太看到从接收到请求到发送响应的时间。

如果你正在并行运行:如果你所有的6个fastcgi服务器都忙于服务请求,下一个请求将不得不等待,直到一个fastcgi服务器准备好处理它。 如果您在审判中提出的要求具有相似的性质,并且具有相似的响应时间,那么您会一次又一次地看到相同的模式。

你的后端是什么? 它是线程?

这是我的build议:

  1. 设置一些监控,以便随着时间的推移可以看到响应时间,甚至可以创build一个很好的graphics
    • 尝试增加fastcgi进程的数量和/或使用线程,如果它适合您的环境。
    • 检查响应时间,回到步骤2。

顺便说一句,只使用一个nginx工作者,除非你拥有大量的stream量,否则你不需要多于一个。