On 29/08/17 17:27, Venkata Pavan Kumar Sannisetty wrote:
> Hi,
>
> Our Application is running on Tomcat 8.5.11 with Java Security Manager. We
> see a huge difference in performance dip with tomcat when Java security
> manager is enabled. The test uses Jmeter and measures the throughput. Using
> JVisualVM provided few bottlenecks in our application as well as with
> Tomcat. Our application is around 5 times slow. Jvisualvm shows in each
> thread the below call is taking around 70 percent of cpu time. I think this
> is because the synchronized call made to AuthConfigFactory.getFactory()
> method.
>
> When security manager is enabled tomcat most of the time spends
> at AuthenticatorBase.getJaspicProvider() call. Looking at this piece of
> code in Tomcat Github
>
>
> private AuthConfigProvider getJaspicProvider() {
> AuthConfigProvider provider = jaspicProvider;
> if (provider == null) {
> provider = findJaspicProvider();
> }
> if (provider == NO_PROVIDER_AVAILABLE) {
> return null;
> }
> return provider;
> }
>
> private AuthConfigProvider findJaspicProvider() {
> AuthConfigFactory factory = AuthConfigFactory.getFactory()
> ;//bottleneck
> AuthConfigProvider provider = null;
> if (factory != null) {
> provider = factory.getConfigProvider("HttpServlet",
> jaspicAppContextID, this);
> }
> if (provider == null) {
> provider = NO_PROVIDER_AVAILABLE;
> }
> jaspicProvider = provider;
> return provider;
> }
>
> The jaspicProvider variable is an instance variable i am assuming may be it
> is getting created in each and every request (just my assumption).
>
> Is it possible cache the AuthConfigFactory instance in the code
> findJaspicProvider to improve the performance of tomcat with java security
> manager.
>
> Please let me know your inputs.
And if you test with a more recent version than 8.5.11 ?
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]