What does the Offloading option in the Compression profile do?
Short answer
While Offloading is on, TR7 removes the compression request when forwarding the request to the Backend Service; the Backend Service sends the response uncompressed, and compression is done only in TR7, according to the Compression Algorithm, Compression Level and File Types list in the profile. This way, the processor load of compression is taken off the Backend Service and a single compression policy is applied on all servers. The option is off by default and is not related to SSL offloading (What is SSL offloading (termination), and how is it set up?).
How Does It Work?
The client announces the compression types it supports with the Accept-Encoding header in the request. While Offloading is off, this header reaches the Backend Service and the server can compress the response itself; TR7 does not compress an already compressed response again. While Offloading is on, the header is not forwarded to the Backend Service, the response arrives uncompressed and TR7 compresses it (Offloading behavior).
| Offloading off | Offloading on | |
|---|---|---|
| Request going to the Backend Service | The client's compression request is forwarded | The compression request is removed |
| Who compresses | The Backend Service (if configured) or TR7 | TR7 only |
| Processor load of the Backend Service | Present if it compresses | None |
| Policy | Can vary according to the servers' settings | The File types and level in the profile |
Offloading in TR7
- Where: Load Balancer → Profiles → Compression → right-click on the profile row → Edit (or Add) → the Offloading switch → Save. In the built-in Default profile, Offloading is off.
- vService type: HTTP only.
- Effect of the change: The Offloading switch on its own does not restart the vService; the save is applied without dropping open connections. If Compression level also changes in the same save, the vService restarts (What should the Compression Level be; what is its effect on CPU?). In a cluster, it is also sent to the peer device with the default auto-sync; if Manual Sync Mode is on, it is sent with Synchronize.
- Monitoring: On the Details tab in the preview of the profile, Offloading appears as "Yes" only while it is on (preview of the selected profile). The effect is seen as an increase in the amount of compressed bytes on the Compression graph on the HTTP Frontend tab of the vService dashboard; on the Backend Service side, the
Accept-Encodingheader is not present in incoming requests. - When it is turned on: If the processor of the Backend Services is to be relieved or if the compression settings are inconsistent among the servers. If the Backend Service already compresses efficiently, it can be left off (operational best practices).
Common Misconceptions
- "Offloading hands the SSL/TLS processing over to TR7." This option is related only to compression; terminating TLS on TR7 is a separate topic (What is SSL offloading (termination), and how is it set up?).
- "Offloading hands compression over to hardware." Compression is done in TR7 itself.
- "When Offloading is turned on, all types are compressed." Only the types in the File types list are compressed; if there are other types that the Backend Service compressed before, they are added to the list; otherwise these types go uncompressed.
How it is done in the documentation
