11.6. CPU Saturation

When your system is running with maximum CPU utilization, the transmitting and receiving threads within the Cascade DataHub must all share the CPU available. This will cause data to be queued more frequently, and will cause the DataHub to take measures to cope with the lack of CPU. The DataHub treats a high-CPU condition as if the various connections cannot consume data as quickly as it is available. It will begin tracking and ultimately discarding old data values, and will more aggressively accumulate data changes into larger messages wherever possible. The DataHub's goal is to ensure that latency remains low, that all clients continue to receive data, and that the clients always receive the most recent data that is available.

This effort to cope with reduced resource availability also uses more CPU, somewhat further increasing the system load. If old value queues are deep, the system can reach a "tipping point" from which it is difficult to recover without severely reducing the input data rate.

How to Optimize

Avoid running your system at maximum CPU capacity.