How to properly setup a server "teaming" across multiple NIC's in windows server 2008?

For a single server, what you're essentially asking about in maximizing network throughput is not so much load balancing, but teaming.

Load Balancing is typically done by a "front-end" device that doesn't do a whole lot of processing, other than to keep track of traffic, and send any new incoming "requests" to the currently least-used application server. Multiple devices are involved here.

Teaming (or more loosely, bridging) makes multiple network cards appear as one card. So for example if you have 2 NICs at 1Gb speed, you can team them together to get up to 2Gb of throughput. With teaming, it is very important to make sure that the network hardware you're plugging into supports it. Most likely, you will also have to configure the switch, so that it knows to team the physical ports together. Otherwise, traffic can be delivered arbitrarily between the physical ports causing many connection issues (broken connections, lots of retransmissions, severely reduced throughput, etc).

So for the most network throughput on a single server, use NIC teaming. For distributing an application's load across a group of separate servers, think load balancing.


As routeNpingme pointed out, you should configure the switch accordingly.

If your NIC driver supports LACP, use is on the switch aswell. Otherwise, you'll have to stick with a static trunk on the switch. Here is a config example for Cisco:

Switch# conf t
Switch(config)# int g0/1
Switch(config-if)# channel-group 1 mode on
Switch(config-if)# exit
Switch(config)# int g0/2
Switch(config-if)# channel-group 1 mode on
Switch(config-if)# end

For LACP, you would do something like this:

Switch# conf t
Switch(config)# int g0/1
Switch(config-if)# channel-proto lacp
Switch(config-if)# channel-group 1 mode act
Switch(config-if)# exit
Switch(config)# int g0/2
Switch(config-if)# channel-proto lacp
Switch(config-if)# channel-group 1 mode act
Switch(config-if)# end