Capacity Planning and Performance Tuning

     Previous  Next    Open TOC in new window    View as PDF - New Window  Get Adobe Reader - New Window
Content starts here

Capacity Planning Example

This example is based on a simple Purchase Order application that processes the following Business Object Documents (BODs) defined according to Open Applications Group (OAG) standards:

Note: The tests described in this guide were conducted in a controlled environment; so the numbers presented here may not match the results that you get when you run the tests in your environment. The numbers are meant to illustrate the capacity planning process.

The following figure shows the configuration of the application.

Figure A-1 Configuration of Sample Purchase Order Application

Configuration of Sample Purchase Order Application

The application has the following components:

 


Workload and Load Generation Script

In this example, the workload is designed with zero think time because the process is automated (no human user interaction) and the goal is in terms of transactions processed per second.

For this example, a mix of 50% PO WS Driver JPD users and 50% PO JMS Driver JPD users is considered. A Mercury LoadRunner-based Java program is used as a load generation client for the tests. The client triggers the Driver JPDs by using SOAP/HTTP and waits for a callback before sending the next request.

 


Unit of Work and SLA

The entire flow of operations for processing the purchase order - invoking the driver JPD, sending the purchase order document, and receiving an acknowledgement document - is considered a single unit of work.

The target SLA for this example is 50 purchase orders processed per second, with a maximum average CPU utilization of 70%.

 


Test Setup

The following sections describe the hardware and software configurations for executing the scalability tests.

Horizontal Scalability

Figure A-2 Test Setup: Horizontal Scalability

Test Setup: Horizontal Scalability

Vertical Scalability

Figure A-3 Test Setup: Vertical Scalability

Test Setup: Vertical Scalability

Hardware Configuration

Table A-1 Hardware Configuration
Purpose
Model
OS
CPU
RAM
Hard Drive
Network Interface
WLI (Horizontal Scalability)
Dell 6850
Windows® Server 2003, Enterprise Edition
2 x 3.4 GHz Intel Xeon Dual Core
16 GB
5 x 146 GB; 10K RPM SCSI
1000 Mbps Ethernet
WLI (Vertical Scalability)
Dell 6850
Windows® Server 2003, Enterprise Edition
4 x 3.4 GHz Intel Xeon Dual Core
16 GB
5 x 146 GB; 10K RPM SCSI
1000 Mbps Ethernet
Database
HP DL 580 G4
Windows® Server 2003, Enterprise Edition
4 x 3.4 GHz Intel Xeon Dual Core
16 GB
8 x 72 GB 15K RPM SCSI with 512 MB battery-backed write cache
1000 Mbps Ethernet
Load Generator
Dell 1850
Windows® Server 2003, Enterprise Edition
2 x 3.0 GHz Intel Xeon HT
4 GB
2 x 146 GB SCSI
1000 Mbps Ethernet
HP DL 360
Windows® Server 2003, Enterprise Edition
2 x 3.0 GHz Intel Xeon HT
4 GB
1 x 136 GB SCSI
1000 Mbps Ethernet
Load Balancer (Horizontal Scalability)
F5 BIG IP 1500
--
--
--
--
1000 Mbps Ethernet

Software Configuration: Horizontal Scalability

Software Configuration: Vertical Scalability

The software configuration for vertical scalability tests is the same as for horizontal scalability tests, except for the following JMS EG settings:

These settings increase the number of message-driven beans for JMS EG in WLI 9.2 from the default value of five to 16. This change has been done in the vertical scaling scenario because the default value was not sufficient to handle a large number of incoming messages.

Database Configuration

 


Scalability Test Results

The following sections describe the results of the scalability tests.

The following figure shows the results of the vertical scalability tests.

Figure A-4 Results of Vertical Scalability Tests

Results of Vertical Scalability Tests

The tests were executed with 1, 2, and 4 CPUs for WLI. The load was increased gradually till the CPU utilization reached 70%. The graph shows that the SLA of 50 purchase orders processed per second with a maximum average CPU utilization of 70% cannot be achieved with four CPUs.

You can fit a curve for the results obtained from the tests, derive an equation for the curve, and use it to estimate the additional hardware resources required, as described in Capacity Estimation.

The following figure shows the results of the horizontal scalability tests.

Figure A-5 Results of Horizontal Scalability Tests

Results of Horizontal Scalability Tests

The tests were executed with 1, 2, and 4 machines, with one managed server in each machine. The graph shows the average TPS at 70% CPU utilization. The graph shows that a 4-node WLI cluster (with one machine per node) can process 54.262 purchase orders at 70% CPU utilization.

 


Capacity Estimation

In the example described here, the required SLA was achieved with the available hardware resources in the horizontal scaling scenario, whereas it was not achieved in the vertical scaling scenario.

If the required SLA is not achieved, you can fit a curve for the results obtained from the tests, derive an equation for the curve, and use it to estimate the additional hardware resources required.

The following figure shows capacity estimation in the vertical scaling scenario.

Figure A-6 Capacity Estimation: Vertical Scaling

Capacity Estimation: Vertical Scaling

For this example, the equation is y = 8.6041x - 0.593, where y is the average TPS and x is the number of CPUs. The curve indicates that WLI applications scale linearly.

Note: This equation is based on the test setup described in this guide. The equation that you must use to estimate capacity would depend on your test setup, nature of your application, and the SLA. In addition, the tests described in this document assume an environment where database- and database I/O-related bottlenecks do not exist.

The following figure shows capacity estimation in the horizontal scaling scenario.

Figure A-7 Capacity Estimation: Horizontal Scaling

Capacity Estimation: Horizontal Scaling

The equation is y = 12.636x + 4.065, where y is the average TPS and x is the number of nodes in the cluster.

Note: This equation is based on the test setup described in this guide. The equation that you must use to estimate capacity would depend on your test setup, nature of your application, and the SLA. In addition, the tests described in this document assume an environment where database- and database I/O-related bottlenecks do not exist.

  Back to Top       Previous  Next