Load Balancing Virtual Servers Test

The load balancing feature is a core feature of the NetScaler appliance. The load balancing feature distributes user requests for Web site pages and other protected applications across multiple servers that all host (or mirror) the same content.

A load balancing setup includes a load-balancing virtual server and multiple load-balanced application servers. The virtual server receives incoming client requests, uses the load balancing algorithm to select an application server, and forwards the requests to the selected application server. The following conceptual drawing illustrates a typical load balancing deployment.

http://support.citrix.com/proddocs/topic/netscaler-load-balancing-93/LB-Architecture-1.PNG

Figure 1 : Load balancing architecture

The entities that you configure in a typical NetScaler load balancing setup are:

  • Load balancing virtual server. The IP address, port, and protocol combination to which a client sends connection requests for a particular load-balanced website or application. If the application is accessible from the Internet, the virtual server IP address (VIP) is a public IP address. If the application is accessible only from the local area network (LAN) or wide area network (WAN), the VIP is usually a private (ICANN non-routable) IP address.
  • Service. The IP address, port, and protocol combination used to route requests to a specific load-balanced application server. A service can be a logical representation of the application server itself, or of an application running on a server that hosts multiple applications. Each service is bound to a specific virtual server.
  • Server object. An entity that identifies a physical server and provides the server's IP address. If you want to use the server's IP address as the name of the server object, you can enter the server's IP address when you create a service, and the server object is then created automatically. Alternatively, you can create the server object first and assign it an FQDN or other name, and then specify that name instead of the IP address when you create the service.
  • Monitor. An entity on the NetScaler appliance that tracks a service and ensures that it is operating correctly. The monitor periodically probes (or performs a health check on) each service to which you assign it. If the service does not respond within the time specified by the time-out, and a specified number of health checks fail, that service is marked DOWN. The NetScaler appliance then skips that service when performing load balancing, until the issues that caused the service to quit responding are fixed.

The load balancing virtual server can use any of a number of algorithms (or methods) to determine how to distribute load among the load-balanced servers that it manages. The default load balancing method is the least connection method, in which the NetScaler appliance forwards each incoming client connection to whichever load-balanced application server currently has the fewest active user connections.

Since load balancing manages user requests to heavily used applications, it prevents poor performance and outages. Irregularities in load-balancing can hence cause significant delays in request processing, thus adversely impacting the user experience with a load-balanced application. To avoid this, you need to configure the periodic execution of the Load Balancing Virtual Servers test. For each virtual server configured on the NetScaler appliance, this test does the following:

  • Verifies and promptly reports the non-availability / abnormal state of the virtual servers;
  • Continuously monitors the load on the load-balancing virtual servers and reveals how well each server processes client requests;
  • Detects inconsistencies in load-balancing early on;
  • Warns administrators of these deviations proactively;
  • Helps initiate changes in the load-balancing algorithm (if required);

Target of the test : A NetScaler VPX/MPX

Agent deploying the test : A remote agent

Outputs of the test : One set of results for each load balancing virtual server configured on the NetScaler appliance being monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

The IP address of the host for which the test is being configured.

NetScaler Username and NetScaler Password

To monitor a NetScaler device, the eG agent should be configured with the credentials of a user with read-only privileges to the target NetScaler device. Specify the credentials of such a user in the NetScaler Username and NetScaler Password text boxes.

Confirm Password

Confirm the NetScaler Password by retyping it here.

SSL

The eG agent collects performance metrics by invoking NITRO (NetScaler Interface Through Restful interfaces and Objects) APIs on the target NetScaler device. Typically, the NITRO APIs can be invoked through the HTTP or the HTTPS mode. By default, the eG agent invokes the NITRO APIs using the HTTPS mode. This is why, the SSL flag is set to Yes by default. If the target NetScaler device is not SSL-enabled, then the NITRO APIs can be accessed through the HTTP mode only. In this case, set the SSL flag to No.

Show Up Server Only

The default setting of this flag is No; this indicates that this test, by default, monitors all the services configured in a NetScaler device. If you want the test to monitor only those services that are up and running currently, then set this value to Yes.

Exclude Servers

Provide a comma-separated list of virtual server names or name patterns that need to be excluded from monitoring. By default, this is set to none, indicating that all virtual servers are by default monitored.

Detailed Diagnosis

To make diagnosis more efficient and accurate, the eG Enterprise embeds an optional detailed diagnostic capability. With this capability, the eG agents can be configured to run detailed, more elaborate tests as and when specific problems are detected. To enable the detailed diagnosis capability of this test for a particular server, choose the On option. To disable the capability, click on the Off option.

The option to selectively enable/disable the detailed diagnosis capability will be available only if the following conditions are fulfilled:

  • The eG manager license should allow the detailed diagnosis capability
  • Both the normal and abnormal frequencies configured for the detailed diagnosis measures should not be 0.
Measurements made by the test
Measurement Description Measurement Unit Interpretation

Server state

Indicates the current state of this virtual server.

 

The values reported by this measure and their numeric equivalents are as shown in the table:

Numeric Value Measure Value
0 Up
1 Down
2 Out of service
3 Transition out of service
4 Down when going out of service
-1 Unknown

Note:

By default, this measure reports the above-mentioned Measure Values while indicating the virtual server state. However, in the graph of this, the states will be represented using the corresponding numeric equivalents only.

The detailed diagnosis of this measure shows the Service Type, Primary Port and the Primary IP address of the virtual server.

Virtual server health status

Indicates the current health of this virtual server.

Percent

A high value is desired for this measure, as low values are indicative of unhealthy state.

Use the detailed diagnosis of this measure to know which service is bounding with the virtual server.

Client connections

Indicates the current number of client connections to this virtual server.

Number

This is a good indicator of the load on the virtual server. Compare the values of this measure across virtual servers to determine which virtual server is heavily loaded currently.

Server connections

Indicates the number of current connections to the load-balanced application servers behind this virtual server.

Number

 

Client connections in established state

Indicates the number of client connections that were in the ESTABLISHED state during the last measurement period.

Number

 

Server connections in established state

Indicates the number of server connections that were in the ESTABLISHED state during the last measurement period.

Number

 

Data received

Indicates the amount of request data received on this service or virtual server during the last measurement period.

MB

These measures serve as effective indicators of data/packet load on a virtual server.

Data transmitted

Indicates the amount of response data transmitted by this service or virtual server during the last measurement period.

MB

Packets received:

Indicates the number of packets received on this service or virtual server during the last measurement period.

Number

Packets sent

Indicates the number of packets sent by this service or virtual server during the last measurement period.

Number

Requests received:

Indicates the number of requests received on this service or virtual server during the last measurement period.

Number

If the number of Requests received is a lot higher than the Responses received for a virtual server, it indicates that many requests are still pending processing on the virtual server; one of the reasons for latencies in request processing is an inefficient load-balancing algorithm.

Responses received

Indicates the amount of responses received by this service or virtual server during the last measurement period.

Number

Spill over threshold

Indicates the spillover threshold that was set on the virtual server during the last measurement period.

Number

Spillover is a means to divert new connections to a vserver to a backup vserver when the number of connections to the vserver exceeds the threshold value. Spillover can either be connection-based or dynamic.

Virtual server experienced spill over

Indicates the number of times the spill over threshold was exceeded by this virtual server during the last measurement period.

 

Number

A connection overload can cause a spillover. A high value of this measure indicates that the virtual server was often overloaded with connections. This can in turn be caused by inefficient load-balancing by the virtual server.

 

Deferred requests

Indicates the number of deferred requests received on this virtual server during the last measurement period.

Number

 

Labeled connections

Indicates the number of client connections to this virtual server that were labeled during the last measurement period.

Number

The NetScaler Web 2.0 push feature enables the server to label a client connection and subsequently identify and send data over that labeled connection. With NetScaler Web 2.0 push enabled, the client first establishes a TCP/IP connection and connects to the NetScaler appliance. The appliance uses the configured load balancing method or content switching policy to select a Web server (referred to as a notification server) to which the request is to be forwarded. The appliance then initiates the labeling protocol with the Web server. This protocol enables the Web server to label the connection and defer the response. The protocol also enables the server to process other requests without invoking push processing. 

Upon receipt of the deferred response from the Web server, the appliance starts waiting for updates from the Web server. When updates become available, the Web server uses the message push protocol to push the updates/messages to a push virtual server. A push virtual server is a load balancing virtual server with service type PUSH or SSL_PUSH. The appliance then processes updates/messages and uses the label to 'push' the updates to the client. This way, the NetScaler Web 2.0 push feature helps reduce the frequent polling of the Web server for updates, and thus minimizes the load on the server.

From a load-balancing perspective therefore, a large number of Labelled connections and Push labels are desired.

Push labels

Indicates the number of labels for this push virtual server during the last measurement period.

Number

Virtual server hits

Indicates the number of virtual server hits during the last measurement period.

Number

 

Number of active services

Indicates the number of active services during the last measurement period.

Number

 

Number of inactive services

Indicates the number of inactive services during the last measurement period.

Number

 

Number of requests in the surge queue

Indicates the number of surge queues during the last measurement period.

Number

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. The Citrix ADC appliance provides features such as surge protection, which controls the rate at which new connections to a service can be established and thus avoid overloads.

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 the 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. A high value for this measure therefore may imply that many requests are unable to connect to the server. The length of a surge queue decreases in any of the following conditions:

  • A request in the queue gets sent to the server.

  • 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 might 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.

Requests in vserver's surgeQ

Indicates the number of requests in the surge queues of vservers during the last measurement period.

Number

Requests in service's surgeQs

Indicates the number of requests in the surge queues of services during the last measurement period.

Number

Invalid Request/Response

Indicates the number of invalid requests or responses during the last measurement period.

Number

Ideally, the value of this measure should be 0.

Invalid Request/Response Dropped

Indicates the number of invalid requests or responses dropped during the last measurement period.

Number

Ideally, the value of this measure should be 0.

Vserver Down Backup Hits

Indicates the number of times traffic was diverted to backup vserver since primary vserver was DOWN.

Number

A backup virtual server is one to which to requests are forwarded if the primary virtual server goes DOWN or reaches its spillover threshold.

A high value for this measure could therefore indicate that the virtual server is down or that the spillover threshold has been violated.