请求在高负载下在Netty服务器中占用更长时间

时间:2012-04-19 09:22:26

标签: java netty

我们使用Netty框架构建了一个实时系统来处理我们的HTTP请求。对该服务进行的20%的呼叫本质上是长轮询,在大多数情况下我们在55秒后回复。

随着负载的增加,响应时间逐渐增加,在高负载条件下(20000个长轮询连接和10000个短轮询连接建立),响应时间超过5秒。

我们确认请求在netty服务器级别延迟。所有其他因素(客户端,Nginx,服务器业务逻辑)都被验证为非问题。我们甚至尝试在完全删除业务逻辑的情况下运行测试。结果仍然相同。

有人可以说明如何调整Netty来处理这样的负载。

希瓦。

1 个答案:

答案 0 :(得分:1)

听起来您可能还没有将这20%的请求处理在您的管道上的ExecutionHandler之后。如果是这种情况那么你的工作线程就会等待,无法处理新的请求。虽然您可以确保在ExecutionHandler之前处理那些可以立即处理的请求。

org.jboss.netty.handler.execution.ExecutionHandler