В этой статье рассматривается список выходных данных, которые необходимо собрать при подозрении на утечку памяти.
В большинстве случаев утечка памяти является очень медленным процессом, и для ее обнаружения требуется расширенный анализ журналов.
Для анализа может потребоваться несколько образцов выходных данных, чтобы понять, какая часть памяти затронута.
Инструмент мониторинга памяти
Инструмент мониторинга памяти был включен в версии коммутаторов S4810, MXL и Z9000 9.1(0.0P6+). Этот инструмент собирает подробные сведения об использовании размещенных данных, которые полезны при поиске и устранении возможных утечек памяти. Доступ к инструменту мониторинга памяти можно получить с помощью консоли или сеанса telnet.
1. Включение инструмента мониторинга памяти
Включение инструмента мониторинга памяти.
Пример использования:
remote-exec cp f10mc -i 0x87
Пример:
Команда:
Z9000#remote-exec cp f10mc -i 0x87
Ответ системы:
f10mc -i 0x87
f10mc: Initialized for malloc, pool, pool_cache, with filter for F10 allocations
SStk-0 #
2. Сбор данных
2a. Сбор периодических данных памяти общего назначения
Периодически выполняйте сбор данных (каждые 4–6 часов) в течение нескольких дней. Для сбора выходных данных выполните следующую команду. Эта команда отображает общие сведения о памяти системы. Номер цикла будет увеличиваться на единицу при каждом сборе выходных данных.
Пример использования:
remote-exec cp f10mc -r 0
Пример:
Команда:
Z9000#remote-exec cp f10mc –r 0
Ответ системы:
f10mc -r 0
{
----------------------
#### This cycle: 46176 bytes held by 56 allocations ####
M: 1888(16); +2329280(18371), -2329280(18371)
P: 0(0); +0(0), -0(0)
PC: 44288(40); +3053056(11226), -3053056(11226)
#### Since MCInit: 708902 bytes held by 2112 allocations ####
M: 52006(1338); +110122134(928732), -110070128(927394)
P: 0(0); +0(0), -0(0)
PC: 656896(774); +148369408(548411), -147712512(547637)
}
SStk-0 #
Можно также запросить следующие данные в дополнение к выходным данным инструмента мониторинга памяти.
Связанные команды:
remote-exec cp top -b -o res all
remote-exec cp netstat –m
remote-exec cp vmstat –s
show process memory
show process memory management
show memory
show clock
2b. Сбор подробных данных памяти
По окончании сбора данных по команде «remote-exec cp f10mc –r 0» будет выполнен запрос данных следующей команды. Эта команда предоставляет точные сведения о памяти системы.
Пример использования:
remote-exec cp f10mc -r 1
Пример:
Команда:
Z9000#remote-exec cp f10mc -r 1
Ответ системы:
f10mc -r 1
{
PC:mbpl:0xC71F5200:256:3
PC:mclpl:0xD7C24800:2048:3
PC:mbpl:0xC71F3500:256:3
{output truncated}
PC:mbpl:0xCAFC7F00:256:2
PC:mclpl:0xD7C4D000:2048:2
----------------------
#### This cycle: 286144 bytes held by 266 allocations ####
M: 3520(16); +21362(417), -20514(415)
P: 0(0); +0(0), -0(0)
PC: 282624(250); +1129472(2200), -1126912(2197)
#### Since MCInit: 599392 bytes held by 542 allocations ####
M: 5216(20); +67838(1335), -62622(1315)
P: 0(0); +0(0), -0(0)
PC: 594176(522); +3513088(6660), -2918912(6138)
}
SStk-0 #
Технический отдел оценит собранные данные и предоставит подробные сведения о том, как собрать дополнительную информацию, которая поможет определить источник утечки памяти. Запрашиваемые выходные данные будут использоваться для предположительно неисправных модулей памяти.
Пример использования:
remote-exec cp f10mc –c 0x
Пример:
Команда:
Z9000# remote-exec cp f10mc –c 0xCE0DDD00
Ответ системы:
f10mc -c 0xCE0DDD00
PC:mbpl:0xCE0DDD00:256:2> 0xC0100EAD 0xC033DA54 0xC0137ADE 0xC0136DD0 0xC0142682 0xC013FA17 0xC0148C38 0xC037C808 0xC037BE3F 0xC09B805A
call trace:
0xC0100EAD in Xsoftintr
0xC033DA54 in softint_dispatch
0xC0137ADE in ipintr
0xC0136DD0 in ip_input
0xC0142682 in tcp_input
0xC013FA17 in syn_cache_get
0xC0148C38 in tcp_template
0xC037C808 in m_gethdr
0xC037BE3F in m_get
0xC09B805A in f10MC_pool_cache_get_paddr
SStk-0 #
3. Отключение мониторинга памяти
Отключение инструмента мониторинга памяти после завершения просмотра данных.
Пример использования:
remote-exec cp f10mc -i 0x0
Пример:
Команда:
Z9000#remote-exec cp f10mc -i 0x0
Ответ системы:
f10mc -i 0x0
f10mc: deinitialized
SStk-0 #