It seems that, when the HttpConnection enters state FILLING, the worker thread should be invoked to execute the onFillable. In the debug logs, I can see that the HttpConnection enters state FILLING, but the actual onFillable is at 10 seconds later.
Seems like the QueuedThreadPool is no enough? but the profiling results shows threads are pretty free.
enters FILLING:
2017-06-29 19:09:26.633:DBUG:oeji.AbstractConnection:qtp1963485345-43-selector-ServerConnectorManager@14a6d5e4/2: FILL_INTERESTED-->FILLING HttpConnection@44ced19c{FILLING}
execute onFillable:
2017-06-29 19:09:37.006:DBUG:oejs.HttpConnection:qtp1963485345-5349: HttpConnection@44ced19c{FILLING} onFillable HttpChannelState@5860f278{s=IDLE i=true a=null}
Thanks,
Jing
> Date: Fri, 30 Jun 2017 17:42:55 +0000> From: Jing Yang <jingisgood@xxxxxxxxx>>
> Forgot to mention that, it's using the default QueuedThreadPool as well. I am having the same issue.
>
> Thanks,
> Jing
>
>
> Date: Fri, 30 Jun 2017 10:12:34 -0700
> From: Joakim Erdfelt <
joakim@xxxxxxxxxxx>
>
> Changing selectors is appropriate and all, but
> Its far more important to have a proper ThreadPool configuration.
> A fixed thread pool (like what you get from a JVM Executor is a bad idea for high load)
> At least go back to the default QueuedThreadPool implementation and configuration.