Batch operators have a number of different options to increase
their batch throughput. If a bottleneck occurs on the client side,
use one or both of the following strategies:
- Multiple Batch Processor application runtime instances—This
involves running two more Batch Processor applications simultaneously.
Each application instance must work with a separate batch input and
output; however they can share the same server-side application instance
or operate against a dedicated instance.
- Concurrent processing within a Batch Processor instance— As mentioned before, Batch Processor is a multithreaded application
that supports concurrent processing of batch records. The number of
threads—consumer processes—can be configured in the Batch Processor
configuration. In general, a higher number of threads yields a higher
throughput up to a certain limit. This limit is usually defined by
a number of factors including physical resources—such as CPU, disk
and memory on the client—or the server-side machine—complexity and
size of the request being processed and so on. Batch developers and
operators should test and tune throughput parameters to suite their
environment to optimize throughput. Since different consumer processes
take different processing times, the pacing option is available. Pacing
enables you to slow down the upstream processes if the downstream
processes take too long to finish. This way, the intermediate queues
to hold the records do not fill-up and cause memory or other runtime
exceptions.
If the bottleneck is on the server-side, then servers can be scaled
to meet the throughput requirements. You can either:
- Increase the physical resources for the given server instance
- Add more server instances to create a cluster.