Use this task to improve the performance of business processes.
Before you begin
After successfully running business processes, you can perform this
task to improve performance.
Steps for this task
- Define how to measure the baseline performance, and which measurements
you want to optimize.
For example, for some business applications,
it is preferable to reduce the response time for end-users under peak-load
conditions. For other applications, the rate that the system can process transactions
might be more important than the actual duration of each transaction.
- Make baseline measurements.
Make the baseline measurements
under conditions of load, time-of-day, and day-of-week that are appropriate
for tuning your application. Normally, the most important baseline measurements
are the throughput and response times. Throughput values are measured after
a specific bottleneck capacity is reached, for example 100% CPU load, disk
I/O at maximum, or network I/O at 100%. Reliable response time values are
best measured for a single process instance during low server utilization.
- Tune the processes.
Depending on whether your application
uses long-running processes or microflows, perform one of the following steps:
- To tune long-running processes, perform the steps that are described
in Tuning long-running processes. These processes tend to
run for a long time, but can be interrupted by events or human interaction.
Their performance therefore depends on the performance of the Business Process
Choreographer database and the messaging service.
- To tune microflows, perform the steps that are described in Tuning microflows. These processes tend to run for
only a short time. They use the database only for audit logging, if enabled,
and to retrieve the template information. They do not use messaging support
for storing persistent data. These processes involve no human interaction.
- Tune the application.
Many different options are
available to achieve the same functionality in an application, and some of
them are more efficient than others. Identify and review any performance-critical
code. Maximize asynchronicity, and ensure that actions are not unnecessarily
serialized. Try to minimize the amount and complexity of data submitted to
the process, as serialization/deserialization costs are directly related to
the size and complexity of data objects used in the process. Consider shortening
timeouts that do not result in error conditions. Identify opportunities to
cache the results of database queries.
- Review the current configuration for performance bottlenecks that
can be eliminated.
Possibilities to consider include:
- Installing more processors, more memory, and faster disks.
- Storing the database logs on different physical disks from the data, and
distributing the data on several disks.
- Using DB2®,
rather than Cloudscape™,
for optimal performance.
- Repeat the benchmark measurements under similar load conditions
to those of the baseline measurements.
Keep a permanent record
of the application performance measurements to objectively measure any future
changes in performance.
Result
The business processes are configured to run measurably faster.