Routers : Routers de servicios integrados Cisco de la serie 2900

Localización de averías de las fugas de memoria de MallocLite

13 Agosto 2015 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (23 Abril 2015) | Comentarios

Introducción

Este documento describe cómo resolver problemas las fugas de memoria de MallocLite en las Plataformas del ®software del Cisco IOS.

También especifica la información que usted debe recopilar antes de que usted abra un caso del Centro de Asistencia Técnica de Cisco (TAC) o recargue el dispositivo. Recoja las salidas mencionadas en este documento, y asocíelas al caso TAC para ayudar a apresurar la solución de problemas.

Contribuido por Michal Stanczyk y David Chen, ingenieros de Cisco TAC.

Antecedentes

MallocLite es utilizado por el administrador de la memoria para afectar un aparato los pedazos pequeños, de tamaño fijo de memoria, conocidos como pedazos, para las asignaciones inferior o igual los bytes 128. Las pequeñas asignaciones de memoria no tienen los gastos indirectos de una encabezado de bloque para cada asignación. Esta característica se soporta para los pools de memoria del procesador solamente.

Cada encabezado de bloque de memoria toma cerca de 48 bytes de memoria, y el bloque más pequeño toma cerca de 24 bytes. Con un acercamiento tradicional en Cisco IOS Software para cada asignación, usted consumiría por lo menos 72 (48 + 24) bytes de memoria, incluso si usted necesita afectar un aparato solamente 8 bytes de los datos reales.

Con MallocLite, estos gastos indirectos se pueden reducir por el uso de los pedazos. Todavía hay un ciertos gastos indirectos, porque los pedazos tienen que ser manejados. Sin embargo, puesto que los pedazos son de tamaño fijo, se manejan de una manera diferente que los bloques, y los gastos indirectos son menos.

Es la responsabilidad de las aplicaciones que utilizan la memoria de MallocLite para liberarla correctamente. MallocLite enmascara al usuario de la memoria.

Troubleshooting

Notas:

Use la Command Lookup Tool (clientes registrados solamente) para obtener más información sobre los comandos usados en esta sección.

La herramienta del Output Interpreter (clientes registrados solamente) soporta los ciertos comandos show. Utilice la herramienta del Output Interpreter para ver una análisis de la salida del comando show.

Identifique la aplicación responsable del escape

Es generalmente difícil identificar un bug existente si usted busca solamente por la palabra clave del malloclite.

Este ejemplo muestra que el proceso del *MallocLite* está celebrando una cantidad de memoria anormal:

#show processes memory sorted

Processor Pool Total:  1614282720  Used:  1544726580  Free:   69556140
      I/O Pool Total:  313524224   Used:  115564032   Free:  197960192

PID TTY  Allocated      Freed    Holding    Getbufs    Retbufs Process
  0   0          0          0  1476043512         0          0 *MallocLite*

Usted necesita identificar la aplicación exacta que es responsable del escape. Tres métodos posibles de la identificación son:

  • Decodifique el distribuidor PC.
  • Investigue las estadísticas de la memoria de MallocLite.
  • Inhabilite MallocLite.

Decodifique el distribuidor PC

Incluso con MallocLite se giró, usted puede ver generalmente lo que funcionar preguntó la memoria. La salida del comando show memory allocating-process totals pudo mostrar diversos valores PC aunque el nombre señalado es MallocLite:

#show memory allocating-process totals
<snip>
Allocator PC Summary for: Processor
Displayed first 2048 Allocator PCs only
    PC          Total   Count  Name
0x620BE3C4   42807572     594  MallocLite
0x620ADDD4   13597308     193  MallocLite
0x60738BB0    8909824     122  MallocLite
0x620AE0E0    2060716      31  MallocLite
0x620AE10C    1982780      30  MallocLite

Un ingeniero de Cisco TAC puede decodificar los valores PC desde arriba de la lista (con el total más alto). Esto ayuda a identificar la aplicación que tiene la fuga de memoria.

Investigue las estadísticas de la memoria de MallocLite

Entre las mejoras agregadas en el Cisco IOS Software Release 15.1T era un nuevo CLI que visualiza el resumen de la memoria de MallocLite afectado un aparato por cada PC. El comando de los lite-pedazos de la memoria de la demostración puede ayudarle a identificar las aplicaciones que están utilizando una gran cantidad de bloques de MallocLite.

show memory lite-chunks { statistics | totals } { summary { pool | { all | pool } } }

Refiera a la referencia de comandos para los detalles del comando de los lite-pedazos de la memoria de la demostración.

CLI   : show memory lite-chunks totals
DESC  : Summary of all pools, based on alloc pc.
This cli can be used to find the alloc_pc which is using large amount memory
allocated from all mlite pools

CLI   : show memory lite-chunks statistics
DESC  : Displays number of allocated & free mlite chunks

CLI   : show memory lite-chunks summary pool pool
DESC  : Show summary of particular mlite pool
This cli can be used to find the alloc_pc which is using large amount of memory
in individual mlite pool

CLI   : show memory lite-chunks summary pool all
DESC  : Show individual summary of all mlite pools

CLI   : show memory lite-chunks pool pool
DESC  : Show All chunk elements in the specified pool

CLI   : show memory lite-chunks pool all
DESC  : show all chunk elements in all mlite pools

Ejemplos de salida de este comando include:

#show memory lite-chunks ?
  pool        Malloc lite pool
  statistics  Malloc lite statistics
  summary     Malloc Lite summary
  totals      Malloc Lite Allocating totals

#show memory lite-chunks statistics

      Pool       Inuse       Free
   8-Bytes         140       1904
  20-Bytes         173       1313
  44-Bytes         171        791
  68-Bytes          24        687
  96-Bytes          26        519
 128-Bytes          20        410

#show memory lite-chunks totals

       PC         Total       Count
 26067AE0          2112          33
 2269E68C          1932          29
 2269FACC          1664          29
 2269F964          1664          26
 2269FA9C          1580          29
 26067FB4          1360          34
 23CD2A0C          1036           7

#show memory lite-chunks pool ?

  128-Bytes  128 bytes pool
  20-Bytes   20 bytes pool
  44-Bytes   44 bytes pool
  68-Bytes   68 bytes pool
  8-Bytes    8 bytes pool
  96-Bytes   96 bytes pool
  all        all pools

#show memory lite-chunks summary pool 8

        8 bytes pool
       PC         Total       Count
 2269FB10           812          29
 23612084           700          25
 2269F9F8           700          25
 2269F9EC           700          25

Una vez más el ingeniero de TAC puede decodificar los valores PC con el total más alto e identificar la aplicación que se está escapando la memoria.

Neutralización MallocLite

La característica de MallocLite se habilita por abandono. Para investigar el escape de MallocLite, usted puede inhabilitar MallocLite:

(config)#no memory lite

La memoria escapada todavía estará bajo MallocLite hasta la recarga siguiente; sin embargo, usted puede comenzar a monitorear otros escapes con la memoria de los procesos de la demostración clasificada y los comandos show memory allocating-process totals. Los escapes ahora aparecerán bajo proceso real.

Si el dispositivo se ejecuta muy bajo en la memoria, usted debe salvar la configuración y recargar el dispositivo para liberar la memoria:

#wr
#reload

La memoria pudo agotar otra vez en un cierto plazo, así que utilice la memoria de los procesos de la demostración clasificada y los comandos show memory allocating-process totals para monitorear el uso de la memoria de esa punta adelante.

Nota: Si usted inhabilita con eficacia MallocLite con el ningún comando de lite de la memoria y recarga el dispositivo, la salida del comando de los lite-pedazos de la memoria de la demostración estará vacía.

Refiera a la referencia de comandos para los detalles del comando de lite de la memoria.


Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.


Document ID: 117517