Guest

Cisco IOS Software Releases 12.4 T

Interface Input Queue Memory Reclamation

  • Viewing Options

  • PDF (243.5 KB)
  • Feedback
Interface Input Queue Memory Reclamation

Table Of Contents

Interface Input Queue Memory Reclamation

Contents

Prerequisites for Interface Input Queue Memory Reclamation

Information About Interface Input Queue Memory Reclamation

Interface Wedging and Packet Memory Leaks

I/O Memory

Memory Resource Reclamation for Interfaces

Fine-tuning the Memory Reclamation Processes

How to Modify the Frequency of Interface Input Queue Memory Checks

Configuring A Critical Rising Threshold for Global I/O Memory

Configuration Examples for Interface Input Queue Unwedging

Example: Configuring a System Global Thresholding Policy for I/O Memory

Additional References

Related Documents

Standards

MIBs

RFCs

Technical Assistance

Command Reference


Interface Input Queue Memory Reclamation


First Published: February 27, 2006
Last Updated: November 1, 2006

Interface Input Queue Memory Reclamation is a minor infrastructure enhancement for resource management. This enhancement provides for leaked Cisco IOS packet memory cleanup and memory reclamation using the Garbage Detection process and the Buffer-Manager Resource-Owner (RO) functionality.

User configuration related to this enhancement would typically only be required in technical support-assisted scenarios.

Feature History for Interface Input Queue Memory Reclamation

Release
Modification

12.4(6)T

This enhancement was introduced (as the "Interface Input Queue Unwedging feature").


Finding Support Information for Platforms and Cisco IOS and Catalyst OS Software Images

Use Cisco Feature Navigator to find information about platform support and Cisco IOS and Catalyst OS software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn.

Contents

Prerequisites for Interface Input Queue Memory Reclamation

Information About Interface Input Queue Memory Reclamation

How to Modify the Frequency of Interface Input Queue Memory Checks

Configuration Examples for Interface Input Queue Unwedging

Additional References

Command Reference

Prerequisites for Interface Input Queue Memory Reclamation

You must be running Cisco IOS Release 12.4(6)T or a later release.

Additional instructions from a Cisco technical support representative may be required.

Information About Interface Input Queue Memory Reclamation

Before modifying the settings for Interface Input Queue Memory Reclamation, you should understand the following concepts:

Interface Wedging and Packet Memory Leaks

I/O Memory

Memory Resource Reclamation for Interfaces

Interface Wedging and Packet Memory Leaks

In certain situations, errors in the system accounting of incoming packets can occur, leading to a "memory leak" caused by the input queue. When there is a leak in an interface's input queue, gradually the queue reaches its maximum permitted value, causing the interface to become "wedged." A wedged interface may stop processing incoming packets altogether. Packet memory leaks can cause interface input queue wedges.

This enhancement improves the infrastructure for preventing wedged interface input queues, and it provides a method for changing the defaults of that infrastructure.


Note Additional troubleshooting (debugging) commands were also introduced by this enhancement for use by technical support representatives in specific situations.


I/O Memory

The I/O (Input/Output) memory pool is one of the memory types in Cisco IOS software. The input queue buffers use memory from this pool for processing.

Memory Resource Reclamation for Interfaces

Within the Embedded Resource Manager Infrastructure of Cisco IOS software, a Memory Leak Detector process (sometimes referred to as the "garbage detection" or "GD" process) works behind the scenes. As part of the resource reclamation process, packets that the detector finds as leaked can be deallocated and reused. This feature provides a command (critical rising) that can be used to fine-tune the process of evoking memory resource reclamation.


Note Configuration of this feature will typically only be needed as part of a troubleshooting process with a Cisco technical support representative, and additional configuration tasks or special technical support commands may be required before this feature can be effectively used.


In Cisco IOS Release 12.4, the Embedded Resource Manager (ERM) feature was introduced. (See the "Embedded Resource Manager" feature module for details.) As part of the ERM infrastructure (ERMI), configuration commands are available for the configuration of a Memory Resource Owner (memory RO) policy.

Typically, if memory consumption is more that the rising threshold of 75 percent of total I/O memory for more than 5 seconds, a "critical" ERM notification is generated within the system and a call-back is issued. As an action in the call-back, a check is made to see if the memory is hogged by packets (that match Flexible Packet Matching criteria), and, if so, the deallocation procedure is started. In the event that the deallocation procedure does not free up enough memory to bring it below the lower threshold, the deallocation procedure would be periodically reattempted. Once the memory usage falls below the configured threshold, the periodic attempts to deallocate are stopped.

Fine-tuning the Memory Reclamation Processes

The option of configuring this memory policy was implemented to allow you to further balance the system between too many invocations of the Memory Leak Detector (which has the possibility of becoming overly resource intensive) and the need to quickly identify any potential packet memory leaks. As mentioned elsewhere in this document, this optional capability will typically only be needed for edge-case scenarios where troubleshooting is necessary.

The critical rising command allows you to set rising (and falling) threshold values for critical levels as percentages of I/O memory usage and specify a time interval for those values. Changing the critical rising threshold for the global I/O memory pool can change how often the Memory Leak Detector process is triggered (and, if needed, the associated deallocation process).

The deallocation procedure is triggered when the system determines that resources are "critically hogged." By default, interface input memory is considered "critically hogged" if the buffers are using 75 percent or more of I/O memory.If there is a need to change this default, thresholds for the Memory Resource Owner can be configured using the critical rising command while configuring an ERM memory I/O policy, as shown in the "How to Modify the Frequency of Interface Input Queue Memory Checks" section.

How to Modify the Frequency of Interface Input Queue Memory Checks

This section contains the following procedure:

Configuring A Critical Rising Threshold for Global I/O Memory (optional)

Configuring A Critical Rising Threshold for Global I/O Memory

Perform this task to specify a critical "rising threshold" value for the global I/O memory pool. As explained above, if global I/O memory resource consumption meets or exceeds this value, the Memory Leak Detector process will be automatically triggered. This configuration is only needed if you are experiencing a problem and you want to change (fine tune) how often the automatic process occurs (for example, set the threshold lower so that deallocation check occurs more frequently).

SUMMARY STEPS

1. enable

2. configure terminal

3. resource policy

4. policy policy-name [global | type resource-user-type]

5. system
or
slot slot-number

6. memory io

7. critical rising rising-threshold-value [interval interval-value] [falling falling-threshold-value [interval interval-value]] [global]

8. exit

DETAILED STEPS

 
Command or Action
Purpose

Step 1 

enable

Example:

Router> enable

Enables privileged EXEC mode.

Enter your password if prompted.

Step 2 

configure terminal

Example:

Router# configure terminal

Enters global configuration mode.

Step 3 

resource policy

Example:

Router(config)# resource policy

Enters ERM configuration mode.

Step 4 

policy policy-name [global | type resource-user-type]

Example:

Router(config-erm)# policy policy1 type iosprocess

Configures a resource policy and enters ERM policy configuration mode.

The policy-name argument identifies the name of the resource policy.

The global keyword is used when you are configuring a system global policy.

The type keyword indicates that you are configuring either a user local or per-user global policy. The resource-user-type argument identifies the name of the resource user type you want to attach the policy to.

Step 5 

system

or

slot slot-number

Example:

Router(config-erm-policy)# system

or

Example:

Router(config-erm-policy)# slot 1


Enters policy node configuration mode with the system command.

Enters ERM slot configuration mode with the slot slot-number command. This command is available only in distributed platforms like Route/Switch Processor (RSP).

Step 6 

memory io

Example:

Router(config-policy-node)# memory io

(Optional) Enters memory owner configuration mode.

Allows you to set the rising and falling values for the critical, major, and minor thresholds.

Step 7 

critical rising rising-threshold-value [interval interval-value] [falling falling-threshold-value [interval interval-value]] [global]

Example:

Router(config-owner-memory)# critical rising 75 falling 65 interval 10 global


Allows you to set the rising and falling threshold values for critical levels as percentages of the I/O memory pool, and set the interval of time that must pass before these values are registered.

If the amount of memory held by the resource user crosses the rising threshold value, a rising threshold notification is generated.

If the falling threshold notification is generated before the interval has passed, then the rising notification is not sent.

The interval following the rising threshold signifies this time period in seconds.

If the amount of memory held by the resource user falls below the falling threshold, the falling threshold notification is sent.

The optional global keyword indicates that the threshold is being set on the global memory consumption, not on the memory used by the particular resource user in which the configuration is being applied.

Note If you had configured a global policy in Step 4, you do not need to give the global keyword while setting the threshold values in Step 7. However, if you have configured a user local or per-user global policy (by not specifying the global keyword) in Step 4, enter the global keyword in Step 7 if you want to configure a per user global threshold.

Step 8 

exit

Example:

Router(config-owner-memory)# exit

Exits memory owner configuration mode.

Configuration Examples for Interface Input Queue Unwedging

This section provides the following configuration example:

Example: Configuring a System Global Thresholding Policy for I/O Memory

Example: Configuring a System Global Thresholding Policy for I/O Memory

The following example shows the configuration of a global memory thresholding policy for I/O memory. In this example, the policy is given the name "system-global-io", and the threshold for critical I/O memory usage is defined as being usage of over 90 percent of the globally available I/O memory pool for 12 consecutive seconds.

The critical falling threshold is also defined in this example (less than 20 percent of the globally available I/O memory pool for 10 seconds or more); however, only the critical rising level will affect when the automatic deallocation procedure is triggered.

configure terminal
resource policy 
policy system-global-io global
system
memory io 
critical rising 90 interval 12 falling 20 interval 10 

Additional References

The following sections provide references related to this enhancement.

Related Documents

Related Topic
Document Title

Memory Leak Detector

"Memory Leak Detector" module in the "Maintaining System Memory" part of the Cisco IOS Configuration Fundamentals Configuration Guide, Release 12.4.

Embedded Resource Manager (ERM)

"Embedded Resource Manager" module in the "System Monitoring and Logging" part of the Cisco IOS Network Management Configuration Guide, Release 12.4


Standards

Standard
Title

No new or modified standards are supported by this feature.


MIBs

MIB
MIBs Link

No new or modified MIBs are supported by this feature.

To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:

http://www.cisco.com/go/mibs


RFCs

RFC
Title

No new or modified RFCs are supported by this feature.


Technical Assistance

Description
Link

The Cisco Technical Support & Documentation website contains thousands of pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools, and technical documentation. Registered Cisco.com users can log in from this page to access even more content.

http://www.cisco.com/techsupport


Command Reference

No commands have been introduced or modified by this feature. For documentation of the memory io command and the critical rising command, see the Cisco IOS Network Management Command Reference, Release 12.4T.