The compression feature on NetScaler, compresses the HTTP responses sent from the servers to compression-aware browsers, along with saving Bandwidth, it reduces latency on network and also improves client performance. In this blog we will be concentrating on how setting of Global Compression Parameters improves compression behaviour and performance on NetScaler.
- As can be seen with the below mentioned snapshot, we have set the Quantum size as 50Kb. The Quantum size signifies the minimum amount of data, after which data begins to compress. The minimum value is 1, the maximum is 63488 and the default value is 57344.
This quantum size refers to the size of the buffer maintained in the NetScaler for accumulating server response in compression feature. Compression processing is quite heavy on CPU usage. To have an optimized compression process, we set quantum limits to ensure the compression happens after a certain set quantum size, instead of happening every single time response packet comes irrespective of its size.
- Here, we have set the Minimum HTTP response size as 100Kb. This is to ensure so that responses of size less than 100Kb, doesn’t get compressed, as small responses after eating up the CPU in the compression process, might not end up in good compressed result.
- The Bypass compression on CPU usage parameter (which is set to 100 in this case), skips the compression processing if the CPU usage is running at 100%.
- The Compress push packet check box, when enabled, the NetScaler does not wait for the quantum to be filled before starting to compress the data. Upon receipt of a packet with a PUSH flag, compression of the accumulated packets starts immediately.
As can be seen with the below mentioned diagram. The NetScaler intercepts the response received from the server. Now, the NetScalers Buffer of 50Kb quantum size will get filled twice to compress the 100Kb file response and send two 5Kb compressed response to the client.