Tomcat处理时间很小,但是Nginx显示它很大

孙兴斌*_*孙兴斌 9 java tomcat tcp http nginx

我在nginx后面有五个tomcat实例。

有时nginx upstream_response_time很大,超过1秒,而tomcat本地访问日志显示处理时间仅为50ms(我%D用来记录处理时间)。

可能的原因是什么?如何解决?由于其他应用程序运行很快,网络似乎并不慢。

更新:

似乎nginx upstream_response_time= %D+ 1 sec

asc*_*erk 1

服务器通常将请求排队,直到有线程可以处理它。如果队列中有很多请求但只有几个线程,单个线程可能会非常快地处理请求,但是如果添加时间,请求会排队,消费者会看到更长的时间。

请参阅:如何增加tomcat线程池中的线程数?

测量 tomcat 的排队请求数

看看是否可以增加线程数或减少accept_count,但请记住,可能还需要增加其他资源(例如数据库连接)的数量。另请记住,更多线程可能意味着更多的资源竞争。

可能值得尝试为此更改参数。通常,访问日志还应该显示消息排队处理的时间,但我不确定。