On 28/09/2020 17:58, Arshiya Shariff wrote:
> Hi All,
> With 200 threads(users) , ramp up duration of 2 seconds , loop count 80 and 
> by sending 1000 http2 requests/sec from JMeter Client to an embedded tomcat 
> application we did not observe any memory issue , but on sending 1000 http2 
> requests/sec with 2000 or 1000 users from JMeter , the application's heap 
> space of 20 GB is occupied in 2 minutes and after 2 full GCs the memory 
> clears and comes down to 4GB (expected) .
> 
> Embedded tomcat Version:9.0.38
> Max Threads : 200
> All other properties are the tomcat defaults.
> 
> Why is tomcat not able to process many connections ?

You haven't provided any evidence that Tomcat isn't able to process
"many" connections.

> Why is the memory filled when the connections are increased, are there any 
> parameters to tune connections ?

It looks like users == HTTP/2 Connection. Connections are required to
maintain state for closed streams for both prioritisation and for error
handling. More connections == more state == more memory.

Given the number of connections increased by a factor of between 12.5
and 25, that the memory usage only increased by a factor of 5 looks to
be a positive result rather than an issue.

There are significant improvements to memory usage in this area in
Tomcat 10.0.x that will get back-ported to 9.0.x but more testing is
required.

Are you able to test with a custom Tomcat build and/or build Tomcat 9
from source for testing?

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to