Performance tuning and scaling
In the context of FTM performance, tuning is about optimizing the deployment topology and configuration to handle a target load on the environment in question.
It is important to note that an optimal configuration on one environment, payment process, and load cannot necessarily be the optimal configuration for a different environment, process, or load. Performance tuning involves all aspects of a solution such as the infrastructure, Red Hat® OpenShift® cluster, database, etc. A bottleneck in any aspect of the solution can impact the performance. It is an iterative process that involves gradually increasing resources and scaling components until the target requirement is met.
The general guidelines that need to be followed for an optimal performance are shown in the following list.
- Start with a low load and increase the load in stages to attain the target load.
- Monitor all areas of the solution and review the behavior of each test.
- When the load increases, identify the bottlenecks such as shown in the following list.
- IBM® MQ message backlog on component input queues (scale out component)
- High CPU consumption or throttling (increase available CPU resources)
- Storage or network i/o waits (address storage or network issues)
- Poor database bufferpool hit ratios (increase bufferpool sizes)
- Excessive virtual memory paging (increase memory)
- Excessive java garbage collection pauses (tune JVM)
- Database lock contention
- Thread synchronization lock waits
- Retest and repeat.
After the expected behavior and performance are achieved, retain the test and monitor data as a baseline for future comparison.