AIX

 View Only

Performance tuning of WebLogic Server on IBM Power Systems

By IBM Systems Lab Services posted Mon July 20, 2020 12:11 PM

  

By Kamal Tandon, Mahendra Pote and Sandeep Redkar


This blog post will help Oracle WebLogic Server system administrators optimize app server performance on IBM Power® Systems running AIX, immediately after migrating from other platforms. Tuning is an iterative process involving complex procedures at times. If done properly, tuning can do wonders for application stability and the overall performance of your system.

Oracle WebLogic Server is an enterprise-ready Java platform application server, also known as Java EE, that offers mission-critical infrastructure for enterprise applications. Oracle WebLogic Server customers can use the latest IBM Java on an AIX platform and improve the performance of WebLogic workloads with IBM Power Systems processor technology. With Power Systems and Oracle WebLogic Server, you can deploy applications in a secure, robust and scalable environment. WebLogic Server can take advantage of the latest hardware architectures, high speed networks and multi-core computing systems.

When you need help with tuning, security assessments, security implementation best practices or migrating your business-critical WebLogic applications, working with experienced consultants can make a big difference. IBM Systems Lab Services has successfully configured and migrated WebLogic-related workloads for many enterprise-class clients. We also help organizations that want to migrate Oracle WebLogic applications from competing platforms to IBM Power Systems for improved performance and resilience.

Here are our top recommendations for optimizing the performance of your WebLogic application server.

Operating system tuning

There are OS-specific settings for CPU and native input/output (I/O) as well as best practices for Oracle WebLogic Server. We’ll focus here on AIX-specific tuning. Documentation of AIX OS requirements can be found on Oracle’s website.

Here are the tuning concepts applicable to IBM Java virtual machine (JVM), along with other tunable elements of Oracle WebLogic Server.

  • Tune JVM compiler: IBM JVM uses just-in-time (JIT) compiler technology to compile Java byte codes into native instructions during server runtime.
  • Tune Java memory or heap size: Tuning the JVM memory management function, or garbage collection, is a good starting point for improving JVM performance.
  • Tune pool sizes: Provide pool sizes (such as pools for Java Database Connectivity [JDBC] connections, stateless session Enterprise JavaBeans [EJB], and Message-Driven Beans [MDB]) that maximize concurrency for the expected thread utilization.
  • Use the prepared statement cache: The prepared statement cache keeps compiled SQL statements in memory, thus avoiding a round trip to the database when the same statement is used later.
  • Use Logging Last Resource (LLR) optimization: LLR optimization can significantly improve transaction performance by safely eliminating some of the two-phase commit (2PC) XA overhead for database processing, especially for 2PC database insert, update and delete operations.
  • Tune connection backlog buffering: You can tune the number of connection requests that a WebLogic Server instance accepts before refusing additional requests.
  • Use optimistic or read-only concurrency: Use optimistic concurrency with cache between transactions or read-only concurrency with query-caching.
  • Use local interfaces: Use local interfaces or use call-by-reference semantics to avoid the overhead of serialization when one EJB calls another or an EJB is called by a servlet or Java Server Page (JSP) in the same application.
  • Use eager relationship caching: Use eager relationship caching wherever possible. This feature allows the EJB container to load related beans using a single SQL statement. It improves performance by reducing the number of database calls to load related beans in transactions when a bean and its related beans are expected to be used in that transaction.
  • Tune HTTP sessions: Optimize your application so that it does as little work as possible when handling session persistence and sessions.

IBM JIT compiler

As a best practice, set the minimum Java heap size equal to the maximum heap size. On IBM Power servers, the latest IBM Java delivers better performance. Along with this, consider the following settings of IBM Java for optimal performance:

-Djava.compiler=[NONE | j9jit<vm_version>]

Enable JIT compilation by setting to j9jit<vm_version>, where <vm_version> is the version of the J9 virtual machine. JIT compiler optimizes machine code to improve application performance.

JVM tuning

Java heap size parameters influence the behavior of garbage collection. Allocating more memory in terms of JVM heap size helps to accommodate/cache more java objects, which in turn will take more time to get full and thus help the application to run longer before garbage collection occurs. Small heap size can cause frequent garbage collections, leading to more processor time for garbage collection.

Garbage collection temporarily stops all work in the JVM and can therefore affect application response times. IBM Java is well tuned when it comes to handling garbage collection, the default garbage collection setting of IBM JVM works well for most application workloads.

It’s a good practice to set the maximum JVM heap size to a value that’s higher than the default JVM heap size. This helps JVM to operate efficiently during normal, steady state periods as well as during periods of high transaction volume.

For optimal performance, you may consider specifying the same value for both initial and maximum heap size. This setting eliminates the overhead of expanding or contracting the size of the JVM heap. JVM settings have a significant effect on performance:

-Xms: This parameter controls the initial size of the Java heap. Tuning this parameter reduces the overhead of garbage collection, which improves server response time and throughput.
-Xmx: This parameter controls the maximum size of the Java heap. Increasing this setting can improve server response time and throughput.
-Xlp: Use this parameter to allocate the heap when you use large pages, such as 16 MB pages. Before you specify this parameter, verify that your OS is configured to support large pages. Using large pages can reduce the CPU overhead.

Use the -verbosegc option to turn on verbose garbage collection output for your JVM and redirect both the standard error and standard output to a log file.

Modify the startManagedWebLogic script to set Java heap size

Modify startManagedWebLogic script with the required heap size in JAVA_OPTIONS:

JAVA_OPTIONS="-Xms2g -Xmx2g" ${JAVA_OPTIONS}

The above-mentioned JVM settings and data source parameters must be set as per the application prerequisites. These values can be further fine-tuned to your specific workload.

Where to find support

IBM Systems Lab Services offers the proven expertise to help leaders plan, design and implement the essential IT infrastructure for what comes next. Contact us if you have questions about on Oracle WebLogic migration, security assessments and implementations or performance related issues.


This article was coauthored by Kamal Tandon (Oracle Database Architect), Mahendra Pote (Consultant for Oracle Database & Applications) and Sandeep Redkar (Database Consultant), all of IBM Systems Lab Services

0 comments
29 views

Permalink