Hi Joakim,
Thanks lot for your reply and explanations, it inspired me lot.
One thing still worry me, even if we can control the whole work chain (client -> network -> server), may still need to be careful to change header size, in Jetty there are some other "size limits" like bellow which may also need to be changed accordingly.
config._headerCacheSize
config._outputBufferSize;
config._outputAggregationSize;
And some "size limits" seems does not support configuration (only can change by code API), like in ConnectionFactory
int _inputbufferSize = 8192;
public HttpConnectionFactory()
{
this(new HttpConfiguration());
setInputBufferSize(16384);
}
It may not easy to tune these numbers even if know the business use cases, I believe there will be lot of try-compare-try steps.
Not sure webtide or intalio have some best practices to benchmark and regression these kind of modification, any suggestion is really appreciated.
For memory calculation in previous mail, here is what I got from Jetty doc:
"The HttpConfiguration
class holds the configuration for
HTTPChannel
s, which you can create 1:1 with each HTTP
connection or 1:n on a multiplexed SPDY connection. Thus a
HTTPConfiguration
object is injected into both the HTTP and
SPDY connection factories. "The HttpConfiguration may only need one instance, and can be injected into connection factories, which can be shared.