I'm sending data on multiple ports evenly, but only receiving data on two ports at my receiver. Both servers (on the same tcp subnet) are connected to pair of Nexus 7K switches (I believe they are setup as peer switches), and each are connected to 4 port LACP port channel (My understand is these are virtual port channels, Layer 2 Port-Channels) with the default load balance method. Would changing the Nexus load balance method to src-dst-port help me spread data? Even if the port channel is a layer 2 port channel, for IP traffic, could it use the tcp port ? I'm not a network engineer, but need work with network engineers, so I want to try and understand as much as possible so I don't waste their time. Thanks for any thoughts ;-)
-
You need to edit your question to include the (sanitized) network device configurations.– Ron Maupin ♦Aug 30, 2018 at 15:00
-
If you do not directly control the switches, you question is off-topic here. Unfortunately, the requirement is that you directly control the network. From the What topics can I ask about here? page: "under your direct control (if the network is not under your control you will not likely be able to provide the information required to answer your question)"– Ron Maupin ♦Aug 30, 2018 at 16:30
-
Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can provide and accept your own answer.– Ron Maupin ♦Dec 25, 2018 at 9:24
1 Answer
I'm sending data on multiple ports evenly,
If your goal is to do round-robin load balancing, then I would highly discourage that because it leads to out-of-order data delivery that can actually slow things down.
Your switches will balance flows across a channel not spread a single flow across multiple channel links. A single flow will use a single link. The hash algorithm used will determine what is considered a flow. For example, if you use the src-dst-port
hash, and the data you are sending across is only using the same source and destination ports, then you will have a single flow that uses a single link of the channel.
The channel can balance with multiple flows in aggregate, allowing you to use the full channel bandwidth when you have multiple flows, but a single flow will only use a single link in the channel. This avoids problems created when spreading a single flow across multiple links.
If you want greater bandwidth for a single flow, then you need to upgrade the speed of the links.
-
Thanks for the response; I'm interested in balance with multiple flows, which will allow more all links to be used.... which is why ServerA is using 8 tcp connections, 8 different ports (could use more if needed). My receiver (ServerB) is only receiving on 2 of 4 links. My sender, ServerA, uses src-dst-port and when sending I get the desired result as the chart shows. It seems like the Nexus default load-balance is then sending on only 2 of the 4 links to my receiver. Aug 30, 2018 at 15:41
-
As your diagram indicates, the Nexus is balancing with IP addresses, not ports, but I asked for the switch configurations that you have not provided to make sure what it is really doing. Each channel in each direction can use a different hash method. You need to change the hash method on the Nexus to balance differently on exit. The hash method chosen in your servers plays no part in the hash method used by the switches.– Ron Maupin ♦Aug 30, 2018 at 15:48
-
I will attempt to get more device configuration info. I was happy just to get that port-channel load-balance info :-o Aug 30, 2018 at 16:25
-
Just show the running configuration and paste it into your question using the Preformatted-text option (
{}
). Be sure to obfuscate any passwords or public IP addresses.– Ron Maupin ♦Aug 30, 2018 at 16:27