Here are some tips for WebSphere Application Server Performance Tuning:
1. Turn verbose garbage collection on, either by using WAS console (Servers => Application servers => server_name => Process definition => Java Virtual Machine) or by modifying command line parameters. Then, restart JVM.
2. Run your test harness and peruse the log file native_stderr.log. This will give you an idea whether your JVM has got optimal heap size allocated: you'll want to find that garbage collection does not occur more often than every 10-15 seconds and it does not take longer than 1 to 2 seconds to complete.
3. If the above is not true, change the JVM heap size, restart JVM and repeat step 2.
4. Use WAS console to check the size of Web Container's thread pool. the maximum size of 60-80 is usually a good default value.
5. Use WAS console to make sure the JDBC Connection Pool has its Maximum Connections set up to a value lower than Web Container's thread pool.
6. Use WAS console to turn servlet caching on.
7. Keep checking the performance and getting users' feedback as performance tuning is a never-ending process.
This is very extensive and large topic.
You have multiple roads/options to follow. From my point of view:
1) Validate all the OS values following the infocenter advise.
2) Run the script applyPerfTuningTemplate.py
3) Run basic workload sample stress test
4) Capture some metrics using TPV in order to check the values in use.
5) Adjust (If needed) HeapSize. Pools and webcontainer
6) Run the workload test again and compare the metrics.
7) In case of using a DB - work with your DBA to track the DB behavior.
8) Keep updated the environment ( Apply Fixpacks).
Finally you can use multiple tool to gather information regarding the health of WAS but talking on a very initial step you can use TPV, it will be easy and much simple to measure one server instead an entire cluster. In case you think the application is not working as expected and it is causing applications leaks you can capture Javacore and find out the root the problems.
Performance tuning includes N-numbers of parameters to be updated. Some of them are mentioned below:
The only thing to determine which parameter to update is to check what kind of issue you are facing:
1) If Server is getting crashed with OOM - Heap Size issue.
2) Thread hungs - check thread pool.
3) native_stderr.log getting full - Enable verbose GC and check Heap size.
4) Server getting hung (Even if its running) - Update to latest FP.
5) If desired functionality not working (like pool maintenance thread not runnig etc ) - Update to latest FP.
6) Check TPV (Tivoli Performace Viewer) for investigating cause.
7) Check if Slow response from DB - Reap Time, Unused timeout, aged timeout, max, min number of connections.
Comments
Post a Comment