Following my previous post, which was about LACP, I was redirected to the NIOC (Network I/O Control) feature. It is something like QoS and gives us the ability to monitor the amount of traffic passing through the interface and reserve some of that for specified traffic (or group of traffic categories) upon congestion.
Congestion means over-saturating the link with amount of traffic more than the link physical capacity. In this situation you might want to reserve some amount of bandwidth to the dvPort Groups of your choice or to your management, iSCSI and NFS traffic, to name a few.
First of all, NIOC available only with distributed virtual switch (DVS) so you should have appropriate license to be able to deploy NIOC. Second, it is enabled by default, but if you want to disable it or re-enable it, you should find it on your DVS properties page.


By default 9 categories of traffic has been defined on the system which are:

– Fault tolerance traffic
– Management traffic
– NFS traffic
– Virtual machine traffic
– Virtual SAN traffic
– iSCSI traffic
– vMotion traffic
– vSphere data protection backup traffic
– vSphere replication traffic

You can see the list on the Configure Page of the DVS (on Networking view click on the dvSwitch name and then select Configure tab, then System Traffic):


Every category of traffic has its predefined amount of share of total bandwidth. If you look at the picture yo can see except Virtual Machine Traffic category, which has 100 share, others have 50 share each. For instance, If you suppose the total bandwidth of the link is 1 Gbps and our reservable bandwidth is 750 Mbps, then the whole share of traffic can be calculated as follows:

8*category; each has 50 shares
1*category which has 2*50 shares (100 shares)

That is we have 10*50 shares of traffic, so each category will get this amount of traffic:

750 (reservable bw) / 10 = 75 Mbps

As result, each category that has weight of 50 gets 75 Mbps and Virtual Machine Traffic category gets 2 of them (75*2 = 150 Mbps).

As I said, if there is any unused bandwidth, it also means there is no congestion and the reservations have no effect.
The amount of total bandwidth each category receives can be changed on its properties/settings page. There are 4 options, Low, Medium, High and custom.
Also it is possible to strictly dedicate some amount of bandwidth to traffic classes. With this method, at the time of congestion, the strictly defined bandwidth will be dedicated to the traffic class as determined, and the rest of reservable bandwidth will be shared among other classes, based on the weight value.
For example, I’m going to reserve 400 Mbps for Virtual Machine Traffic category on a 1 Gbps link. To do this I need to open properties page of that category. So click on it and press the Edit button and adjust as depicted below:


And I reserved 50 Mbps of the remaining traffic for Virtual SAN Traffic category. At the end the page should looks like this:


The remaining unreserved traffic is 550 Mbps (0.55 Gbps) which is going to be shared among other categories.

Up to this point we have reserved 400 Mbps of total reservable traffic for the Virtual Machine Traffic category. That means, all of our dvPort Groups created for the VMs have total of 400 Mbps to share among each other. But if you have one or more dvPort Groups which tend to use more bandwidth, you can do this by creating a Network Resource Pool. To configure it click on the Network Resource Pool beneath the System Traffic option and then click on the green plus icon at the top.


You might ask if we had reserved 400 Mbps of traffic, why the page shows 800 Mbps Max Quota? The reason for this is the amount of reservation is per link and because we have 2 physical links attached to our dvSwitch, then the whole amount of dedicated bandwidth of Virtual Machine Traffic category will be 800 Mbps. It is good to mention that we can create network resource pool to dedicate bandwidth only to the Virtual Machine Traffic category. Anyway, as the above picture displays, I have created a reservation pool “TReservation-Vlan204” and assigned 200 Mbps to the pool. Also the following picture shows we have reserved 0.2 Gbps out of allowed 0.8 Gbps up to now.


What we need to do now is assigning this pool to the dvPort Group we want. For this, right click on the dvPort Group of your choice, which is TDPG-204 in my lab, and select Edit Settings.


On the appeared page it is enough to select the pool we have created and press the Ok.

Configuring NIOC on vCenter
Tagged on: