Performance tuning is depend on lot's of factors like -
Operating System
If your operating system is properly tuned or not, there are lot's of O.S parameters need to be tune by your System Administartor and for some parameters some specific values recommended by the oracle according to different operating systems.
Application
Weblogic performance is depend on your application code also and lots of time the performance issues are there due to poor code, like in some cases database connection not closed properly cause threads got stuck or jvm out of error issues.
Database
Database is also one of the major factor if your application using the database and lots of parameters need to be taken care at database side also when you start thinking about your weblogic server tuning like processes, open_cursors, SGA, number of supported users etc
Specific to Weblogic
Specific to weblogic, the first point came to everybody mind is the JVM & heap , and yes JVM & heap both are the main factors of weblogic performance tuning since your servers run on JVM and all of the objects are processed under your JVM heap, So you need to more careful
on defining the heap size since excess and shortage of anything could be harmful, So excess of heap as well as shortage of heap both could impact your application server performance.
The factors need to keep in mind before heap setting is -
1. If you are using 32bit or 64 bit O.S
Since there is a limitation of max heap for a JVM according to bit of O.S. For a 32-bit process model, the maximum virtual address size of the process is typically 4 GB, though some operating systems limit this to 2 GB or 3 GB. For 64-bit process models, the maximum is essentially unlimited.
2. What is the total RAM of your O.S
Since you have to define heap for your servers according to the availability of RAM as well as you can define up to 80% of available for your weblogic servers and need to keep rest 20% for your O.S process.
3. Minimum and Maximum heap
You should define minimum heap size of your JVM equal to the maximum heap size for better performance to minimize the garbage collection since your JVM paused during the garbage collection period.
4. JVM vendor and version
Use only production JVMs on which WebLogic Server has been certified.
Operating System
If your operating system is properly tuned or not, there are lot's of O.S parameters need to be tune by your System Administartor and for some parameters some specific values recommended by the oracle according to different operating systems.
Application
Weblogic performance is depend on your application code also and lots of time the performance issues are there due to poor code, like in some cases database connection not closed properly cause threads got stuck or jvm out of error issues.
Database
Database is also one of the major factor if your application using the database and lots of parameters need to be taken care at database side also when you start thinking about your weblogic server tuning like processes, open_cursors, SGA, number of supported users etc
Specific to Weblogic
Specific to weblogic, the first point came to everybody mind is the JVM & heap , and yes JVM & heap both are the main factors of weblogic performance tuning since your servers run on JVM and all of the objects are processed under your JVM heap, So you need to more careful
on defining the heap size since excess and shortage of anything could be harmful, So excess of heap as well as shortage of heap both could impact your application server performance.
VM Heap Size and Garbage Collection
The Java heap is where the objects of a Java program live. It is a repository for live objects, dead objects, and free memory.
When an object can no longer be reached from any pointer in the running program, it is considered "garbage" and ready for collection and this cleaning process called garbage collection.
The JVM heap size determines how often and how long the VM spends collecting garbage. An acceptable rate for garbage collection is application-specific and should be adjusted after analyzing the actual time and frequency of garbage collections. If you set a large heap size, full garbage collection is slower, but it occurs less frequently. If you set your heap size in accordance with your memory needs, full garbage collection is faster, but occurs more frequently.
The goal of tuning your heap size is to minimize the time that your JVM spends doing garbage collection while maximizing the number of clients that WebLogic Server can handle at a given time. To ensure maximum performance during benchmarking, you might set high heap size values to ensure that garbage collection does not occur during the entire run of the benchmark.
The factors need to keep in mind before heap setting is -
1. If you are using 32bit or 64 bit O.S
Since there is a limitation of max heap for a JVM according to bit of O.S. For a 32-bit process model, the maximum virtual address size of the process is typically 4 GB, though some operating systems limit this to 2 GB or 3 GB. For 64-bit process models, the maximum is essentially unlimited.
2. What is the total RAM of your O.S
Since you have to define heap for your servers according to the availability of RAM as well as you can define up to 80% of available for your weblogic servers and need to keep rest 20% for your O.S process.
3. Minimum and Maximum heap
You should define minimum heap size of your JVM equal to the maximum heap size for better performance to minimize the garbage collection since your JVM paused during the garbage collection period.
4. JVM vendor and version
Use only production JVMs on which WebLogic Server has been certified.
No comments:
Post a Comment