ADC

Flush the surge queue

When a physical server receives a surge of requests, it becomes slow to respond to the clients that are currently connected to it, which leaves users dissatisfied and disgruntled. Often, the overload also causes clients to receive error pages. To avoid such overloads, the Citrix ADC appliance provides features such as surge protection, which controls the rate at which new connections to a service can be established.

The appliance does connection multiplexing between clients and physical servers. When it receives a client request to access a service on a server, the appliance looks for an already established connection to the server that is free. If it finds a free connection, it uses that connection to establish a virtual link between the client and the server. If it does not find an existing free connection, the appliance establishes a new connection with the server, and establishes a virtual link between a client and the server. However, if the appliance cannot establish a new connection with the server, it sends the client request to a surge queue. If all the physical servers bound to the load balancing or content switching virtual server reach the upper limit on client connections (max client value, surge protection threshold or maximum capacity of the service), the appliance cannot establish a connection with any server. The surge protection feature uses the surge queue to regulate the speed at which connections are opened with the physical servers. The appliance maintains a different surge queue for each service bound to the virtual server.

The length of a surge queue increases whenever a request comes for which the appliance cannot establish a connection, and the length decreases whenever a request in the queue gets sent to the server or a request gets timed out and is removed from the queue.

If the surge queue for a service or service group becomes too long, you may want to flush it. You can flush the surge queue of a specific service or service group, or of all the services and service groups bound to a load balancing virtual server. Flushing a surge queue does not affect the existing connections. Only the requests present in the surge queue get deleted. For those requests, the client has to make a fresh request.

You can also flush the surge queue of a content switching virtual server. If a content switching virtual server forwards some requests to a particular load balancing virtual server, and the load balancing virtual server also receives some other requests, when you flush the surge queue of the content switching virtual server, only the requests received from this content switching virtual server are flushed. The other requests in the surge queue of the load balancing virtual server are not flushed.

Note:

  • You cannot flush the surge queues of cache redirection, authentication, VPN, or GSLB virtual servers or GSLB services.

  • Do not use the Surge Protection feature if Use Source IP (USIP) is enabled.

Flush a surge queue by using the CLI

The flush ns surgeQ command works in the following manner:

  • You can specify the name of a service, service group, or virtual server whose surge queue has to be flushed.
  • If you specify a name while running the command, the surge queue of the specified entity is flushed. If more than one entity has the same name, the appliance flushes surge queues of all those entities.
  • If you specify the name of a service group, and a server name and port while running the command, the appliance flushes the surge queue of only the specified service group member.
  • You cannot directly specify a service group member <serverName> and <port> without specifying the name of the service group <name> and you cannot specify <port> without a <serverName>. Specify the <serverName> and <port> if you want to flush the surge queue for a specific service group member.
  • If you run the command without specifying any names, the appliance flushes the surge queues of all the entities present on the appliance.
  • If a service group member is identified with a server name, you must specify the server name in this command; you cannot specify its IP address.

At the command prompt, type:

flush ns surgeQ [-name <name>] [-serverName <serverName> <port>]

Examples

  1. flush ns surgeQ –name SVC1ANZGB –serverName 10.10.10.1 80

    The preceding command flushes the surge queue of the service or virtual server that is named SVC1ANZGB and has IP address as 10.10.10

  2. flush ns surgeQ

    The preceding command flushes all the surge queues on the appliance.

Flush a surge queue by using the GUI

Navigate to Traffic Management > Content Switching > Virtual Servers, select a virtual server and, in the Action list, select Flush Surge Queue.

Flush the surge queue