Quality of Service
This chapter describes how to identify and resolve problems related to Quality of Service (QoS).
This chapter includes the following sections:
Information About Quality of Service
QoS lets you classify network traffic so that it can be policed and prioritized in a way that prevents congestion. Traffic is processed based on how you classify it and the QoS policies that you put in place. Classification, marking, and policing are the three main features of QoS.
- Traffic Classification—Groups network traffic based on defined criteria.
- Traffic Marking—Modifies traffic attributes such as DSCP, COS, and Precedence by class.
- Policing —Monitors data rates and burst sizes for a particular class of traffic. QoS policing on a network determines whether network traffic is within a specified profile (contract).
For detailed information about QoS, see the Cisco Nexus 1000V Quality of Service Configuration Guide.
QoS Configuration Limits
Table 17-1 and Table 17-2 list the configuration limits for QoS.
Table 17-1 QoS Configuration Limits
|
|
|
Class map |
1024 |
1024 (with policies) |
Policy map |
128 |
128 |
Policy instances |
12288 |
1024 |
Table 17-2 QoS Configuration Limits
|
|
Match criteria per class map |
32 |
Classes per policy map can be of type qos or queuing |
64 |
Match rules under policy map |
200 |
Note
We recommend that the class-map should be applied on a maximum of 2000 interfaces. If you apply class maps on more than 2000 interfaces, the service-policy command could fail.
QoS Troubleshooting Commands
The commands listed in this section can be used on the VSM to see the policies that are configured and applied on the interfaces.
|
|
show policy-map [policy-map-name] show class-map [class-map-name] |
Displays the configured policies and class-maps. |
show policy-map interface |
Displays the number of packets hitting the configured policies. |
show policy-map interface input/output |
Displays only the installed policies of type input/output. |
show policy-map interface type qos/queuing |
Displays the installed policies based on type. |
show system internal cdm info app sap 377 detail |
Checks the (class map/policy map) configuration delivered by VSM to the connected modules. See Example 17-1 on page 17-3 |
show resource-availability qos-queuing |
Checks whether the QoS configuration is not exceeding the recommended resource limits. |
show policy-map interface brief |
Displays the installed policies: |
Example 17-1 show system internal cdm info app sap 377 detail Command
Contains output logs similar to the following for each class map/policy map:
switch# show system internal cdm info app sap 377 detail
policy/377/1/<policy-map/class-map name>
app_od: 00000af178daed963b0ec2301044c78e81f0cdf70814102aae80a0474ac14...
md5: 16dd64cc7e63fc8681b9357510194fac
Use the following commands on the VSM to run-time information for QOSMGR and ACLCOMP during configuration errors.
The commands to collect QOSMGR process run-time information configuration errors are as follows:
- show system internal ipqos event-history errors
- show system internal ipqos event-history msgs
- show system internal ipqos mem-stats (to debug memory usage and leaks)
- show system internal ipqos status
- show system internal ipqos log (to show aborted plan information)
- show system internal ipqos
Troubleshooting the VEM
The commands listed in this section can be used to display configured QoS policies on the VEM.
|
|
module vem module-number execute vemcmd show qos node |
Lists all class maps and polices in use on the server: See Example 17-2 on page 17-3 |
module vem module-number execute vemcmd show qos policy |
Lists all the installed policy maps in use on the server. See Example 17-3 on page 17-4 |
module vem module-number execute vemcmd show qos pinst |
Lists all service policies installed on the server. See Example 17-4 on page 17-4 |
Example 17-2 module vem module-number execute vemcmd show qos node Command
~ # module vem 3 execute vemcmd show qos node
-------- -------- --------
cir/pir units 1 bc/be units 3 flags 2
Example 17-3 module vem module-number execute vemcmd show qos policy Command
~ # module vem 3 execute vemcmd show qos policy
policyid classid policerid set_type value
-------- -------- -------- -------- --------
Example 17-4 module vem module-number execute vemcmd show qos pinst Command
~ # module vem 3 execute vemcmd show qos pinst
class bytes matched pkts matched
-------- -------------------- --------------------
policer stats: conforming (85529, 572)
policer stats: exceeding (0, 0)
policer stats: violating (0, 0)
Debugging Policy Configuration Errors
You can debug a policy configuration failure caused by processing on the VSM.
Step 1
Enter the debug aclmgr all command if the policy references an ACL.
Step 2
Enter the debug ipqos all command.
Step 3
Enter the policy map and class commands to collect logs for all operations.
Step 4
Save the Telnet SSH session buffer to a file.
If you are debugging a policy on a port profile, it might be easier to first install it directly on an interface.
You can debug a policy configuration failure on the VEM.
Step 1
Enter the module vem module-number execute vemdpalog clear command.
Step 2
Enter the module vem module-number execute vemdpalog sfqosagent all command.
Step 3
Enter module vem module-number execute vemdpalog start command.
Step 4
Enter the policy-map command which will execute the command once again with the DPA debug traces output to vemdpalog.
Step 5
Enter module vem module-number execute vemdpalog stop command.
Enter the module vem module-number execute vemdpalog show all command to display the logs on the console.
The policy gets added first
add plcy node - calling add policy 8eb5c20 sf_qos_policy_len(policy) 4 classmaps 0, Policy name <p_name>
This will be followed by addition of class-map filter nodes. Please note that the same is done via multiple sessions. Hence there could be a replace policy, before the addition of filter nodes.
A noticeable thing in the log is the class-map counter could be updated.
replace plcy node - calling replace policy 8eb47d8 sf_qos_policy_len(policy) 92 classmaps 1, Policy <p_name>
Adding classmap 1 (108) with op 1 and 2 filters
Adding classmap 2 (116) with op 2 and 2 filters
Adding classmap 3 (56) with op 0 and 0 filters
Every session should end with the log
Debug qosagent: Session commit complete and successful
Debugging Policy Verification Failures
You can debug a policy verification failure on VEM.
Step 1
Enter the module vem module-number execute vemdpalog clear command.
Step 2
Enter the module vem module-number execute vemdpalog sfqosagent all command.
Step 3
Enter the module vem module-number execute vemdpalog start command.
Step 4
Enter the service-policy command to execute the command once again with the DPA debug traces output to vemdpalog.
Step 5
Enter the module vem module-number execute vemdpalog stop command.
Step 6
Enter the module vem module-number execute vemdpalog show all command to display the logs on console.
The VEM-side output logs contain the following:
add pinst - add_pinst policy_id 0
add pinst - add_pinst gpolicy_id 72352041
verify - installing pinst type 0 49 for policy 0
commit - adding pinst ltl 49 use 2 to policy 0
Session commit complete and successful
Debugging Policing Configuration Errors
You can debug a policy verification failure caused by processing on the VSM.
Step 1
Enter the debug aclmgr all command if the policy references an ACL.
Step 2
Enter the debug ipqos all command.
Step 3
Enter the debug aclcomp all command.
Step 4
Enter the service-policy command to execute the command once again with debug traces output to the console.
Step 5
Save the Telnet SSH session buffer to a file.
If you are debugging a policy on a port profile, it may be easier to first install it directly on an interface.
To debug a policy verification failure on the VEM, follow these steps:
Step 1
Enter the module vem module-number execute vemdpalog clear command.
Step 2
Enter the module vem module-number execute vemdpalog sfqosagent all command.
Step 3
Enter module vem module-number execute vemdpalog start command.
Step 4
Enter the service-policy command which will execute the command once again with the DPA debug traces output to vemdpalog.
Step 5
Enter module vem module-number execute vemdpalog stop command.
Step 6
Enter the module vem module-number execute vemdpalog show all command to see the logs on console.
The output will look similar to the following:
calling add policy 81610ac len 220 classmaps 3- --> Session actions
Adding classmap 1 (108) with op 1 and 2 filters
Adding classmap 2 (116) with op 2 and 2 filters
Adding classmap 3 (56) with op 0 and 0 filters
init pinst ltl 11 policy id 0 if_index 1a020200 --> Service-policy being applied
installing pinst type 0 17 for policy 0
dpa_sf_qos_verify returned 0
Session commit complete and successful --> Session ending