How threshold monitoring works

Ideally, an applications request rate relates linearly to response rate as shown in Figure 2-1.

However, performance of any application depends on availability of resources like CPU, memory, network connections, and swap space. These resources are limited, and when they are exhausted, the response rate degrades. Due to resource limits, the response rate is expected to level off when the number of incoming requests reaches the point where resources are exhausted, as shown in Figure 2-2. However, in practice, an unlimited increase in incoming requests can cause performance to degrade; the response rate can drop in this case. In extreme cases, the application may run out of memory and abend or hang.

Figure 2-1: Ideal response rate curve

Figure 2-2: Expected response rate curve

Threshold monitoring allows you to configure the system to operate at a constant response rate and avoid out-of-memory conditions under high load conditions. EAServer uses these algorithms to heuristically govern the request rate when high load conditions are detected:

Threshold monitoring requires associating a thread monitor with the performance constraint to be monitored. Under stress conditions, the thread monitors Maximum Active Threads property throttles the load. When the performance threshold is crossed, new client requests must acquire the thread monitor before proceeding. If the thread monitor has no available threads, the request blocks temporarily until a thread is available. You can modify the thread monitor’s Maximum Active Threads property to tune the response rate curve.