Quality of Service

This chapter describes how to identify and resolve problems related to Quality of Service. This chapter contains the following sections:

Information About Quality of Service

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

The following tables list the configuration limits for QoS.

Table 1. QoS Configuration Limits

Item

DVS Limit

Per Server Limit

Class map

1024

1024 (with policies)

Policy map

128

128

Policy instances

12288

1024

Table 2. QoS Configuration Limits

Item

Limit

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.

Debugging Policy Configuration Errors

Debugging Policy Configuration Errors on VSM

If you are debugging a policy on a port profile, it might be easier to first install it directly on an interface. To debug a policy configuration error on the VSM, do the following:

Procedure


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.


Debugging Policy Configuration Errors on VEM

To debug a policy configuration error on the VEM, do the following:

Procedure


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 policy-map 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:

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 Issues

To debug a policy verification failure on the VEM, do the following:

Procedure


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
 
verify - returned 0
 
commit - adding pinst ltl 49 use 2 to policy 0
 
Session commit complete and successful

Debugging Policing Configuration Errors

Debugging Policing Configuration Errors on VSM

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 policing configuration error on the VSM, do the following:

Procedure


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.


Debugging Policing Configuration Errors on VEM

To debug a policing configuration error on the VEM, do the following:

Procedure


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:

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

QoS Troubleshooting Commands

You can use the following QoS troubleshooting commands on the VSM:

  • Command to display policies that are configured and applied on the interfaces:

    • show policy-map [policy-map-name ]

      Displays the configured policies.

    • show class-map [class-map-name ]

      Displays the configured 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 based on the input or output type.

    • show policy-map interface type [qos | queuing ]

      Displays the installed policies based on the type.

    • show system internal cdm info app sap 377 detail

      Checks the (class map/policy map) configuration delivered by VSM to the connected modules.

    • 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.

  • Commands to see the run-time information of the IPQOS during configuration errors:

    • show system internal ipqos event-history errors
    • show system internal ipqos event-history msgs
    • show system internal ipqos mem-stats
    • show system internal ipqos status
    • show system internal ipqos log
    • show system internal ipqos

You can use the following QoS troubleshooting commands on the VEM:

  • module vem module-number execute vemcmd show qos node

    Displays all class maps and polices in use on the server.

  • module vem module-number execute vemcmd show qos policy

    Displays all the installed policy maps in use on the server.

  • module vem module-number execute vemcmd show qos pinst

    Displays all service policies installed on the server.

Command Examples

show system internal cdm info app sap 377 detail

switch# show system internal cdm info app sap 377 detail
policy/377/1/<policy-map/class-map name>
id: 34
flags: 0x00000000
app: Qosmgr SAP (377)
app_od: 00000af178daed963b0ec2301044c78e81f0cdf70814102aae80a0474ac14...
app_od_sz: 203
md5: 16dd64cc7e63fc8681b9357510194fac

module vem module-number execute vemcmd show qos

The following example shows the output of the module vem module-number execute vemcmd show qos node command.

~ # module vem 3 execute vemcmd show qos node
nodeid type details
-------- -------- --------
0 policer
cir:50 pir:50
bc:200000 be:200000
cir/pir units 1 bc/be units 3 flags 2
1 class op_AND
DSCP
2 class op_DEFAULT
The following example shows the output of the module vem module-number execute vemcmd show qos policy command.

~ # module vem 3 execute vemcmd show qos policy
policyid classid policerid set_type value
-------- -------- -------- -------- --------
0 1 -1 dscp 5
2 0 dscp 0

The following example shows the output of the module vem module-number execute vemcmd show qos pinst command.

~ # module vem 3 execute vemcmd show qos pinst
id type
-------- --------
17 Ingress
class bytes matched pkts matched
-------- -------------------- --------------------
1 0 0
 
2 85529 572
0
policer stats: conforming (85529, 572)
policer stats: exceeding (0, 0)
policer stats: violating (0, 0)