I am setting up a lab to experiment with some bandwidth classes using CBWFQ. My lab scenario is very simple and contains two classes, critical data and scavenger.
Basically, what I am trying to achieve is that I would like either class to be able to take full advantage of the link if no other class is using it, however during heavy utilization, I want the critical data to be able to utilize 90% of the link and scavenger should be scaled back to 5% so the critical data can pass through without issues.
I am planning to make a more complex configuration for our production network, with an additional priority class for voice and business class for data with percentages adjusted accordingly. I am just doing this lab to try and prove that one class can't choke out or have to fight for bandwidth with the other.
I set up two cisco 2901 routers and set the bandwidth command to reflect 100mbps on the "WAN" link. I fired up an iperf session between a client and server to test throughput, and I was able to achieve a little over 90mbps from each class while there was NO other utilization from other classes on the link, so that was good test to prove each class has the ability to use the full link if it is available.
However, I tried to run an iperf session from both classes at the same time to simulate maximum network congestion on both classes, and my critical data class achieved around 45mbps and my scavenger class achieved 40mbps. It was my understanding the critical should have been able to achieve close to 90mbps and the scavenger would be limited to 5mbps.
See command output below to see the policy:
class-map match-any SCAVENGER-QOS match dscp af11 class-map match-any CRITICAL-DATA-QOS match dscp af31
policy-map RATE_LIMIT_TEST class CRITICAL-DATA-QOS bandwidth percent 90 class SCAVENGER-QOS bandwidth percent 5
interface GigabitEthernet0/0 bandwidth 100000 ip address 10.17.1.1 255.255.255.252 load-interval 30 duplex auto speed auto service-policy output RATE_LIMIT_TEST
I examined the policy map during the test as well... how does this make sense? It clearly says in the command output that critical data should have 90000kbps and scavenger 5000kbps, yet it is offering both classes nearly the same amount of bandwidth (40 - 45mbps). Am I not understanding a concept correctly or forgetting a configuration?
PAS_LAB_RTR#show policy-map int g0/0 GigabitEthernet0/0