QosFilter
The QosFilter can be used as an alternative for certain mod-qos features.
ch::nevis::nevisproxy::filter::qos::QosFilter
libQosFilters.so.1
Configuration
MaxConcurrentRequests
Type: Integer
Usage Constraint: optional
Maximal number of parallel requests. If this limit is reached, depending on the configured parameters MaxConcurrentRequests.MaxQueueSize and MaxConcurrentRequests.WaitTimeout, the request will be blocked or it will wait until another request has finished.
MaxConcurrentRequests.MaxQueueSize
Type: Integer
Usage Constraint: optional
Default: 0
The maximal number of request that should wait if MaxConcurrentRequests has been reached. If the MaxConcurrentRequests.MaxQueueSize has been reached, a 503 (Service Unavailable) will be sent back and the event QS01 will be traced.
MaxConcurrentRequests.WaitTimeout
Type: Integer
Usage Constraint: required if MaxConcurrentRequests.MaxQueueSize is > 0
The timout in milliseconds to wait if MaxConcurrentRequests have been reached and less than MaxConcurrentRequests.MaxQueueSize requests are waiting.
If the timeout has been reached, a 504 (Gateway Timeout) will be sent back and the event QS02 will be traced.
Each requests that are added into the QoSFilter's queue will be sent to the backend even if the client connection got terminated during the wait.
This could lead to high latencies when the configured backend is struggling to serve requests and MaxConcurrentRequests.WaitTimeout is set to a high value.
To avoid that, use a low value for MaxConcurrentRequests.WaitTimeout or expect that under load, the requests' processing time are increased by the configured WaitTimeout.