A WebLogic Server Performance Tuning Roadmap


Because your WebLogic Server will exist in a computing environment and will interact with other technology and application infrastructures , such as legacy and relational database systems, performance bottlenecks can potentially exist in any aspect of a WebLogic Server environment. For this reason, performance tuning WebLogic Server cannot be an isolated activity; environmental factors that can influence WebLogic Server's operating behavior and performance also need to be considered . Hence, performance tuning WebLogic Server can include the following activities:

  • Reviewing and setting performance- related WebLogic Server startup and application deployment properties

  • Ensuring the applications deployed to WebLogic Server contain efficient Java and J2EE programming code

  • Tuning the Java Virtual Machine (JVM) so that its memory management options are correctly configured for executing the types of applications deployed to WebLogic Server

  • Configuring the hardware (CPU and disk systems) and operating system to ensure they provide optimal processing power and I/O

  • Performance tuning any relational database management systems serving as data stores to WebLogic Server applications

  • Ensuring the network infrastructure has enough bandwidth to support client connections and additional WebLogic Server “related network traffic, such as IP Multicasting between WebLogic Servers

From the preceding list of activities, you can see that performance tuning WebLogic Server is a multiskilled, multifaceted operation, involving a team of people (WebLogic Server administrators, J2EE developers, database administrators, hardware and network engineers ) who together have detailed knowledge of the entire WebLogic Server production environment, including the applications deployed to the server. As a WebLogic Server administrator, you are expected to tune the performance of the WebLogic Server product and the associated Java Virtual Machine (for example, Hotspot or JRockit), and leverage the experience and skills of other people to tune the performance of the WebLogic Server environment as a whole.

There are no hard and fast techniques detailing how you can tune the performance of WebLogic Server and its environment because this task involves a patient and iterative test process in which you try to identify bottleneck factors and determine whether they are indeed impeding the performance of your WebLogic Server. However, having a structured and methodical roadmap showing how you intend to conduct these tests does ease ”and instill discipline into ”the performance tuning process.

The following sections methodically describe activities you should use as a guide to formulating a performance-tuning roadmap for your WebLogic Server environment.

Step 1: Understand Your WebLogic Server Environment

Identify the technical domain of your WebLogic Server environment, which will include WebLogic Server, deployed applications, hardware platform, operating system, databases, legacy systems, and so on. To perform this activity, you need to bring together a team of experts who can technically address each aspect of your WebLogic Server environment.

Step 2: Document Your WebLogic Server Environment

Have the team document the exact configuration of your WebLogic Server environment. For example, keep track of the following:

  • The WebLogic Server and JVM startup parameters, such as the heap allocation sizes, the JVM garbage collection parameters, the number of execute threads, the percentage of socket readers, and the accept backlog amount

  • The deployment descriptors of the applications deployed to WebLogic Server

  • The hardware configuration of the server, such as the hardware platform of the production server, disk space, CPU processing power, and memory

  • Any services or programs running on the server machine such as virus scanners , Web servers, networking services, and so on

This exercise is essential because it documents a control environment for your WebLogic Server, which will serve as a baseline configuration for all your performance-tuning activities. It is also good practice to version-control all configuration files related to creating the WebLogic Server environment, which enables you to audit changes to the environment, as well as re-create the baseline configuration very easily.

Step 3: Develop Test Scenarios for Your WebLogic Server Environment

Develop multiple repeatable test scenarios that simulate an end-to-end usage of the WebLogic Server environment in production. Ideally, these tests should encompass the following:

  • The most important functional areas or use cases of your WebLogic Server application, as defined by the business. Typically, these are the places where the end users will spend most of their time interacting with the WebLogic Server application and performing their work.

    Note

    These use cases and functional areas of the WebLogic Server application must be working correctly, as defined by their business requirements, before their performance can be examined for improvement.


  • Scenarios where WebLogic Server will be required to interact with external systems, such as databases, legacy systems, or Web services.

  • Mirroring the workload that WebLogic Server will expect in production. For example, if in a production environment, the average workload on WebLogic Server is 1000 requests/sec, your test scenarios should mirror this load. A test carried out with 100 requests /sec will not be realistic and not be sufficient to tune WebLogic Server or its environment appropriately.

The performance of these scenarios will greatly affect the perception of the WebLogic Server application and contribute to its success or failure from the perspective of the sponsors, business customers, and, most importantly, the end users.

Step 4: Benchmark Your Test Scenarios

Run your test scenarios and measure (benchmark) the baseline performance of your WebLogic Server environment, collecting metrics related to WebLogic Server's response time, throughput, and latency, as well as the metrics related to the memory management of your JVM. You will also need to leverage your performance-tuning team to collect other relevant performance metrics from the WebLogic Server environment, such as the latency of any database systems and the hardware resource consumption rates (memory and CPU). It is important to document what is being benchmarked and why. This understanding should be coherent across the performance tuning.

To benchmark your WebLogic Server environment in an automated manner, you need to use a performance analysis tool . A performance analysis tool should not only be able to simulate your test scenarios, but also be capable of collecting the desired performance metrics and possibly reveal the areas of the WebLogic Server environment where potential bottlenecks exist. Many performance analysis tools are available in the market. Some are free, and some provide more sophisticated testing mechanisms and options than others. Table 28.1 lists a few of these tools and links indicating where you can retrieve more information about them.

Table 28.1. Performance Analysis Tools for Benchmarking Your WebLogic Server Environment

Performance Analysis Tool

Product Link

Borland Optimizeit Suite

http://www.borland.com/optimizeit/

Sitraka JProbe

http://www.sitraka.com/software/jprobe

HPjmeter

http://www.hp.com/products1/unix/java/hpjmeter/

Mercury Interactive's Topaz solutions

http://www-svca.mercuryinteractive.com

SE Toolkit

http://www.setoolkit.com/

Microsoft's Web Application Stress Tool

http://www.microsoft.com

Grinder (Free)

http:// sourceforge .net/projects/grinder/

Web Benchmark (Free)

http://dev2dev.bea.com

Most of the performance analysis tools are typically available for download so that you can test-drive them.

Note

An example of using the Web Benchmark tool in a benchmarking exercise is provided later in this chapter in the "Run and Monitor a Load Test Against Your WebLogic Server Application" section.


Step 5: Identify the Potential Bottlenecks Affecting the Performance of Your Test Scenarios

Using the benchmark results of your test scenarios, you and your team should be able to identify

  • Whether the performance requirements of the test scenarios are being met in terms of response time, throughput, and latency. This can also be further substantiated through exposing end users to the test scenarios and gathering their feedback.

  • Potential areas of the WebLogic Server environment for which you can tune the performance. This information can be derived either from the performance analysis tool or from expert members of your performance-tuning team who have conducted their own performance metrics based on the test scenarios.

After you determine which test scenarios do not meet their performance-tuning requirements, you and your team need to examine how those test scenarios can be tuned . Solving the performance-tuning issues in these important test scenarios will generally improve the performance of a WebLogic Server environment as a whole.

Performance tuning generally involves modifying one or more configuration properties ”whether they are application related, WebLogic server related, JVM related, or hardware related. The J2EE programming code should be modified only for a test scenario, only if it is deemed to be inefficient by the J2EE developer in your performance-tuning team.

Step 6: Resolve the Performance Bottlenecks in Your Test Scenarios

To resolve the identified bottlenecks in your test scenarios, you and your team need to coordinate the modification (tuning) of a single property of your WebLogic Server environment and benchmark the effects of modifying that specific property. For example, you can modify a property of WebLogic Server by modifying its associated parameter value in the server's configuration file ( config.xml ).

Note

As a WebLogic Server administrator, you need to understand the various tuning parameters available in the server's configuration file ( config.xml ) and the subsystems of WebLogic Server they affect.


Tuning more than a single property at a time can make the results difficult to analyze. This benchmark result should be compared to the baseline results to determine if tuning that property increased or decreased the performance of the test scenario.

If there is no effect on the performance of your test scenario, you should continue tuning and benchmarking the other relevant properties of your WebLogic Server environment until you see an increase in performance in your test scenario. When you see an increase in performance, the related benchmark results will become your baseline benchmark for comparing the benchmark results from tuning additional properties of your WebLogic Server environment.

After you exhaust your tuning options for one test scenario, resolve the performance bottlenecks in your remaining test scenarios using the same approach. This iterative process will help you to approach the optimum configuration for your WebLogic Server environment.



BEA WebLogic Platform 7
BEA WebLogic Platform 7
ISBN: 0789727129
EAN: 2147483647
Year: 2003
Pages: 360

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net