Rainer and Doug,

On 4/30/25 12:47 PM, Rainer Jung wrote:
Am 30.04.25 um 15:59 schrieb Doug Whitfield:
Hi folks,

This feature was added in 9.0.90:
The system property org.apache.catalina.connector.RECYCLE_FACADES will now default to true if not specified, which will in turn set the default value for the discardFacades connector attribute, thus causing facade objects to be discarded by default. (remm)

It makes sense that would cause some performance degradation. We are currently seeing *at least* a 5x increase in the number of connections. This doesn’t *seem* right, but maybe it is?

We’ve been able to reproduce this in 9.0.90 through 9.0.104. If we set RECYCLE_FACADES to false, then we get the performance we have come to expect.

I am trying to get some additional information from the performance team to see what exactly they are doing. Perhaps something needs to be updated in their code, but in the meantime wondering what others have seen and what folks think is a reasonable degradation.

Maybe your environment was already experiencing a high memory/GC pressure from object allocation. Then the additional allocations needed due to throwing away the objects instead of reusing them cloud have pushed the JVM over the border.

+1

The repeated allocations of these kinds of objects might be causing much more frequent GC activity, especially if you have a very high number of requests.

Performance bottlenecks often show non-linear behavior. As long as you stay away from the bottleneck you wont observe it, when you get close to it and above, it kills your throughput.

So when doing profiling etc. also check your for GC behavior and GC logs. Analyzing apps for performance problems while in fact you have a GC problem often feels like looking for an automotive engine problem while in fact you have your hand brakes put on.

I would enable GC logging if you haven't already done so, and then observe the situation both with and without recycling those facades.

Finally, remember that it's only the default that has changed. This change was done for security and container-protection reasons. If your application is well-behaved and you need that performance back, feel free to change the settings from the default.

-chris


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

Reply via email to