eG Monitoring
 

Measures reported by CtxNsLBTest

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.

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 CtxNsLBTest 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 inconsitencies in load-balancing early on;

  • Warns administrators of these deviations proactively;

  • Helps initiate changes in the load-balancing algorithm (if required);

The measures made by this test are as follows:

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:

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

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 - i.e., 0 or 1.

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

Vserver_health 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. The detailed diagnosis of this measure, if enabled, reveals the Service Type, Service Name, Port, IP address and State of the virtual server.
Client_cons 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_cons Indicates the number of current connections to the load-balanced application servers behind this virtual server. Number  
Client_cons_in_est Indicates the number of client connections that were in the ESTABLISHED state during the last measurement period. Number  
Server_cons_in_est 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 number 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.
Vserver_spill_over Indicates the number of times the spillover 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_request Indicates the number of deferred requests received on this virtual server during the last measurement period. Number  
Labeled_cons 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
Vserver_hits Indicates the number of virtual server hits during the last measurement period. Number