Tento článek vysvětluje seznam výstupů, které je třeba shromáždit v případech, kdy existuje podezření na nevrácení paměti.
Nevrácení paměti je většinou velmi pomalý proces a v takových případech je vyžadována rozsáhlá analýza protokolů-
Pro naši analýzu můžeme vyžadovat více vzorků výstupů, abychom zjistili, která část paměti je ovlivněna.
Nástroje pro monitorování paměti
Do verzí 9.1(0.0P6+) přepínačů S4810, MXL a Z9000 byl začleněn nástroj pro monitorování paměti. Tento nástroj zachycuje podrobné využití přidělení dat, které je důležité při řešení případů nevrácení paměti. Nástroj pro monitorování paměti je přístupný prostřednictvím konzole nebo relace telnet.
1: Aktivace nástroje pro monitorování paměti
Aktivace nástroje pro monitorování paměti.
Použití např.:
remote-exec cp f10mc -i 0x87
Například:
Příkaz:
Z9000#remote-exec cp f10mc -i 0x87
Reakce systému:
f10mc -i 0x87
f10mc: Initialized for malloc, pool, pool_cache, with filter for F10 allocations
SStk-0 #
2: Shromažďování dat
2a: Shromažďování pravidelných obecných dat paměti
Pravidelně (v intervalech 4 až 6 hodin) shromažďujte data po dobu několika dní. Shromážděte výstup spuštěním následujícího příkazu. Následující příkaz zobrazí obecné podrobnosti o paměti systému. Číslo cyklu ve výstupu se bude zvyšovat o jedno při každém sběru výstupu.
Použití např.:
remote-exec cp f10mc -r 0
Například:
Příkaz:
Z9000#remote-exec cp f10mc –r 0
Reakce systému:
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 #
Kromě výstupu nástroje pro monitorování paměti může být požadován následující výstup.
Související příkazy:
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: Shromažďování podrobných dat o paměti
Po uplynutí doby shromažďování příkazu „emote-exec cp f10mc –r 0“ bude vyžadován výstup následujícího příkazu. Následující příkaz zobrazí přesné podrobnosti o paměti systému.
Použití např.:
remote-exec cp f10mc -r 1
Například:
Příkaz:
Z9000#remote-exec cp f10mc -r 1
Reakce systému:
f10mc -r 1
{
PC:mbpl:0xC71F5200:256:3
PC:mclpl:0xD7C24800:2048:3
PC:mbpl:0xC71F3500:256:3
{zkrácený výstup}
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 #
Technici vyhodnotí shromážděná data a poskytnou vám podrobnosti o tom, jak shromáždit další informace, které pomohou při identifikaci zdroje nevrácení paměti. Požadovaný výstup bude určen pro přidělení podezřelých pamětí:
Použití např.:
remote-exec cp f10mc –c 0x
Například:
Příkaz:
Z9000# remote-exec cp f10mc –c 0xCE0DDD00
Reakce systému:
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: Vypnutí monitorování paměti
Po dokončení kontroly dat vypněte nástroj pro monitorování paměti.
Použití např.:
remote-exec cp f10mc -i 0x0
Například:
Příkaz:
Z9000#remote-exec cp f10mc -i 0x0
Reakce systému:
f10mc -i 0x0
f10mc: deinitialized
SStk-0 #