I was wondering what is the "go to", more recommended method of controlling bandwidth of various types of traffic (i.e: vMotion, FT, VM, Management). NPAR on the physical NIC level or Network IO Control on the Hypervisor?
It basically comes down to which layer you want to use to control traffic. If you wish to control traffic at the ESXi services layer, why not do it at that layer rather than a lower abstraction? NPAR is really something you should use if you're *not* using vSphere because there are better mechanisms built-in to the technology. If you'd like to read more about it, there's a whitepaper available here (PDF).
That really all depends on how you have your physical network laid out. In very many cases, these services have segregated pNICs and usually in pairs. If you're converging everything over common uplinks, then NIOC is usually the way to go as it gives fine granularity.
Elaborating... If hosts have only 2 pNICs (10Gb each), does it make more sense to NPAR them, resulting in 4 pairs of partitions (allocating appropriate bandwidth to each pair of partitions); and then use each pair of vmnics for different type of traffic? Or - leave pNICs as is, use the 2 vmnics for everything and manage bandwidth with NIOC?
The latter. NIOC is very capable of providing this type of control, so if you only have two pNICs to work with and all services can and will be run over them, provided you have the license entitlement, use NIOC and avoid upstream switch complexity.
What sort of "switch complexity" NPARing a NIC can add? Is NPAR unreliable? I.E.: why would I go with NIOC rather then with NPAR?
It basically comes down to which layer you want to use to control traffic. If you wish to control traffic at the ESXi services layer, why not do it at that layer rather than a lower abstraction? NPAR is really something you should use if you're *not* using vSphere because there are better mechanisms built-in to the technology. If you'd like to read more about it, there's a whitepaper available here (PDF).
One last question in relation to the above... Essentially configuring "Traffic Shaping" on a port-group used for specific service, accomplishes the same thing NPAR does; while NIOC provides even more granular control (?). Is this correct understanding?
Yes