Are there any significant ways to improve the performance of a websphere liberty application.
The application is monolithic with about 40 web applications and one ear. No REST web services but servlet and jsp code.
Product version: 19.0.0.3
Probably about 300k lines of Java code.
The requests may take 30-40 seconds to load.
It is running Java8.
The machines are developer machines, Mac Book Pro, Darwin Kernel Version 19.6.0. 16 gigs of ram.
Here are some of the features:
<featureManager>
<feature>appSecurity-2.0</feature>
<feature>jaxrs-2.0</feature>
<feature>jsp-2.3</feature>
<feature>localConnector-1.0</feature>
<feature>jaxws-2.2</feature>
<feature>ldapRegistry-3.0</feature>
</featureManager>
CodePudding user response:
You could check out the IBM WebSphere Application Server Performance Cookbook. Some of the tips are common to WebSphere traditional and Liberty both and some are unique to the different products. There is a Liberty section.
CodePudding user response:
WebSphere Liberty itself is supposed to be lightweight and fast. So probably you should look for areas like
- Sufficient memory allocated to server.
- Use cases which are taking 30-40s need to be profiled to understand which part of processing is taking time. It could be spending lots of time in database processing because of poorly performing queries.
You can use jvisualvm tool to perform cpu and memory profiling to understand hotspots. For more rich performance related data you can use open source javamelody as well which has very easy integration with any EE application and EE server
CodePudding user response:
Like the other answers mentioned, you should take a look at the application code/performance and the server's interactions with external resources, as well as the performance cookbook.
However, you're also running on a version that is over 30 releases behind the latest, and isn't even eligible for security fixes. In those 30 releases, Liberty has continued to make significant performance improvements, so I would urge you to move up to the latest version.
Also, if, you're not already, you should try use using a JDK with J9 JVM, as that provides performance improvements when used with Liberty.