For Online Oracle Weblogic Admin Training, please contact through http://www.appsdbatraining.com
WebLogic Performance tuning
• LAN Capacity
It is recommended to have 100 Megabit minimum
It is recommended to host DB on separate Hardware machine.
• JVM Heap Size
Large Heap leads to slower, but less frequent GC.
Small Heap leads to faster, but more frequent GC.
If heap is larger than RAM, this will cause page swapping.
• How to choose the Max Heap
Run the application with –xaprof and do the load test. After the load test kill the server process.
Upon the process exit, JVM would create a summary which includes the max amount of memory that has been utilized.
This serves as base point and max heap can be set more than this value.
There are other commercial tools available to record the heap usage like integration of LoadRunner into wily introscope so that memory usage can be monitored and recorded.
• Garbage Collection timings
Its good to have the JVM not spend more than 5 to 10 secs for full GC because FullGC pauses the application threads per cpu. (Some of the latest JVMs have settings that would reduce the pause time but not 100%).
In those cases, try other GC settings (parallel GC or concurrent GC or incremental GC) and see if it reduces the GC times.
• Set Execute Thread Count accordingly to utilize CPU’s
Too many threads will cause too much context switching.
OS has to schedule the threads so that all the threads get fair share.
Too little threads will cause CPU under utilization and request waiting.
Set an optimal values based on thread/CPU usage Set.
This can be done by taking periodic thread dumps during load test to see if threads are idle or busy for most part of the time.
• Use large enough pool to service largest number of concurrent database users.
• It is recommended to have the Max pool capacity equal to Execute thread count. (This can be application dependant)
• Process most of the data inside the database to minimize network traffic.
• Process a commit after a batch of statements.
• Application would be most of the times be CPU intensive or IO intensive. Typically IO intensive applications need more threads because IO operations tend to be slow.
• Use NativeIO wherever possible.NativeIO is fast compared to java IO because in java, the socket needs to be polled.