Portál AbcLinuxu, 12. května 2025 10:18

Dotaz: Linux kernel memory leak: jak debugovat?

12.8.2006 17:48 Boris
Linux kernel memory leak: jak debugovat?
Přečteno: 237×
Odpovědět | Admin
Zdravím,

občas se ráno potřebuju vzbudit, řeším přes cron, z kterého se spouštní skript buzeni.sh obsahující lame song.mp3 | aplay -. Večer počítač spustím, free hlásí 19 MB použité paměti, nechám to v terminálu, X server není spuštěný, žádný uživatel není přihlášený. Když se ráno probudím, přihlásím se a dám free (v terminálu), tak co to moje oči nevydí, 350 MB použité paměti. Při opakování postupu se stane opět, je to tedy reprodukovatelné. Mám jádro 2.6.17-gentoo s debugging info, včetně "debug memory leaks", glibc-2.4. Jediné, co přes noc jede nějak aktivně, je každou hodinu pomocí cronu /etc/init.d/ntp-client restart, protože jsem se ještě nedostal ke konfiguraci ntpd.

Jak zjistit, kde je chyba? Vzhledem k tomu, že přes noc nic aktivně nejede a top ukazuje u všech procesů rozumné spotřeby paměti, tak je to zřejmě memory leak v linuxovém jádře.

Takže: Jak na to? :)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.8.2006 19:31 petris
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neni duvod zaplneni pameti cache?
12.8.2006 19:45 Daniel Smolik | skóre: 15 | blog: marvin
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Take mi prijde, ze tak masivniho mem. leaku by si nekdo vsiml. Vidite treba pres top kdo tu pamet zere ?
15.8.2006 10:24 xy
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mam rovnaky problem. Mam spustene len KDE pod gentoo a obsadenie pamete je:
             total       used       free     shared    buffers     cached
Mem:       1018780     906776     112004          0      73568     591160
-/+ buffers/cache:     242048     776732
Swap:       522072          0     522072
Pouzivam aj FC5+KDE a tam mam obsadenie pamate nizsie o 50%. Gentoo mam kompilovane s optimalizaciou na velkost kodu. libqt-mt.so.3.3.6 ma v gentoo 7MB, v FC5 9MB.
15.8.2006 10:48 petris
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Nereste to, je to uplne v poradku. Doporucuju vam, abyste si zjistil, co jednotlive polozky znamenaji ;-)
15.8.2006 11:47 xy
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Viem co jednotlive polozky znamenaju. 240 MB obsadenej pamate je vela.
15.8.2006 11:50 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
A proč si myslíte, že je to leak v _jádře_?
15.8.2006 12:04 xy
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Pod FC5 mam nad 200 MB obsadenej pamate, len ked je spustena nejaka aplikacia, ktora zabera vela pamate napr. Eclipse alebo Netbeans.
15.8.2006 12:07 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
No ale proč by měla být chyba v _kernelu_? :-)
15.8.2006 12:39 xy
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Pamat moze byt obsadena bud jadrom alebo procesmi. Ked nie je spusteny proces s velkou spotrebou pamate tak tu pamat zabera jadro.
15.8.2006 12:43 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Takové ty věcičky pod KDE nejsou procesy? :-)
15.8.2006 13:22 xy
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
15.8.2006 16:08 Milan Jurik | skóre: 21 | blog: Komentare | Ova
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
A tim argumentujete jako proc? Doufam, ze tim nemyslite tu vetu o tom, kolik mista na disku zabira dana knihovna.

Co takhle utilita memstat? A to plati i pro autora tohoto dotazu.
michich avatar 15.8.2006 12:03 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Co říkají třeba

cat /proc/meminfo

cat /proc/slabinfo ?

Nejspíš to budou nějaké cache. Nejede v noci z cronu i updatedb? Má nějaký efekt echo 3 > /proc/sys/vm/drop_caches ?
15.8.2006 19:43 _
Rozbalit Rozbalit vše Re: Linux kernel memory leak: jak debugovat?
/etc/cron*/*

/etc/crontab

/var/spool/{at,cron}

anacron?

ale jinak nastudovat /proc/meminfo to je jedna z nejdulezitejsich low-level veci pro desktopoveho uzivatele po napsani takovyho dotazu ;-)

slabinfo a buddyinfo jsou uz o necem trosku jinem...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.