Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Kam se v Ubuntu ztratila paměť?

Ondřej Novák
Ondřej Novák
20. 1. 2010 12:34

Kam se v Ubuntu ztratila paměť?

Nálepky: Ubuntu, VMware, Linux

Zdravim linuxaky. Jsem spis Windowsak, ale linux musim pouzivat v zamestnani, protoze v nem programujeme a balime. Pouzivam linux ve VMWare, konkretne Ubuntu 9.10.

Abych to zkratil. Byl by mi nekdo schopen okomentovat nasledujici „top“? Povsimnete si, zejmena obsazene pameti. Vypis je serazen podle RES. Nebezi GDM, nebezi prakticky nic, jen sshd a v nem bash. Presto mi to cislo prijde dost velke. Nevedel by nekdo, kde se tech pul giga ztratilo?

top - 12:21:36 up 2 min,  1 user,  load average: 0.74, 0.60, 0.25
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    763788k total,   571884k used,   191904k free,    32532k buffers
Swap:   497972k total,        0k used,   497972k free,   197040k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1700 root      20   0 19132 1308  980 R    0  0.2   0:00.03 top
    1 root      20   0 19440 1792 1196 S    0  0.2   0:01.30 init
    2 root      15  -5     0    0    0 S    0  0.0   0:00.01 kthreadd
    3 root      RT  -5     0    0    0 S    0  0.0   0:00.09 migration/0
    4 root      15  -5     0    0    0 S    0  0.0   0:00.01 ksoftirqd/0
    5 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/0
    6 root      RT  -5     0    0    0 S    0  0.0   0:00.06 migration/1
    7 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksoftirqd/1
    8 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/1
    9 root      15  -5     0    0    0 S    0  0.0   0:00.02 events/0
   10 root      15  -5     0    0    0 S    0  0.0   0:00.07 events/1
   11 root      15  -5     0    0    0 S    0  0.0   0:00.00 cpuset
   12 root      15  -5     0    0    0 S    0  0.0   0:00.00 khelper
   13 root      15  -5     0    0    0 S    0  0.0   0:00.00 netns
   14 root      15  -5     0    0    0 S    0  0.0   0:00.00 async/mgr
   15 root      15  -5     0    0    0 S    0  0.0   0:00.00 kintegrityd/0
   16 root      15  -5     0    0    0 S    0  0.0   0:00.00 kintegrityd/1
   17 root      15  -5     0    0    0 S    0  0.0   0:00.04 kblockd/0
   18 root      15  -5     0    0    0 S    0  0.0   0:00.01 kblockd/1
   19 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpid
   20 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpi_notify
   21 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpi_hotplug
   22 root      15  -5     0    0    0 S    0  0.0   0:00.06 ata/0
   23 root      15  -5     0    0    0 S    0  0.0   0:00.01 ata/1
   24 root      15  -5     0    0    0 S    0  0.0   0:00.00 ata_aux
   25 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksuspend_usbd
   26 root      15  -5     0    0    0 S    0  0.0   0:00.00 khubd
   27 root      15  -5     0    0    0 S    0  0.0   0:00.02 kseriod
   28 root      15  -5     0    0    0 S    0  0.0   0:00.00 kmmcd
   29 root      15  -5     0    0    0 S    0  0.0   0:00.00 bluetooth
   30 root      20   0     0    0    0 S    0  0.0   0:00.00 khungtaskd
   31 root      20   0     0    0    0 S    0  0.0   0:00.00 pdflush
   32 root      20   0     0    0    0 S    0  0.0   0:00.00 pdflush
   33 root      15  -5     0    0    0 S    0  0.0   0:00.00 kswapd0
   34 root      15  -5     0    0    0 S    0  0.0   0:00.00 aio/0
   35 root      15  -5     0    0    0 S    0  0.0   0:00.00 aio/1
   36 root      15  -5     0    0    0 S    0  0.0   0:00.00 ecryptfs-kthrea
   37 root      15  -5     0    0    0 S    0  0.0   0:00.00 crypto/0
   38 root      15  -5     0    0    0 S    0  0.0   0:00.00 crypto/1
   44 root      15  -5     0    0    0 S    0  0.0   0:00.01 scsi_eh_0
   45 root      15  -5     0    0    0 S    0  0.0   0:00.02 scsi_eh_1
   48 root      15  -5     0    0    0 S    0  0.0   0:00.00 kstriped
   49 root      15  -5     0    0    0 S    0  0.0   0:00.00 kmpathd/0
   50 root      15  -5     0    0    0 S    0  0.0   0:00.00 kmpathd/1
   51 root      15  -5     0    0    0 S    0  0.0   0:00.00 kmpath_handlerd
   52 root      15  -5     0    0    0 S    0  0.0   0:00.00 ksnapd
   53 root      15  -5     0    0    0 S    0  0.0   0:00.00 kondemand/0
   54 root      15  -5     0    0    0 S    0  0.0   0:00.00 kondemand/1
   55 root      15  -5     0    0    0 S    0  0.0   0:00.00 kconservative/0
   56 root      15  -5     0    0    0 S    0  0.0   0:00.00 kconservative/1
   57 root      10 -10     0    0    0 S    0  0.0   0:00.00 krfcommd
  168 root      15  -5     0    0    0 S    0  0.0   0:00.00 mpt_poll_0
  173 root      15  -5     0    0    0 S    0  0.0   0:00.00 mpt/0
  237 root      15  -5     0    0    0 S    0  0.0   0:00.00 scsi_eh_2
  320 root      15  -5     0    0    0 S    0  0.0   0:00.03 kjournald2
Atrament
Atrament (neregistrovaný) 80.47.164.---
20. 1. 2010 13:41 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

V tom výpisu chybí cca 40 procesů. Máš tam mít 100 procesů celkem, ale vidět je pouze 60. Hádám tedy že ten žrout bude někde v těch procesech co nejsou vidět. Prostředí ve kterém skoro nic neběží si ale představuju trochu jinak, než 100 spuštěných procesů. Sám mám momentálně 137 procesů, ale to mi běží KDE4 + pár aplikací :)

Doporučuji na podobný průzkum spíše htop než top. Je přehlednější.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
20. 1. 2010 14:07 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

Řazeno je to podle MEM% (chybička se v loudila do popisu). I kdyby tam bylo dalších 40 procesů, tak všechny budou mít v MEM% nulu.

Petr Krčmář aura:98
20. 1. 2010 13:43 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

Linux se snaží používat volnou paměť jako cache, takže se vlastně nikdy přesně nedozvíš, kolik je jí obsazeno a jak je to s volnou pamětí. Pravidlo totiž říká, že volná paměť je k ničemu a jen leží ladem, takže je na čase ji využít.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
20. 1. 2010 14:00 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

No, jenže OS (včetně linuxu) poskytuje všechny informace o volných a obsazených stránkách, a právě informace o obsazené paměti sdružuje všechny stránky, kde je nějaký obsah, a zbytek do celé paměti skutečně leží ladem. Velikost cache je tam také napsaná, hned vedle. Jiná paměť se nerozlišuje. Těch půl giga byla opravdu živá, tedy v okamžiku nedostatku šla do swapu a generovala page faulty, což dost zasáhlo rychlost a odezvu systému.

durino13
durino13 (neregistrovaný) ---.gdmelectronics.sk
20. 1. 2010 13:49 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

Pokial viem, tak vyuzitie pamati zavisi na OS. A ten sa vzdy snazi vyuzivat max RAM. Aj ked ti nic na masine nebezi, pamat by mala byt zaplnena skoro na max .. Nepotrebne stranky z pamati sa vyhodia, ked bude OS potrebovat miesto a to uz nebude.

IMO, to ze mas pol giga pamati prec a dokopy ti nic nebezi, je normal ..

Atrament
Atrament (neregistrovaný) 80.47.164.---
20. 1. 2010 13:59 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

Teď jsem si zkusil shodit to do textové konzole (takže skoro nic neběželo a sitace tedy podobná jakou by měl mít dotazující) – výsledek byl 25 procesů a 35 mega zabrané paměti. Proč by v takovém případě měl systém zabírat půlgiga paměti a co by na tom mělo být normální??

durino13
durino13 (neregistrovaný) ---.gdmelectronics.sk
20. 1. 2010 15:03 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

1.
Nabootuj do linux konzoly. Pozri si spotrebu pamati (moze byt 35MB).

2.
Spusti si X window (vybehne spotreba na ~200MB)

3.
Zatvor X window a pozri sa na spotrebu. Neklesne na 35MB, zostane okolo ~200MB ..

Su to relativne cisla, ale linux nevycisti celu pamat.

Atrament
Atrament (neregistrovaný) 80.47.164.---
20. 1. 2010 15:21 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

jistě, zůstane to v cache (pro případné rychlejší znovunačtení), ale např. htop mezi tím co je v cache a co je opravdu used rozlišuje a je to v něm dobře vidět. A tím co je v cache se přece zabývat nemusím, v okamžiku kdy tu pamět budu potřebovat na něco jiného ji bez řečí dostanu…

Ale tazatel jasně psal, že tam neběží nic, proto byla ta spotřeba (nakonec teda vysvětlena těmi vmware tools) extrémně vysoká. Pokud nabootuješ do textové konzole tak se ti pamět nenacachuje dále dopředu, zůstane to na těch čistých ± 35 megabajtech. Aspoň já jsem tedy nezažil, že by se mi rovnou do paměti nacachovala Xka a KDE. Tak se stane až ty KDE pustím. A to on nepouštěl, proto by měl mát v cache a v paměti celkem minimum. I těch obsazených 150 co mu teda teďka zbývá po odečtení těch cca 200 mega za ty vmware tools mi přijde hodně.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
20. 1. 2010 13:58 Nový

Re: Kde je pamet? (ubuntu 9.10)

celé vlákno

Ono šlo o to, že po puštění Eclipse (cca 300MB) šlo dalších 270MB do swapu.

Ale už jsem našel problém. Nový Vmware Tools pro linux si sežerou 200MB v jádře. Po odinstalování mám o těch cca 200MB více.

Jinak krásná ukázka, jak někteří tomu rozumí méně než já :-D (Viďte pane Krčmář)

maestro
maestro (neregistrovaný) 94.142.235.---
20. 1. 2010 14:15 Nový

meminfo

celé vlákno

Pokud touzite po detailnejsich informacich o vyuziti pameti, pouzijte nasledujici prikaz.

# cat /proc/meminfo
MemTotal: 894432 kB
MemFree: 258948 kB
Buffers: 97524 kB
Cached: 350852 kB
SwapCached: 0 kB
Active: 282480 kB
Inactive: 219624 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 894432 kB
LowFree: 258948 kB
SwapTotal: 5111800 kB
SwapFree: 5111612 kB
Dirty: 56 kB
Writeback: 0 kB
AnonPages: 53772 kB
Mapped: 17632 kB
Slab: 105128 kB
PageTables: 7148 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 5559016 kB
Committed_AS: 230268 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 269084 kB
VmallocChunk: 34359468983 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
20. 1. 2010 14:21 Nový

Re: meminfo

celé vlákno

Díval jsem se, ty čísla odpovídala tomu, co bylo v hlavičce topu (položka MemFree odpovídala rozdílu mezi celkovou a obsazenou pamětí v topu)

x
x (neregistrovaný) ---.karneval.cz
20. 1. 2010 21:19 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

top(1) je jen takovy dost obecny nahled. Ohledne pameti a celeho virtual memory systemu je tady vmstat(8) a to hlavne :

vmstat -S M -s
vmstat -m
vmstat 1 10

obzvlaste posledni radek je dost dulezity pro zjistovani toho jestli jde system opravdu do kytek nebo ne. Bohuzel u takovych tech ruznych modernich distribuci Linuxu jako je Ubuntu atp. doporucuji nedavat mene nez 1GB RAM. Jiste, pobezi to i na mene, ale jak to uz je uplne jina pohadka. A ta virtualizace je taky katastrofa. Je neuveritelne jakou to pridava zatez na I/O system, syscally atp. Ale to tradicnima nastrojema zjistit nejde. Na to je treba systemtap, DTrace, ktrace atp. Ale vyrobci tim zakazniky „neobtezuji“ a stejne by to ani nepochopili a tak zvesela radeji uveri tomu jak snizi naklady na datove centrum :-)

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.lam.cz
20. 1. 2010 21:51 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

Musím mít v počítači dva OS, protože vyvíjím minimálně pro oba současně. Dokonce musím mít víc OS. Windows XP, Windows Vista, Windows 7, a nějaký Linux na debianu. A ještě tam mám Windows 2000.

Doposud jsem měl vmware v ubuntu a v tom jsem honil všechny windowsy. Protože to všude jinde mívám obráceně, a vychází mi lepší výkon, tak jsem se to rozhodl otočit. Host je Windows 7, zbytek je vmware.

V zásadě nepotřebuju výkon na debianu, ale aby mi to uswapovalo stroj, to taky nemusí. Zajímavé je, že stejné WMTools, na stejné distribuci Ubuntu doma podobné problémy nemá, momentalně mám 343MB used z toho 221MB jsou cache. Zbytek je zřejmě celý ubunťácký kernel (GDM a Xka neběží). Musím tedy prozkoumat, co se vlastně stalo. Kde WMTools potratily těch 200MB.

Jinak se bez gnoma a celých X obejdu, Stačí mi vncserver jako X server, a to minimum, kvůli kterému mám nastaveno 768MB, tedy Eclipse CDT tam celkem slušně běží. PS: Stroj ma 2GB, jenže něco si musím nechat pro windows. Win 7 mi zaberou v idle přes 1GB. Už se taky chystám na to vyšetřit, kde windowsy ztrácí paměť, a proč XPčkám na stejné konfiguraci po naběhnutí stačí 200MB.

x
x (neregistrovaný) ---.karneval.cz
20. 1. 2010 22:11 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

Uplne jsem se nerozepsal, takze opravuji. Virtualizace ala VMware nebo VirtualBox je dobra pro vyzkouseni nejakeho systemu nebo nejaky rychly test treba vyvijene aplikace pod vice ruznyma OS, ale pouzivat to napr. na to, aby na jedne nic moc masine bezelo treba 5 serveru (Apache, DNS,… a jeste nejlepe kazdy pod jinym OS) je neuveritelna ptakovina, ktera je casto viditelna i beznym pohledem na rychlost reakce systemu. HW Virtualizace ala LDoms, z/VM nebo treba ne az tak obsahla reseni jako containers nebo binarni emulace na BSD to uz je jine kafe.

3pod
3pod (neregistrovaný) ---.net.upc.cz
20. 1. 2010 23:20 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

cicham, cicham kuzi opalenou od SLUNCE ;) naprosty souhlas …

kyytaM
kyytaM (neregistrovaný) ---.dynamic.nextra.sk
21. 1. 2010 2:16 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

Vies, ked sa dostanes do situacie, ze organizacia potrebuje pridavat nove aplikacie/servery a serverovna to uz neutiahne (priestor, spotreba, klima…), tak ver tomu, ze rychlo zacnes uvazovat inak. Alebo inak povedane – terminal server nebudem jebat na domenovy kotroler, tiez nebudem jebat dokuwiki na sharepoint frontend s IIS, rovnako ako phpckovy/mysql intranet nebudem jebat na MS SQL backend atd atd. Naco mat 35 idliacich strojov, ktore navyse drvivu vacsinu casu funguju v rezime, kedy ich zdroje dosahuju mizernu efektivitu. Uz nehovoriac o tom, ked k produkcnym verziam treba drzat testovacku kvoli testovaniu aktualizacii/vy­voju, ci HA. Jasne, tie marketingove sracky su pre kravatakov, v tom 100% suhlasim, rovnako s tym, ze o virtualizacii sa malo kde hovori cela pravda – coho dosledkom skutocne dochadza k pochybnemu nasadzovaniu virtualizacie (hlavne, ze niekto doda sw/solution a dobre sa nabali na akoze konsolidacii)… Je to jedna z dalsich dostupnych technologii, ktora sa rychlo vyvija vo svojej sw i hw casti a zalezi len na vedmostiach a schopnostiach prislusneho IT personalu, ci jej nasadenie v konecnom dosledku nieco v organizacii zlepsi, alebo zhorsi.

x
x (neregistrovaný) 131.207.242.---
21. 1. 2010 12:45 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

Ja prece tvrdim prakticky to same. Jen rikam, ze tech 35 idle stroju nacpat na jeden server do ESX nebo neceho podobneho je totalni ptakovina. v LDoms, z/VM atp. to uz je uplne neco jineho.

foldy
foldy (neregistrovaný) ---.foldy.org
21. 1. 2010 13:05 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

Dlouhodobě sleduji na slackware jak se chová pamět. Téměř bez výjimky mam volné paměti jen 8 Mb z 768Mb pameti z toho je 400Mb v programech a službách a zbytek v diskové cachy. Po spuštění systému je využití cache poloviční stačí ale pripojit se sshčkem a pustit třeba nějaké kopírování a disková cache zabere zbytek paměti pokud zavolám po akci sync uvolní se cca 16Mb pamětí což odpovídá cachy na disku. Pokud necham vše běžet a nic nedělám disk se po pul minutě vypne a všechny aplikace běží v cachy a jednou za čas se zavolá sync a disk se znovu rozbehne (na ext4 je tahle doba o dost delsi nez na ext3). Ze 400Mb bere 200Mb opera s 30ti okny, jabbim, python apod. na samotný systém s KDE zbývá cca 120 Mb ram. Při zátěži se cca do cache klesne na min 16Mb a dál už se používá swap pro programy. A disková cache je minimální cache rezervovaná v Ram. Pokud zkompiluju jádro a přehodím IO scheduler treba na anticipatory a změním pár věcí systém se chová jinak. Do 512 Mb se děje vše stejně pak ale začne udržovat cache na cca 300– 250Mb a nikdy pod nej neklesne a používá se swap pro zbylé programy (asi hlavně ty nečinné). Myslím si, že je to o nastavení jádra a vylezní systému jak a kdy se bude chovat. Je taky potřeba sčítat buffered memory a cached memory. Zavisí taky na vyrovnávací paměti disků a počtu pokud tam máte 4 disky s 16 Mb vyrovnávací pamětí tak se cachuje minimálně 4×16Mb jako minimálně hodnota pokud je plánovač nastaven jinak než třeba na CFG snaží se rozdělit pamět pro náročnost 1,2 aplikací apod. Je to hodně variabilní. Může to být taky třeba špatně zkonfigurované u vás ,skusil bych updatnout jadro apod.

ondra.novacisko.cz
ondra.novacisko.cz (neregistrovaný) ---.seznam.cz
21. 1. 2010 15:13 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

Nechtějte po mě, abych kompiloval jádro :-D

Jako bych měl moře času si s tím hrát. Mám pocit, že to nedělají ani ti maníci z IT oddělení u nás.

foldy
foldy (neregistrovaný) ---.foldy.org
21. 1. 2010 23:55 Nový

Re: Kam se v Ubuntu ztratila paměť?

celé vlákno

No do kompilace ubuntího jádra bych se taky nepouštěl je to patchovane apod. ja umim jen vanillu. Spíš jsem měl na mysli updatnout jadro apod.

Školení: GIT správce zdrojových kódů

 

Seznamte se s možnosti systému správy verzí zdrojových kódů GIT, který používají i vývojáři linuxového jádra.

  • Proč správa verzí
  • Architektura GITu
  • GIT v praxi
  • a další

Podrobnější informace o školení a přihláška