Compression Test

The Citrix NetScaler appliance compression feature compresses the size of HTTP responses sent from servers to compression-aware browsers and thereby improves the performance of Web sites by reducing the download time of Web content. Bandwidth is also saved in the process. Another indirect benefit of HTTP compression is that the data passed between the Web server and the browser is encrypted by virtue of the compression algorithm, adding more security to the data.

If you enable the Compression feature, the Citrix NetScaler intercepts requests from clients and determines whether the client can accept compressed content. After receiving the HTTP response from the server, the NetScaler examines the content to determine whether it is compressible. If the content is compressible, the NetScaler compresses it, modifies the response header to indicate the type of compression performed, and forwards the compressed content to the client.

The real test of the effectiveness of the compression feature lies in how much data is compressed and how much bandwidth is saved in the process. Besides the compression algorithm employed, when compression occurs and what type of data is compressed also influence how compression is performed and how beneficial it really is. Moreover, errors encountered when decompressing data also serve as factors impacting user-perception on compression and its usefulness. Using the Compression test, administrators can accurately assess the effectiveness of the compression feature, keep a close watch on all factors influencing compression, and understand how these parameters can be fine-tuned to improve compression ratios and increase bandwidth savings.

Target of the test : A NetScaler VPX/MPX

Agent deploying the test : A remote agent

Outputs of the test : One set of results for 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.

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.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

HTTP compression requests

Indicates the number of HTTP compression requests the NetScaler received in the last measurement period for which the response was successfully compressed.

Number

After you enable compression and configure services, if you send requests to the NetScaler with the following header information: Accept-Encoding: gzip, deflate, and NetScaler compresses the corresponding response, this counter is incremented.

HTTP compressible data received

Indicates the amount of HTTP data the NetScaler received in the last measurement period, which can be compressed.

MB

This measure reports the content length of the response that the NetScaler receives from server.

HTTP compressed data transmitted

Indicates the amount of HTTP data the NetScaler sent to the client in the last measurement period after compressing the response from the server.

MB

 

HTTP compressible packets received

Indicates the number of HTTP packets received by NetScaler in the last measurement period, that can be compressed.

Number

 

HTTP compressed packets transmitted

Indicates the number of HTTP packets the NetScaler sent to the client in the last measurement period after compressing the response from the server.

Number

 

HTTP bandwidth saving

Indicates the percentage of bandwidth resources saved due to compression of HTTP traffic.

Percent

A high value is desired for this measure, as it indicates that HTTP compression has managed to save considerable bandwidth resources. This serves as adequate proof of the effectiveness of the HTTP compression algorithm.

On the other hand, a very low value of this measure is indicative of ineffective compression of HTTP traffic.

HTTP compression ratio

Indicates the ratio of the compressible HTTP data received from the server to the compressed HTTP data sent to the client.

Percent

The higher the compression ratio, the greater the bandwidth savings! This is why, a value close to 100% for this measure is indicative of a very effective HTTP compression mechanism, which is bound to result in significant savings in bandwidth usage.

On the other hand, a very low value for this measure indicates that only a small amount of the compressible HTTP data has been successfully compressed, thus resulting in poor bandwidth savings.

Total HTTP compression ratio

Indicates the ratio of total HTTP data received to total HTTP data transmitted.

Percent

The value of this measure indicates what percentage of HTTP data has been compressed. A high value is hence desired for this measure.

TCP compressible data received

Indicates the amount of TCP data the NetScaler received in the last measurement period, which can be compressed.

MB

This measure reports the content length of the TCP response that the NetScaler receives from server.

TCP compressed data transmitted

Indicates the amount of TCP data the NetScaler sent to the client in the last measurement period after compressing the response from the server.

MB

 

TCP compressible packets received

Indicates the number of TCP packets received by NetScaler in the last measurement period that can be compressed.

Number

 

TCP compressed packets transmitted

Indicates the number of TCP packets the NetScaler sent to the client in the last measurement period after compressing the response from the server.

Number

 

TCP bandwidth saving

Indicates the percentage of bandwidth resources saved due to compression of TCP traffic.

Percent

A high value is desired for this measure, as it indicates that TCP compression has managed to save considerable bandwidth resources. This serves as adequate proof of the effectiveness of the TCP compression algorithm.

On the other hand, a very low value of this measure is indicative of ineffective compression of TCP traffic.

TCP compression ratio

Indicates the ratio of the compressible TCP data received from the server to the compressed TCP data sent to the client.

Percent

The higher the compression ratio, the greater the bandwidth savings! This is why, a value close to 100% for this measure is indicative of a very effective TCP compression mechanism, which is bound to result in significant savings in bandwidth usage.

On the other hand, a very low value for this measure indicates that only a small amount of the compressible TCP data has been successfully compressed, thus resulting in poor bandwidth savings.

Quantum compression

Indicates the number of times NetScaler compresses a quantum of data.

Number

The NetScaler appliance buffers the data received from the server until it reaches a configured quantum size and then compresses the buffered data and transmits it to the client. The minimum value of the quantumSize configuration is 1 KB, the maximum is 63488 KB and the default value is 57344 KB.

Since compression is a CPU-intensive operation, setting a quantumSize ensures that compression does not take place every time a response packet comes in, and instead occurs only when the response packets are of the quantumSize configured.

A high value for this measure could indicate a very low quantumSize configuration, which is causing compression to occur frequently. This in turn, can put a strain on the CPU resources, if quantumSize is not increased soon. 

Push flag compression

Indicates the number of times NetScaler compressed data in the last measurement period, upon receiving a TCP PUSH flag from the server.

Number

The PUSH flag ensures that data is compressed immediately without waiting for the buffered data size to reach the quantumSize.

If the compression occurs frequently, despite setting a high quantumSize, you may want to check the PUSH flag status. If this flag is enabled, it is a clear indicator that the quantumSize has been ignored.

To reduce the frequency of compression and to conserve CPU resources, you may want to keep the PUSH flag disabled.

End of input compression

Indicates the number of times NetScaler compressed data in the last measurement period, upon receiving End of Input (FIN packet).

Number

When the NetScaler receives End Of Input (FIN packet), it compresses the buffered data immediately without waiting for the buffered data size to reach the quantum size.

If the compression occurs frequently, despite setting a high quantumSize and disabling the PUSH flag, it could be because the the End of input packet has been received.

Timer compression

Indicates the number of times in the last measurement period, NetScaler compressed data because the data accumulation timer expired.

Number

The timer expires if the server response is very slow and consequently, the NetScaler does not receive response for a certain amount of time. Under such a condition, the NetScaler compresses the buffered data immediately without waiting for the buffered data size to reach the quantum size.

If frequent timer expiry is causing compression to occur frequently, you may want to reset the timer to wait for a longer time before compressing buffered data.

Compressed data received

Indicates the total amount of compressed data received by NetScaler in the last measurement period.

MB

 

Decompressed data transmitted

Indicates the total amount of decompressed data transmitted by NetScaler during the last measurement period.

MB

 

Compressed packets received

Indicates the number of compressed packets received by NetScaler during the last measurement period.

Number

 

Decompressed packets transmitted

Indicates the number of decompressed packets transmitted by NetScaler during the last measurement period.

Number

 

Decompression ratio

Indicates the ratio of decompressed data transmitted to compressed data received.

Percent

A high value is indicative of an efficient decompressing mechanism.

Wrong data

Indicates the number of data errors encountered when decompressing during the last measurement period.

Number

Ideally, the value of this measure should be 0.

Less data

Indicates the number of times in the last measurement period, NetScaler received less data than declared by the protocol.

Number

 

More data

Indicates the number of times in the last measurement period, NetScaler received more data than declared by the protocol.

Number

 

Memory failures

Indicates the number of times memory failures occurred when decompressing, during the last measurement period.

Number

Ideally, the value of this measure should be 0.

Unknown

Indicates the number of times unknown errors occurred while decompressing, during the last measurement period.

Number

Ideally, the value of this measure should be 0.