By quite a bit, actually. Eligible Machines can see TCP network throughput increases of up to 4x.
There are two conditions:
- The Machine was created or updated (via
fly deploy) after Nov 8. - The Machine does not register UDP services in its services section.
Machines now take advantage of TCP checksum and segmentation offloading. Instead of splitting up large chunks of data into TCP segments and calculating their checksums, your Machine now says “not my job” and asks the host to do it. By taking advantage of its NIC, the host can get this done much faster because NICs have dedicated hardware circuits for this work. Your Machine however had to rely on its CPU, which is fine if your app sends a slow trickle of, say, 1 Mbit/s but it becomes noticeably slow once you’re trying to saturate your network link.
“Why not UDP,” you ask? That’s because our XDP code assumes that the checksum has already been computed by the time it processes a packet but that’s not the case with offloading enabled.