|
|
This chapter describes the basic tasks that you can perform to manage the general system performance.
For a complete description of the performance management commands in this chapter, refer to the "Performance Management Commands" chapter of the Configuration Fundamentals Command Reference. To locate documentation of other commands that appear in this chapter, use the command reference master index or search online.
Perform any of the tasks in the following sections to manage system performance:
In addition, most chapters in this guide include performance tasks specific to the chapter content, and the Internetworking Design Guide includes detailed information on performance issues that arise when designing a network.
See the "Performance Management Examples" section at the end of this chapter for examples.
You can change the period of time over which a set of data is used for computing load statistics. Decisions, such as dial backup decisions, are dependent on these statistics. If you decrease the load interval, the average statistics are computed over a shorter period of time and are more responsive to bursts of traffic.
To change the length of time for which a set of data is used to compute load statistics, perform the following task in interface configuration mode:
| Task | Command |
|---|---|
Set the length of time for which data is used for load calculations. | load-interval seconds |
When using a standard TCP implementation to send keystrokes between machines, TCP tends to send one packet for each keystroke typed, which can use up bandwidth and contribute to congestion on larger networks.
By default, the Nagle algorithm is not enabled. To enable the Nagle algorithm and thereby reduce TCP transactions, perform the following task in global configuration mode:
| Task | Command |
|---|---|
Enable the Nagle slow packet avoidance algorithm. |
The normal operation of the network server allows the switching operations to use as much of the central processor as is required. If the network is running unusually heavy loads that do not allow the processor the time to handle the routing protocols, you might need to give priority to the system process scheduler. To do so, perform the following task in global configuration mode:
Define the maximum amount of time that can elapse without running the lowest-priority system processes.
Task
Command
To change the amount of time that the CPU spends on fast switching and process level operations on the Cisco 7200 series and Cisco 7500 series, perform the following task in global configuration mode:
For the Cisco 7200 series and Cisco 7500 series, change the default time the CPU spends on process tasks and fast switching. scheduler allocate network-microseconds process-microseconds
Task
Command
![]() | Caution Cisco recommends that you do not change the default values of the scheduler allocate command. |
There are four possible queueing algorithms used: first-come-first-serve (FCFS), weighted fair queueing, priority queueing, and custom queueing. For serial interfaces at E1 (2.048 Mbps) and below, weighted fair queueing is used by default. When no other queueing strategies are configured, all other interfaces use FCFS by default. There is also one congestion avoidance algorithm available: random early detection.
You can configure the Cisco IOS software to support the following types of queueing and congestion strategies for prioritizing network traffic:
You can configure weighted fair queueing, priority queueing, custom queueing, or random early detection, but you can assign only one type to an interface.
When you enable weighted fair queueing for an interface, new messages for high-bandwidth conversations are discarded after the congestive-messages threshold you set or the default one has been met. However, low-bandwidth conversations, which include control-message conversations, continue to enqueue data. As a result, the fair queue may occasionally contain more messages than are specified by the threshold number.
Priority output queueing is a mechanism that allows the administrator to set priorities on the type of traffic passing through the network. Packets are classified according to various criteria, including protocol and subprotocol type, and then queued on one of four output queues (high, medium, normal, and low).
When the server is ready to transmit a packet, it scans the priority queues in order, from highest to lowest, to find the highest-priority packet. After that packet is completely transmitted, the server scans the priority queues again. If a priority output queue fills up, packets are dropped and, for IP, quench indications are sent to the original transmitter.
Although you can enable priority output queueing for any interface, the intended application was for low-bandwidth, congested serial interfaces. Cisco's priority output queueing mechanism allows traffic control based on protocol or interface type. You can also set the size of the queue and defaults for what happens to packets that are not defined by priority output queue rules.
The priority output queueing mechanism can be used to manage traffic from all networking protocols. Additional fine-tuning is available for IP and for setting boundaries on the packet size.
The four priority queues--high, medium, normal, and low--are listed in order from highest to lowest priority. Keepalives sourced by the network server are always assigned to the high-priority queue; all other management traffic (such as IGRP updates) must be configured. Packets that are not classified by the priority list mechanism are assigned to the normal queue.
Priority queueing introduces a fairness problem in that packets classified to lower-priority queues might not get serviced in a timely manner or at all, depending upon the bandwidth used by packets sent from the higher-priority output queues.
For queue numbers 1 through 16, the system cycles through the queues sequentially, delivering packets in the current queue before moving on to the next. Associated with each output queue is a configurable byte count, which specifies how many bytes of data the system should deliver from the current queue before it moves on to the next queue. When a particular queue is being processed, packets are sent until the number of bytes sent exceed the queue byte count or the queue is empty. Bandwidth used by a particular queue can only be indirectly specified in terms of byte count and queue length.
Queue number 0 is a system queue; it is emptied before any of the queues numbered 1 through 16 are processed. The system queues high-priority packets, such as keepalive packets, to this queue. Other traffic cannot be configured to use this queue.
On most platforms, all protocols are classified in the fast switching path.
Random early detection is recommended only for TCP/IP networks. You can use random early detection as a way to cause TCP to back off traffic. TCP not only pauses, but it also restarts quickly and adapts its transmission rate to the rate that the network can support.
Random early detection is not recommended for protocols, such as AppleTalk or Novell Netware, that respond to dropped packets by retransmitting the packets at the same rate. Random early detection should only be configured on an interface where most of the traffic is TCP/IP traffic.
For interfaces configured to use RSVP, random early detection chooses packets from other flows to drop rather than the RSVP flows. Also, IP precedence governs which packets are dropped--traffic that is at a lower precedence has a higher drop rate and therefore is more likely to be throttled back.
You can set up weighted fair queueing, priority queueing, custom queueing, or random early detection on your network, but you can assign only one of the four to an interface.
The following sections describe the tasks that you can choose from, depending on the needs of your network:
To enable weighted fair queueing for an interface, set the congestion threshold after which messages for high-bandwidth conversations are dropped, and specify the number of dynamic and reservable queues, perform the following task in interface configuration mode after specifying the interface
| Task | Command |
|---|---|
Configure an interface to use weighted fair queueing. | fair-queue [congestive-discard-threshold [dynamic-queues [reservable-queues]]] |
To disable weighted fair queueing for an interface, use the no fair-queue command.
Fair queueing is enabled by default for physical interfaces whose bandwidth is less than or equal to 2.048 megabits per second (Mbps) and that do not use Link Access Procedure, Balanced (LAPB), X.25, or Synchronous Data Link Control (SDLC) encapsulations. (Fair queueing is not an option for these protocols.) However, if custom queueing or priority queueing is enabled for a qualifying link, it overrides fair queueing, effectively disabling it. Additionally, fair queueing is automatically disabled if you enable autonomous or SSE switching. Fair queueing is now enabled by default on interfaces configured for Multilink PPP.
To enable priority queueing, perform the tasks in the following sections. The first and third tasks are required.
You can assign packets to priority lists based on the protocol type or the interface where the packets enter the router. In addition, you can set the default queue for packets which do not match other assignment rules. To define the priority lists, perform the following tasks in global configuration mode:
Establish queueing priorities based upon the protocol type. priority-list list-number protocol protocol-name {high | medium | normal | low} queue-keyword keyword-value Establish queueing priorities for packets entering from a given interface. priority-list list-number interface interface-type interface-number {high | medium | normal | low} Assign a priority queue for those packets that do not match any other rule in the priority list. priority-list list-number default {high | medium | normal | low}
Task
Command
All protocols supported by Cisco are allowed. The queue-keyword variable provides additional options including byte-count, TCP service and port number assignments, and AppleTalk, IP, IPX, VINES, or XNS access list assignments. See the priority-list command syntax description in the "Performance Management Commands" chapter in the Configuration Fundamentals Command Reference.
When using multiple rules, remember that the system reads the priority-list commands in order of appearance. When classifying a packet, the system searches the list of rules specified by priority-list commands for a matching protocol or interface type. When a match is found, the packet is assigned to the appropriate queue. The list is searched in the order it is specified, and the first matching rule terminates the search.
You can specify the maximum number of packets allowed in each of the priority queues. To do so, perform the following task in global configuration mode:
Specify the maximum number of packets allowed in each of the priority queues. priority-list list-number queue-limit high-limit medium-limit normal-limit low-limit
Task
Command
You can assign a priority list number to an interface. Only one list can be assigned per interface. To assign an priority group to an interface, perform the following task in interface configuration mode:
Assign a priority list number to the interface.
Task
Command
You can display information about the input and output queues when priority queueing is enabled on an interface. To do so, perform the following task in EXEC mode:
Show the status of the priority queueing lists.
Task
Command
To enable custom queueing, perform the tasks in the following sections. The first and third tasks are required.
You can assign packets to custom queues based on the protocol type or the interface where the packets enter the router. In addition, you can set the default queue for packets which do not match other assignment rules. To define the custom queueing lists, perform the following tasks in global configuration mode:
Establish queueing priorities based upon the protocol type. queue-list list-number protocol protocol-name queue-number queue-keyword keyword-value Establish custom queueing based on packets entering from a given interface. queue-list list-number interface interface-type interface-number queue-number Assign a queue number for those packets that do not match any other rule in the custom queue list. queue-list list-number default queue-number
Task
Command
All protocols supported by Cisco are allowed. The queue-keyword variable provides additional options, including byte-count, TCP service and port number assignments, and AppleTalk, IP, IPX, VINES, or XNS access list assignments. See the queue-list command syntax description in the "Performance Management Commands" chapter in the Configuration Fundamentals Command Reference.
When using multiple rules, remember that the system reads the queue-list commands in order of appearance. When classifying a packet, the system searches the list of rules specified by queue-list commands for a matching protocol or interface type. When a match is found, the packet is assigned to the appropriate queue. The list is searched in the order it is specified, and the first matching rule terminates the search.
You can specify the maximum number of packets allowed in each of the custom queues or the maximum queue size in bytes. To do so, perform one of the following tasks in global configuration mode:
Specify the maximum number of packets allowed in each of the custom queues. queue-list list-number queue queue-number limit limit-number Designate the byte size allowed per queue. queue-list list-number queue queue-number byte-count byte-count-number
Task
Command
You can assign a custom queue list number to an interface. Only one list can be assigned per interface. To assign an custom queue to an interface, perform the following task in interface configuration mode:
Assign a custom queue list number to the interface. custom-queue-list list-number
Task
Command
You can display information about the input and output queues when custom queueing is enabled on an interface. To do so, perform one of the following tasks in EXEC mode:
Show the status of the custom queueing lists. Show the current status of the custom output queues when custom queueing is enabled. show interface type number
Task
Command
To enable random early detection on the interface, perform the following task in interface configuration mode:
Enable random early detection on an interface. random-detect [weighting]
Task
Command
To monitor the various drop statistics for early random detection, perform the following tasks in EXEC mode:
Show the drop statistics for the interface. show interface [type number]
Task
Command
Traffic shaping is supported on all media and encapsulation types on the router. Traffic shaping can also be applied to a specific access list on an interface. To perform traffic shaping on Frame Relay virtual circuits, you can also use the frame-relay traffic-shaping command. For more information on Frame Relay traffic shaping, refer to the "Configuring Frame Relay" chapter in the Wide-Area Network Configuration Guide.
To enable traffic shaping for outbound traffic on an interface, perform one of the following tasks in interface configuration mode:
Enable traffic shaping for outbound traffic on an interface. traffic-shape rate bit-rate [burst-size [excess-burst-size]] Enable traffic shaping for outbound traffic on an interface for a specified access list. traffic-shape group access-list bit-rate [burst-size [excess-burst-size]]
Task
Command
If traffic shaping is performed on a Frame Relay network with the traffic-shape rate command, you can also use the traffic-shape adaptive command to specify the minimum bit rate the traffic is shaped to.
To configure a Frame Relay subinterface to estimate the available bandwidth when backward explicit congestion notifications (BECNs) are received, perform the following task in interface configuration mode:
Configure minimum bit rate that traffic is shaped to when BECNs are received on an interface. traffic-shape adaptive [bit-rate]
Task
Command
The traffic-shape adaptive command uses the configured bit rate as a lower bound of the range and the bit rate specified by the traffic-shape rate command as the upper bound. The rate that the traffic is actually shaped to will be between those two rates. Configure the traffic-shape adaptive command at both ends of the link because it also configures the device at the flow end to reflect forward explicit congestion notification (FECN) signals as BECNs, enabling the router at the high-speed end to detect and adapt to congestion even when traffic is flowing primarily in one direction.
To display the current traffic-shaping configuration and statistics, perform the following tasks in EXEC mode:
Display the current traffic-shaping configuration. show traffic-shape [interface] Display the current traffic-shaping statistics. show traffic-shape statistics [interface]
Task
Command
For an example of configuring traffic shaping, see the section "Generic Traffic Shaping Example" at the end of this chapter.
You can adjust initial buffer pool settings and the limits at which temporary buffers are created and destroyed. To do so, perform the following tasks in global configuration mode:
| Task | Command |
|---|---|
Adjust the system buffer sizes. | buffers {small | middle | big | verybig | large | huge | type number} {permanent | max-free | min-free | initial} number |
Dynamically resize all huge buffers to the value that you supply. | buffers huge size number |
![]() | Caution Normally you need not adjust these parameters; do so only after consulting with technical support personnel. Improper settings can adversely impact system performance. |
During normal system operation, there are two sets of buffer pools: public and interface.
See the section "Buffer Modification Examples" at the end of this chapter.
The server has one pool of queueing elements and six public pools of packet buffers of different sizes. For each pool, the server keeps count of the number of buffers outstanding, the number of buffers in the free list, and the maximum number of buffers allowed in the free list. To display statistics about the buffer pool on the system, perform the following tasks in EXEC mode:
| Task | Command |
|---|---|
Display all public pool information. | |
Display all public and interface pool information. | show buffers all |
Display a brief listing of all allocated buffers. | show buffers alloc |
Display interface pool information. | show buffers [type number] |
Dump all allocated buffers. | show buffers alloc dump |
Display all interface pool information. | show buffers interface |
If the specified interface has its own buffer pool, display information for that pool. | show buffers interface type number |
Display a brief listing of buffers allocated for this interface. | show buffers interface type number alloc |
Dump the buffers allocated to this interface. | show buffers interface type number alloc dump |
The following sections provide performance management examples:
This example shows the configuration of two traffic-shaped interfaces on a router. Ethernet 0 is configured to limit User Datagram Protocol (UDP) traffic to 1 Mbps. Ethernet 1 is configured to limit all output to 5 Mbps.
access-list 101 permit udp any any interface Ethernet0 traffic-shape group 101 1000000 125000 125000 ! interface Ethernet1 traffic-shape rate 5000000 625000 625000
The following is a sample display for the show traffic-shape command for the example shown:
Router# show traffic-shape
access Target Byte Sustain Excess Interval Increment Adapt
I/F list Rate Limit bits/int bits/int (ms) (bytes) Active
Et0 101 1000000 23437 125000 125000 63 7813 -
Et1 5000000 87889 625000 625000 16 9766 -
The following is a sample display for the show traffic-shape statistics command for the example shown:
Router# show traffic-shape statistics
Access Queue Packets Bytes Packets Bytes Shaping
I/F List Depth Delayed Delayed Active
Et0 101 0 2 180 0 0 no
Et1 0 0 0 0 0 no
The following example instructs the system to keep at least 50 small buffers free:
buffers small min-free 50
The following example instructs the system to keep no more than 200 medium buffers free:
buffers middle max-free 200
The following example instructs the system to create one large temporary extra buffer, just after a reload:
buffers large initial 1
The following example instructs the system to create one permanent huge buffer:
buffers huge permanent 1
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Posted: Wed Aug 16 20:35:50 PDT 2000
Copyright 1989-2000©Cisco Systems Inc.