UPDATE: Okay, so I figured it out and now everything is working the way it should. I had to change the hash algorithm from using the MAC address to using the IP address. I had changed this on my switch before with no effect but figured out that I also needed to change this on the server. For linux (or at least for ubuntu) you need to add the line bond-xmit_hash_policy 1 to your interface config, as well as changing it on the switch. Now I'm able to use the full 2gbps speed when accessing the server from multiple machines.
ORIGINAL: So a while ago I set up link aggregation on my server but could never get it to go faster than 1gbps. I eventually forgot about it and never got around to figuring it out. The other night I was backing up some files to a NAS and while monitoring the server's network throughput I noticed that even though there were multiple file transfers from different machines it was still limited to around 1gbps.
I've had it set up using LACP, and as far as I can tell it's set up properly. But i decided to play around with different modes and discovered that it worked fine when I set the server to round robin mode.
Here are some pictures showing the throughput in each mode, for testing I used two computers to transfer files from the server simultaneously.
This is with LACP mode:
You can see that the total throughput is around 900mbps
And here is round robin mode:
Here I'm getting around 1.4gbps.
So does anyone know why this is? Why am I not able to get a higher throughput when using LACP? The server and other computers are connected to a managed switch. The switch ports for the server are set to LACP when using LACP mode and static link aggregation when using round robin.
When using LACP mode both ports are active and I am able to see that both ports are being used, but I am never able to exceed 1gbps.
I also tried XOR but the performance was much worse than 1gbps.
So if anyone knows anything about it, please help me figure this out, thanks.