Fundamentales guía de configuración de la configuración del Cisco IOS, versión 12.2SR
Detector de fugas de memoria
2 Agosto 2013 - Traducción Automática | Otras Versiones: PDFpdf 196 KB | Inglés (25 Enero 2008) | Comentarios

Contenidos

Detector de Fugas de memoria

Contenido

Requisitos previos para el detector de fuga de memoria

Restricciones para el detector de fuga de memoria

Información sobre Memory Leak Detector

Fugas de memoria

Detección de Agotamiento de Memoria

Cómo Utilizar el Detector de Agotamiento de Memoria

Visualización de Información de Agotamiento de Memoria

Configuración del Tiempo de Inicio Incremental de Debug de la Memoria

Visualización Incremental de Información de Agotamiento de Memoria

Ejemplos para el detector de fuga de memoria

Ejemplo: muestre los escapes del debug de la memoria

Ejemplo: muestre los pedazos de los escapes del debug de la memoria

Ejemplo: muestre los escapes del debug de la memoria más grandes

Ejemplo: muestre los escapes del debug de la memoria sumarios

Ejemplo: muestre a debug de la memoria las asignaciones ampliadas

Ejemplo: muestre a debug de la memoria el estatus ampliado

Referencias adicionales

Documentos Relacionados

Estándares

MIB

RFC

Asistencia Técnica

Información de la característica para el detector de fuga de memoria


Detector de fugas de memoria


Última actualización: 3 de diciembre de 2010

La característica del detector de fuga de memoria es una herramienta que se puede utilizar para detectar las fugas de memoria en un router que sea Cisco IOS Software corriente. La característica del detector de fuga de memoria es capaz de los escapes del hallazgo en todos los agrupamientos de memoria, almacenes intermedios del paquete, y pedazos.

Su versión de software puede no soportar todas las características documentadas en este módulo. Para la últimas información y advertencias de la característica, vea los Release Note para su plataforma y versión de software. Para encontrar la información sobre las características documentadas en este módulo, y ver una lista de las versiones en las cuales se soporta cada característica, vea “información de la característica para la sección del detector de fuga de memoria”.

Utilice el Cisco Feature Navigator para encontrar la información sobre el soporte del Soporte de la plataforma y de la imagen del software de Cisco. Para acceder a Cisco Feature Navigator, vaya a http://www.cisco.com/go/cfn. Una cuenta en el cisco.com no se requiere.

Contenido

Requisitos previos para el detector de fuga de memoria

Restricciones para el detector de fuga de memoria

Información sobre Memory Leak Detector

Cómo Utilizar el Detector de Agotamiento de Memoria

Ejemplos para el detector de fuga de memoria

Referencias adicionales

Información de la característica para el detector de fuga de memoria

Requisitos previos para el detector de fuga de memoria

Usted debe tener por lo menos una familiaridad básica con el entorno del Cisco IOS y la interfaz de la línea de comandos.

Usted debe tener por lo menos una configuración mínima que se ejecuta en su sistema.

Restricciones para el detector de fuga de memoria

Usted debe tener su red en servicio, con el Cisco IOS Release 12.2 o una versión posterior instalada.

Algunos de los comandos de configuración del Cisco IOS están solamente disponibles en ciertas plataformas del router, y la sintaxis de los comandos puede variar en diversas Plataformas.

Información sobre Memory Leak Detector

Fugas de memoria

Detección de Agotamiento de Memoria

Fugas de memoria

El agotamiento de memoria es la asignación estática o dinámica de la memoria que no responde a ningún propósito útil. Aunque la tecnología esté disponible para la detección de escapes entre la memoria estáticamente afectada un aparato, en este documento el foco está en las asignaciones de memoria que se hacen dinámicamente.

Detección de Agotamiento de Memoria

Desde el punto de vista de la detección, los escapes entre los bloques de memoria dinámicamente afectados un aparato se pueden clasificar en los tres tipos siguientes:

Los escapes del tipo 1 no tienen ninguna referencia. Estos bloques de memoria no pueden ser accedidos.

Los escapes del Tipo 2 son parte de uno o más ciclos de las asignaciones pero ningunos de los bloques en estos ciclos son accesibles fuera de los ciclos. Los bloques dentro de cada ciclo tienen referencias a otros elementos en los ciclos. Un ejemplo de un escape del Tipo 2 es una lista circular que no se necesita más. Aunque los elementos individuales son accesibles, la lista circular no es accesible.

Los escapes del tipo 3 son accesibles o accesibles pero no son necesarios, por ejemplo, los elementos en las estructuras de datos que no se necesitan más. Una subclase de los escapes del tipo 3 es ésas al donde se hacen pero nunca se escriben las asignaciones. Usted puede buscar estos escapes de la subclase usando show memory debug reference unused el comando.

La característica del detector de fuga de memoria proporciona la tecnología para detectar las fugas de memoria del tipo 1 y del Tipo 2.

La característica del detector de fuga de memoria trabaja en los dos modos siguientes:

Modo normal — Donde el detector de fuga de memoria utiliza la memoria para acelerar sus operaciones.

Modo de la memoria baja — Donde el detector de fuga de memoria se ejecuta sin intentar afectar un aparato la memoria.

El modo de la memoria baja es considerablemente más lento que el modo normal y puede manejar solamente los bloques. No hay soporte para los pedazos en el modo de la memoria baja. El modo de la memoria baja es útil cuando hay poco o nada de memoria disponible en el router.

El detector de fuga de memoria tiene una interfaz simple y se puede invocar por el comando line interface(cli) de conseguir en cualquier momento un informe de las fugas de memoria. Para comprobar, usted puede realizar todas las pruebas, después invoca el detector de fuga de memoria para conseguir un informe sobre los escapes. Si usted está interesado solamente en los escapes generados por sus casos de prueba solamente, el detector de fuga de memoria tiene una opción ampliada, que se puede habilitar al inicio de la prueba. Después de que la prueba complete, usted puede conseguir un informe sobre solamente los escapes que ocurrieron después de que la opción ampliada fuera habilitada.

Para reducir las alarmas falsas, es obligatorio que el detector de fuga de memoria esté invocado las épocas múltiples y que solamente los escapes que aparecen constantemente en todos los informes estén interpretados como escapes. Esto es especialmente verdad para los escapes del almacén intermedio del paquete.


Observeal someter los defectos basados en los informes del detector de fuga de memoria, agregue por favor la “memleak-detección” al campo del atributo del informe de defecto.



El cuidadoejecutando los comandos de la detección de fuga de memoria en un dispositivo con un problema de fuga de memoria serio puede causar la pérdida de conectividad.

Cómo Utilizar el Detector de Agotamiento de Memoria

Esta sección contiene los siguientes procedimientos:

Visualización de Información de Agotamiento de Memoria

Configuración del Tiempo de Inicio Incremental de Debug de la Memoria

Visualización Incremental de Información de Agotamiento de Memoria

Visualización de Información de Agotamiento de Memoria

Para visualizar detectó la información de la fuga de memoria, completa la tarea en esta sección:

PASOS SUMARIOS

1. enable

2.show memory debug leaks [chunks | largest | lowmem | summary]

PASOS DETALLADOS

 
Comando o acción
Propósito

Paso 1 

enable

Example:

Router> enable

Habilita el modo EXEC privilegiado.

Ingrese su contraseña si se le pide que lo haga.

Paso 2 

show memory debug leaks [chunks | largest | lowmem | summary]

Example:

Router# show memory debug leaks chunks

Invoca la detección de fuga de memoria del modo normal y visualiza las fugas de memoria detectadas. Las palabras claves optativas son como sigue:

chunks — Invoca la detección de fuga de memoria del modo normal y visualiza las fugas de memoria detectadas en los pedazos.

largest — Invoca la detección de fuga de memoria y visualiza los diez allocator_pcs y cantidades totales de memoria que se escapan superiores que se han escapado. Además, cada vez que se invoca este comando recuerda el informe de la llamada anterior y lo compara al informe de la llamada actual.

lowmem — Invoca la detección de fuga de memoria del modo de la memoria baja y visualiza las fugas de memoria detectadas. La cantidad de tiempo tomada para el análisis es considerablemente mayor que la del modo normal. La salida para este comando es similar show memory debug leaks al comando.

summary — Invoca la detección de fuga de memoria del modo normal y la visualiza detectó las fugas de memoria basadas en el allocator_pc y entonces en los tamaños del bloque.

Configuración del Tiempo de Inicio Incremental de Debug de la Memoria

Para fijar Starting Time (Tiempo de inicio) para el análisis ampliado de las fugas de memoria, complete la tarea en esta sección:

PASOS SUMARIOS

1. enable

2. set memory debug incremental starting-time

PASOS DETALLADOS

 
Comando o acción
Propósito

Paso 1 

enable

Example:

Router> enable

Habilita el modo EXEC privilegiado.

Ingrese su contraseña si se le pide que lo haga.

Paso 2 

set memory debug incremental starting-time

Example:

Router# set memory debug incremental starting-time

Establece el tiempo de inicio de un análisis incremental al tiempo en que se emitió el comando. Cuando Starting Time (Tiempo de inicio) se fija, sólo memoria afectada un aparato después de que Starting Time (Tiempo de inicio) sea considerado para señalar como escapes.

Visualización Incremental de Información de Agotamiento de Memoria

Para visualizar la información de la fuga de memoria después de que a Starting Time (Tiempo de inicio) se haya establecido, complete las tareas en esta sección:

PASOS SUMARIOS

1. enable

2. set memory debug incremental starting-time

3.muestre el debug de la memoria ampliado {allocations | leaks []lowmem | status}

PASOS DETALLADOS

 
Comando o acción
Propósito

Paso 1 

enable

Example:

Router> enable

Habilita el modo EXEC privilegiado.

Ingrese su contraseña si se le pide que lo haga.

Paso 2 

set memory debug incremental starting-time

Example:

Router# set memory debug incremental starting-time

Establece el tiempo de inicio de un análisis incremental al tiempo en que se emitió el comando.

Paso 3 

show memory debug incremental {allocations | leaks [lowmem]| status}

Example:

Router# show memory debug incremental allocations

allocations — Visualiza todos los bloques de memoria que fueron afectados un aparato después de la aplicación set memory debug incremental starting-time un comando. Los bloques de memoria visualizados son apenas asignaciones de memoria, ellos no son necesariamente escapes.

leaks — Las visualizaciones hacen salir similar show memory debug leaks al comando, salvo que visualiza solamente la memoria que fue escapada después de la aplicación set memory debug incremental starting-time un comando.

lowmem — Detección de fuga de memoria de las fuerzas a trabajar en el modo de la memoria baja. La salida para este comando es similar show memory debug leaks al comando, salvo que visualiza solamente la memoria que fue escapada después de la aplicación set memory debug incremental starting-time un comando.

– En el modo de la memoria baja, la duración de análisis es considerablemente mayor que está en el modo normal.

– Usted puede utilizar este comando cuando usted sabe ya que la detección de fuga de memoria del modo normal fallará (quizás por una tentativa anterior fracasada de invocar la detección de fuga de memoria del modo normal).

status — Visualizaciones si un punto de partida para el análisis ampliado se ha fijado y el tiempo transcurrido desde entonces.

Ejemplos para el detector de fuga de memoria

Las secciones siguientes proporcionan los ejemplos de salida del show memory debug leaks y show memory debug incremental de los comandos:

Ejemplo: muestre los escapes del debug de la memoria

Ejemplo: muestre los pedazos de los escapes del debug de la memoria

Ejemplo: muestre los escapes del debug de la memoria más grandes

Ejemplo: muestre los escapes del debug de la memoria sumarios

Ejemplo: muestre a debug de la memoria las asignaciones ampliadas

Ejemplo: muestre a debug de la memoria el estatus ampliado

Ejemplo: muestre los escapes del debug de la memoria

El siguiente ejemplo muestra la salida show memory debug leaks del comando sin las palabras claves optativas especificadas:

Router# show memory debug leaks
Adding blocks for GD...
                 PCI memory
Address    Size   Alloc_pc  PID  Name
                 I/O memory
Address    Size   Alloc_pc  PID  Name
                 Processor memory
Address    Size   Alloc_pc  PID  Name
62DABD28       80 60616750  -2   Init
62DABD78       80 606167A0  -2   Init
62DCF240       88 605B7E70  -2   Init
62DCF298       96 605B7E98  -2   Init
62DCF2F8       88 605B7EB4  -2   Init
62DCF350       96 605B7EDC  -2   Init
63336C28      104 60C67D74  -2   Init
63370D58       96 60C656AC  -2   Init
633710A0      304 60C656AC  -2   Init
63B2BF68       96 60C659D4  -2   Init
63BA3FE0    32832 608D2848  104  Audit Process
63BB4020    32832 608D2FD8  104  Audit Process

El cuadro 1 describe los campos significativos mostrados en la visualización.

El debug de la memoria de la demostración del cuadro 1 se escapa las Descripciones del campo 

Campo
Descripción

Dirección

Dirección hexadecimal del bloque agotado.

Tamaño

Tamaño del bloque agotado (en bytes).

Alloc_pc

La dirección de la llamada del sistema que asignó el bloque.

PID

El identificador de proceso del proceso que asignó el bloque.

Nombre

El nombre del proceso que asignó el bloque.


Ejemplo: muestre los pedazos de los escapes del debug de la memoria

El siguiente ejemplo muestra la salida show memory debug leaks chunks del comando:

Router# show memory debug leaks chunks
Adding blocks for GD...
                 PCI memory
Address    Size   Alloc_pc  PID  Name
Chunk Elements:
Address  Size  Parent   Name
                 I/O memory
Address    Size   Alloc_pc  PID  Name
Chunk Elements:
Address  Size  Parent   Name
                 Processor memory
Address    Size   Alloc_pc  PID  Name
62DABD28       80 60616750  -2   Init
62DABD78       80 606167A0  -2   Init
62DCF240       88 605B7E70  -2   Init
62DCF298       96 605B7E98  -2   Init
62DCF2F8       88 605B7EB4  -2   Init
62DCF350       96 605B7EDC  -2   Init
63336C28      104 60C67D74  -2   Init
63370D58       96 60C656AC  -2   Init
633710A0      304 60C656AC  -2   Init
63B2BF68       96 60C659D4  -2   Init
63BA3FE0    32832 608D2848  104  Audit Process
63BB4020    32832 608D2FD8  104  Audit Process
Chunk Elements:
Address  Size  Parent   Name
62D80DA8    16 62D7BFD0 (Managed Chunk )
62D80DB8    16 62D7BFD0 (Managed Chunk )
62D80DC8    16 62D7BFD0 (Managed Chunk )
62D80DD8    16 62D7BFD0 (Managed Chunk )
62D80DE8    16 62D7BFD0 (Managed Chunk )
62E8FD60   216 62E8F888 (IPC Message He)

El cuadro 2 describe los campos significativos mostrados en la visualización.

El debug de la memoria de la demostración del cuadro 2 se escapa las Descripciones del campo de los pedazos 

Campo
Descripción

Dirección

Dirección hexadecimal del bloque agotado.

Tamaño

Tamaño del bloque agotado (en bytes).

Alloc_pc

La dirección de la llamada del sistema que asignó el bloque.

PID

El identificador de proceso del proceso que asignó el bloque.

Nombre

El nombre del proceso que asignó el bloque.

Tamaño

(Tamaños de los elementos del pedazo) del elemento escapado (bytes).

Padre

(Elementos del pedazo) Parent el pedazo del pedazo escapado.

Nombre

(Elementos del pedazo) el nombre del pedazo escapado.


Ejemplo: muestre los escapes del debug de la memoria más grandes

El siguiente ejemplo muestra la salida show memory debug leaks largest del comando:

Router# show memory debug leaks largest
Adding blocks for GD...
                 PCI memory
Alloc_pc    total leak size
                 I/O memory
Alloc_pc    total leak size
                 Processor memory
Alloc_pc    total leak size
608D2848    32776     inconclusive
608D2FD8    32776     inconclusive
60C656AC    288       inconclusive
60C67D74    48        inconclusive
605B7E98    40        inconclusive
605B7EDC    40        inconclusive
60C659D4    40        inconclusive
605B7E70    32        inconclusive
605B7EB4    32        inconclusive
60616750    24        inconclusive

El siguiente ejemplo muestra la salida de la segunda llamada show memory debug leaks largest del comando:

Router# show memory debug leaks largest
Adding blocks for GD...
                 PCI memory
Alloc_pc    total leak size
                 I/O memory
Alloc_pc    total leak size
                 Processor memory
Alloc_pc    total leak size
608D2848    32776
608D2FD8    32776
60C656AC    288
60C67D74    48
605B7E98    40
605B7EDC    40
60C659D4    40
605B7E70    32
605B7EB4    32
60616750    24

Ejemplo: muestre los escapes del debug de la memoria sumarios

El siguiente ejemplo muestra la salida show memory debug leaks summary del comando:

Router# show memory debug leaks summary
Adding blocks for GD...
                 PCI memory
Alloc PC        Size     Blocks      Bytes    What
                 I/O memory
Alloc PC        Size     Blocks      Bytes    What
                 Processor memory
Alloc PC        Size     Blocks      Bytes    What
0x605B7E70 0000000032 0000000001 0000000032    Init
0x605B7E98 0000000040 0000000001 0000000040    Init
0x605B7EB4 0000000032 0000000001 0000000032    Init
0x605B7EDC 0000000040 0000000001 0000000040    Init
0x60616750 0000000024 0000000001 0000000024    Init
0x606167A0 0000000024 0000000001 0000000024    Init
0x608D2848 0000032776 0000000001 0000032776    Audit Process
0x608D2FD8 0000032776 0000000001 0000032776    Audit Process
0x60C656AC 0000000040 0000000001 0000000040    Init
0x60C656AC 0000000248 0000000001 0000000248    Init
0x60C659D4 0000000040 0000000001 0000000040    Init
0x60C67D74 0000000048 0000000001 0000000048    Init

El cuadro 3 describe los campos significativos mostrados en la visualización.

El debug de la memoria de la demostración del cuadro 3 se escapa las Descripciones del campo sumarias 

Campo
Descripción

Alloc PC

La dirección de la llamada del sistema que asignó el bloque.

Tamaño

Tamaños del bloque escapado.

Bloques

Número de bloques escapados.

Bytes

Cantidad total de memoria escapada.

Qué

Nombre del proceso que posee el bloque.


Ejemplo: muestre a debug de la memoria las asignaciones ampliadas

El siguiente ejemplo muestra la salida show memory debug incremental del comando cuando está ingresado con allocations la palabra clave:

Router# show memory debug incremental allocations
Address    Size   Alloc_pc  PID  Name
62DA4E98      176 608CDC7C  44   CDP Protocol
62DA4F48       88 608CCCC8  44   CDP Protocol
62DA4FA0       88 606224A0  3    Exec
62DA4FF8       96 606224A0  3    Exec
635BF040       96 606224A0  3    Exec
63905E50      200 606A4DA4  69   Process Events

Ejemplo: muestre a debug de la memoria el estatus ampliado

El siguiente ejemplo muestra la salida show memory debug incremental del comando entered con status la palabra clave:

Router# show memory debug incremental status
Incremental debugging is enabled
Time elapsed since start of incremental debugging: 00:00:10

Referencias adicionales

Las secciones siguientes proporcionan las referencias relacionadas con el detector de fuga de memoria.

Documentos Relacionados

Tema relacionado
Título del documento

Comandos de Cisco IOS

El Cisco IOS domina los comandos list, todos las versiones

Comandos de configuración del Cisco IOS

Referencia de comandos de los fundamentales de la configuración del Cisco IOS


Estándares

Estándares
Título

Esta función no soporta estándares nuevos o modificados, y el soporte de los estándares existentes no ha sido modificado por ella.


MIB

MIB
Link del MIB

Esta función no soporta MIBs nuevas o modificadas, y el soporte para las MIBs existentes no ha sido modificado por esta función.

Para localizar y descargar MIB de plataformas, versiones de Cisco IOS y conjuntos de funciones seleccionados, utilice Cisco MIB Locator, que se encuentra en la siguiente URL:

http://www.cisco.com/cisco/web/LA/support/index.html


RFC

RFC
Título

Esta función no soporta RFCs nuevos o modificados, y el soporte de los RFCs existentes no ha sido modificado por ella.


Asistencia Técnica

Descripción
Link

Página de inicio del Centro de Asistencia Técnica (TAC), que contiene 30.000 páginas de contenido técnico que permite la búsqueda, incluyendo links a productos, tecnologías, soluciones, consejos técnicos y herramientas. Los usuarios registrados de cisco.com pueden iniciar sesión desde esta página para acceder a otros contenidos.

http://www.cisco.com/cisco/web/LA/support/index.html


Información de la característica para el detector de fuga de memoria

El cuadro 4 enumera el historial de la versión para esta característica.

Utilice el Cisco Feature Navigator para encontrar la información sobre el soporte del Soporte de la plataforma y de la imagen del software. El Cisco Feature Navigator le permite para determinar qué imágenes del software soportan una versión de software, un conjunto de características, o una plataforma específico. Para acceder a Cisco Feature Navigator, vaya a http://www.cisco.com/go/cfn. Una cuenta en el cisco.com no se requiere.


Observelas listas del cuadro 4 solamente la versión de software que introdujo el soporte para una característica dada en un tren de versión de software dado. A menos que se indicare en forma diferente, las versiones posteriores de ese tren de versión de software también soportan esa característica.


Información de la característica del cuadro 4 para el detector de fuga de memoria 

Nombre de la función
Versiones
Información sobre la Función

Detector de fugas de memoria

12.3(8)T1
12.2(25)S

La característica del detector de fuga de memoria es una herramienta que se puede utilizar para detectar las fugas de memoria en un router que sea Cisco IOS Software corriente. La característica del detector de fuga de memoria es capaz de los escapes del hallazgo en todos los agrupamientos de memoria, almacenes intermedios del paquete, y pedazos.



Cisco and the Cisco Logo are trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and other countries. A listing of Cisco's trademarks can be found at www.cisco.com/go/trademarks. Third party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1005R)