Forum Discussion

Doug_104173's avatar
Doug_104173
Icon for Nimbostratus rankNimbostratus
Jul 16, 2010

Simple Compression Question

Hopefully this is simple. If it apply the http compression profile on my LTM, will that compress traffic between the client and LTM AND compress traffic between the LTM and the nodes as well? Or is it only on the client side?

9 Replies

  • Posted By Doug on 07/16/2010 12:16 PM

     

    Is there a way to compress it on the node side?

     

     

    Doug, With compression, you're compressing the responses to requests. Since your servers won't be initiating requests and therefore won't be receiving responses, there's really nothing to compress. If you want to optimize connections between the F5 and servers, you can look into multiplexing using OneConnect...what exactly are you trying to accomplish?
  • We have a cluster of Cassandra servers on the backend and I wanted to compress the traffic to to reduce overall network utilization. The backend Cassandra servers communicate over port 80 via an nginx proxy and answer requests from the front end client servers for DB look ups. We need to load balance the http requests from the front end clients to the many backend Cassandra nodes, which is where the LTM comes in.

     

     

    Alternatively I could just have all the requests from the clients originate compressed and just pass through the LTM, skipping compression altogether.
  • LTM can only compress server responses. A few people have mentioned that they'd like to be able to compress requests to the pool. You might try opening a case with F5 Support and ask them if there is an existing change request for this. If so, they can add your request to it. If not, they can create one for you.

     

     

    Aaron
  • Hamish's avatar
    Hamish
    Icon for Cirrocumulus rankCirrocumulus
    I used to wonder about this too.

     

     

    But apart from using the F5 across the WAN (For which there's a module), where else would you want to incur the overhead of compressing and decompressing the traffic between the LTM and the servers? The whole idea of LTM's is to reduce the load on the servers. Not increase it by adding complexity to the data they have to handle

     

     

    OK. Maybe there's are 1 or 2 borderline situations where the servers have oodles of CPU but saturated network links... In which case I say why don't you add server network interfaces... (e.g. etherchannel)

     

     

    H
  • Yeah, like you say, the only use case I can think of where compressing serverside requests would make sense is for load balancing across WANs or other slow networks. I haven't seen many servers that handle compressed request data either. Maybe that's why F5 hasn't made the option available.

     

     

    Aaron
  • For this particular use case that's the burning question: how utilized is your backend to the nginx farm? Are the systems all locally connected or is there WAN involved as mentioned above? It's pretty rare to see saturation on the back end these days so I'm curious to home in on your specific concerns here. The CPU hit of compress/decompress on the backside is likely going to bite you before the network will, at least in most cases.

     

     

    -Matt
  • I've just been browsing the iRules wiki and it would seem request compression is supported in v11, as indicated by the COMPRESS:: enable 'request' subcommand: https://devcentral.f5.com/wiki/iRules.COMPRESS__enable.ashx. No real detail on how it works but I'm sure it could be tested quite easily.