Before really starting to optimize the performance of J2EE application, everyone tries to identify the areas which is causing the performance reduction.
Here is what I feel one should look at for identifying the problem areas
There will be all the way four sources of performance problems in J2EE applications:
* The application code (Back-end or GUI)
* The environment upon which the application is running (application server, JVM, pperating system, network, etc.)
* External dependencies (database, legacy system, Web service, native server, etc.)
* Excessive load
By identifying these four facets of performance problems, we can better formulate a plan to analyze the root-cause(s) of performance problems,
and then develop a resolution plan.
To summarize these four performance facets:
1. The problem can be in the application itself :
There can problem with application code. I am giving some examples but these are not all, there can be more.
excessive object creations, inefficient loops and iterations, more database stuff in code, GUI code problems....a big list.
2. The configuration of the environment:
The environment in which the application is running. This basically covers the application server configuration.
Considering four major parameters are well configured in application server, you are 80% done of the performance optimization.
Heap configuration - For garbage collection stuff.
Thread pools - If you do not have a thread to serve an incoming request, the tuning won't matter, because the request will be queued up waiting to be processed.
Database connection pools - If you do not have enough database connections in your pools, requests will process as far as they can...
and then wait for a database connection, introducing a new bottleneck.
Entity Bean cache - If cache is too small, the overhead to maintain the cache will overpower the benefit you receive by using it;
and if it is too large, you are unnecessarily using too much heap!
3.Something upon which the application depends.
This area covers the other systems like database, web service, legacy system, etc. Note:A database configuaration optimization can improve the application performance dramatically.
4. Excessive load : If there is excessive load on the application than expected, for which it was designed.
If it is none of the above, then the environment has reached its capacity and it's time to add hardware.
Note that throwing hardware at a problem is the last choice, not the first!
Subscribe to:
Post Comments (Atom)
SpringBoot: Features: SpringApplication
Below are a few SpringBoot features corresponding to SpringApplication StartUp Logging · To add additional logging during startup...
-
There was a requirement in which user should be able to download an excel report from application, make some amendments and upload the exce...
-
I was facing 'java.rmi.NoSuchObjectException: Bean has been deleted' for the stateful bean instance. While reading about the error, ...
-
What Is a WebLogic Server Cluster? A WebLogic Server cluster consists of multiple WebLogic Server server instances running simultaneously an...
No comments:
Post a Comment