NetScaler HTTP infrastructure supports different queues for various features. Most of these queuing features relate to server farm security and scalability. Most of the queues are so fundamental that they are always used with various protection features in NetScaler. Here is a brief overview of various queues and their purpose.
1) SureConnect Queue
This Queue is maintained to ensure that clients request gets proper response from backend server. This becomes handy in cases where server is too busy processing other client requests or it is tied up in sending large response. If SureConnect is configured and the policy matches with traffic behavior then this is the first queue where client requests will be put. Client requests from this queue will be served before any other queues in system. This is done in weighted fair queuing method to avoid starvation of low level queues.
2) Priority Queue
Priority Queues are activated based on the PQ policies configured on NetScaler. We can support 3 levels of priority queues for incoming client requests. All 3 queues are maintained separately and NetScaler ensures to serve connections in level1 queue before level2 queue. Similarly it services connections in level2 queue before serving connections from level3 queue.
3) DOS Queue
DOS Queue is maintained for HTTP DoS attack protection feature. All incoming clients which cannot be serviced immediately are put in the Surge Queue. When NetScaler detects a HTTP DOS attack based on configured policies, it samples client connections present in Surge Queue based on rate and sends back a challenge response. Client connections which responds to the challenge are then put in the DOS queue which is served before the Surge Queue.
4) Surge Queue
Surge Queue is the default queue every connection will land up in if it does not go to any of the above mentioned queues. This queue is maintained for every configured or dynamically learnt server on NetScaler. The Surge Protection feature also works based on this queue and regulates the speed at which connection should be opened up with backend servers.
Queues based on priority order:
|PQ – Level1||1|
|PQ – Level2||2|
|PQ – Level3||3|