Port compression was originally introduced to IBM Notes/Domino 6 as a way to significantly reduce the amount of network traffic sent/received by IBM Notes and Domino devices. To enable port compression on servers, simply go to the Server tab in the Domino Administrator, while on Notes clients the same can be done via a setup or desktop policy setting. Port compression must be enabled on both sides of a network connection in order for it to work, but that’s a pretty small price to pay for an up to ~70% reduction of network traffic. But precisely that “~70% of network traffic” is what this post is about, as understanding how well port compression actually works in your environment is not a readily available statistic.
But as it turns out, there is a way to see what exactly is going on, since each client and server creates a session log with a session activity document. Opening such a document in the log.nsf shows us who created the session, which ports were used, the session duration, network usage as well as some usage statistics.
Hidden in this document though, is a lot more information, specifically about port compression. Every session activity document actually has several hidden fields as follows:
SentFromServer and SentToServer – actual amount of data in bytes, sent and received by this session.
SentFromServerUncompressed and SendToServerUncompressed – amount of data, if port compression was not enabled on either the user or the server side.
SendFromServerCompressed and SentToServerCompressed – amount of data, if port compression was enabled.
Disclaimer: The SentTo/FromServerCompressed and SentTo/FromServerUncompressed fields don’t tell us the actual, exact amount of bytes sent over the network. They tell us the net-weight of the data since IBM Domino/Notes has to wrap the raw data into several protocol layers after port compression takes place, so in reality, the actual amount of traffic generated on your network is slightly higher.
So now that you know where all this information lives, it’s quite easy to do some calculations on how well port compression actually works.
Just adding up all the hidden fields allows you to come up with some interesting answers:
Amount of traffic that runs through your server without port compression = SentToServerUncompressed + SentFromServerUncompressed
Amout of data transfered by this server with port compression = SentToServerCompressed + SentFromServerCompressed
Portion of network traffic that uses/doesn’t use port compression = sum of the number of sessions that take place with/without compression
Number of users on this server that have port compression enabled/disabled = sum of number of unique users with compressed/uncompressed traffic listings. And of course, from this you can extract a list of users, that do not have port compression enabled.
For the data geeks among you, here some extra math to help you calculate the real world compression rate of port compression. We define:
net_bytes – bytes send or received by a server. This is the real amount of data, sent over the network port, including the payload data and protocol overhead (the sum of all SentToServer and SentFromServer)
uncompressed_bytes – size in bytes of the original, uncompressed payload
compressed_bytes – size in bytes of the payload after compression
Now it is pretty easy to get some statistical information that can even be used as some Key Performance Indicators (KPI).
First, you can now calculate the compression_win, which is the amount of bytes the payload is reduced due to port compression, which is = uncompressed_bytes – compressed_bytes.
Secondly, by knowing the compression win, we can also estimate the amount of traffic that would have happened, if port compression was not in place, which is net_bytes_without_portcompression = net_bytes + compression_win
Taking this one step further, with this information, we can calculate the effective compression ratio:
This gives you an excellent overview of how well port compression really works on your network and how broadly it is enabled in your environment.
Sneak peek/blatant plug alert: While numbers are wonderful, there is nothing like visualization to truly understand data. This is one of the many reasons we came up with iDNA, which allows for real-time analysis and beautiful visualization of your infrastructure components, including port compression (which is shown below) right from a browser window.