Integration Engine Solutions to Connect Anything to Anything

Log out?

Tuning eiPlatform Memory and CPU Usage

The Problem

The default eiPlatform configuration is designed to work well in most typical installations.  However, this default configuration may not be optimal when processing large documents or a large number of small documents.

Solutions

The following list contains configuration changes that can be made to maximize performance and throughput.

1. Polling Cycles

Most of the listeners operate via polling, where at a set interval they will attempt to retrieve messages from whatever they are listening too. Polling cycle intervals should be set based on two things: how frequently you expect to have new messages to process, and how much of a strain processing each message will place on the system.

2. Max Transactions

Many (although not all) of the listeners have a maximum Transactions setting. This is effectively a message limit, it ensures that in a given polling cycle only that many messages will be picked up and sent into the system via transactions, regardless of how many messages are actually available to process. This is another great way to control how much of a strain you place on the system in any given Route.

3. Cache Type

While processing a transaction, the message data is stored in an internal cache. These caches come in several types based on your needs and can be configured in the eipServer.conf via the “com.pilotfish.eip.transact.defaultCache” property. Here is a quick summary again of the available types:

4. Thread Pool Settings

The most important settings when optimizing transaction concurrency are related to thread pool configuration. The eiPlatform runs transactions in parallel, and each needs a thread for execution. These thread pools can be organized in two different ways, each for a different use case, and controlled by the com.pilotfish.eip.ntm.PoolPerRoute=true or false option in the eipServer.conf:

5. Optimize Thread Pool Settings

In most cases, just choosing the right threading model – per-Route or per-Stage – and using the pool size defaults will be all that’s needed to optimize execution to a better place. If more granular control is desired, there are some things to keep in mind:

6. Increase eiPlatform Max Memory

In the eiPlatform Service.vmoptions file, the max memory setting defaults to 1 GB.  This means that the eiPlatform will not use more than 1 GB of RAM regardless of how much RAM is available on the server.

You can modify the –Xmx property you’ll find in there to a larger amount of megabytes, let’s say 4 GB for now, but it can be whatever you want it to be. To do 4 GB, it would look like –Xmx4096m.


This is a unique website which will require a more modern browser to work! Please upgrade today!