Improving the Performance
There are several factors that contribute towards the performance of TIBCO Service Performance Manager.
The following are the recommendations for performance improvement.
Client Batching
TIBCO Service Performance Manager Client API supports a time and count based batch. Whenever a time threshold or a count threshold is reached, the batch of facts is bundled as a single message and sent to the EMS server. The optimization is because the database inserts a batch of facts in a single transaction and all associated metric computations for this batch as a single database transaction per hierarchy.
Server Batching
In addition to client batching, server side batching is also performed. Client batches are further batched inside the server for processing, for enhanced performance.
Do not save facts, if possible
If you do not save facts, you get the best performance. If facts need to be saved, determine how many of them can be stored, since it would impact performance.
Size the facts table and purge frequencies
If you choose to save the facts, it is very important to keep the size of the facts table in check such that performance is not impacted.
Do not use processed facts table
Maintenance of yet another set of tables increases the load on the database to a great extent. Rely on TIBCO Enterprise Message Service for failures and recovery processing.
Use a large L1 cache
We recommend using as much RAM as possible and a proportionately large L1 cache.
Use a machine with large number of cores
Each of the dimension hierarchies as defined in the schema, takes up one CPU core for processing. Besides, a large number of threads would be required to efficiently serve streaming queries, snapshot queries, and rule evaluations. We recommend a multicore server class machine for running the Service Performance Manager server.