2017-01-09 106 views
0

Dropwizard版本:0​​.9.2Dropwizard请求处理推迟

我在活服务器上有一个非常简单的dropwizard rest api。 它前面有一个nginx。 对于许多请求,nginx显示客户端超时(状态499),因为我们的服务违反了SLA(150毫秒)。 在检查访问日志和应用程序日志时,看起来该请求延迟到达dropwizard(在nginx已宣布客户端超时后大约250ms)。

论Dropwizard侧启用调试日志,发现该选择线程醒来晚

我已经尝试了许多东西,包括: 1)设置选择数到200300400500。没有帮助。 2)增加接受者数量到32,50等。 3)更改GC策略 4)将dropwizard的版本从0.9.2更改为0.9.1。

+0

- 我会建议使用dropwizard 1.0 + – Vyacheslav

+0

升级到1.0.5,仍然有同样的问题 –

+0

我不认为这是DW。尝试删除nginix并直接与DW交谈,以查看这是否解决了您的问题(或者至少确定这是否是您的应用程序或配置的问题) – pandaadb

回答

0

你是否尝试过在你的config.yaml中增加线程?

server: 
    ... 
    minThreads: 20 
    maxThreads: 400 
+0

dropwizard中的默认线程数是1024,我将选择器线程设置为400,接受者设置为32,管理端口也设置10个线程。有一个大小为100的专用线程池。剩余的线程将是应用程序线程。正如互联网上所建议的那样,如果您的应用程序线程超过选择器的数量,这是没有用的。建议是保持它大致等于选择器线程。还尝试从默认的30秒减少空闲时间到10秒。还尝试配置logback的异步appender的队列大小,以检查它是否阻塞了某些东西。 –