Leaking RAM? na Linuxu

Stepo

Leaking RAM? na Linuxu
« kdy: 26. 12. 2018, 15:44:42 »
pozoruju na svem systemu s postupem casu dochazejici pamet RAM. Hned po startu mam zabrano treba 0.5M. Pak pocitac pouzivam (ok, treba mesic bez vypnuti) a kdyz ukoncim vsechny aplikace mam zabrano treba 6G. Pouzivam PC na beznou praci Eclipse, Web, videa... Nic specialniho. Puvodne jsem myslel, ze za to muze nejaka cache. Tak jsem ji pomoci nejakych zazracny prikazu zahodil a nic. Takze jde o RAM, ktera unikla treba z prohlizece a uz ji nejde uvolnit? Stava se to taky nekomu? Jak zjistit jaka aplikace to dela? Jak pamet ziskat zpet bez restartu?

https://pastebin.com/1imgV8bX
https://pastebin.com/K93Bb8R6

Dekuji


Radovan.

Re:Leaking RAM? na Linuxu
« Odpověď #1 kdy: 26. 12. 2018, 15:59:04 »
Když jsem takovéhle drobnosti kdysi ještě řešil, tak jsem se naučil jednou denně prohlížeč vypnout, a jednou týdně se odhlásit a zase přihlásit. Před deseti lety to stačilo.

Chuck

Re:Leaking RAM? na Linuxu
« Odpověď #2 kdy: 26. 12. 2018, 16:16:21 »
@Radovan
On tu neuvádza, že by aj prehliadač nechal mesiac otvorený a to sa mi zdá nepravdepodobné. Samozrejme, že aj prehliadač má cache, ktorá sa vymaže pri zatvorení prehliadača. Alebo sa dá vymazať ručne.

Stepo

Re:Leaking RAM? na Linuxu
« Odpověď #3 kdy: 26. 12. 2018, 17:32:39 »
I kdyz prohlizec zavru, tak to nepomuze. V podstate zavru vse co rucne pustim. Prohlizec, spravce souboru, slovnik... Je pravda, ze se neodhlasim. Ale odhlasit se restart uz je rozdil jen par sekund. radji bych to vyresil prave tim, ze najdu tu aplikace a ukoncim jen tu.

Re:Leaking RAM? na Linuxu
« Odpověď #4 kdy: 26. 12. 2018, 17:55:45 »
Jak jste přišel na to, že RAM „dochází“? To, že je RAM během používání počítače plná, je v pořádku. Špatně by bylo, kdyby zůstávala volná. V RAM jsou např. načtená data z disku, o kterých systém soudí, že budou v nejbližší době potřeba. Kdyby data v té RAM nebyla, budete mít víc volné RAM (což je vám k ničemu), a budete čekat, než se data z disku načtou.

Takze jde o RAM, ktera unikla treba z prohlizece a uz ji nejde uvolnit?
Takhle správa paměti v Linuxu nefunguje. Alokovaná paměť je vždy alokovaná pro určitý proces, s jeho ukončením se veškerá alokovaná paměť vrátí systému. K únikům paměti může docházet uvnitř procesu, pokud je v něm chyba a program nepozná, že danou paměť už nepotřebuje.

Zeptám se jinak – řešíte nějaký problém? Pokud ne, tak se nepokoušejte používat žádné zázračné příkazy a nechte to být – linuxová správa paměti funguje v drtivé většině případů dobře, a když se v tom budete šťourat nevěda, co děláte, můžete to akorát zhoršit.


Chuck

Re:Leaking RAM? na Linuxu
« Odpověď #5 kdy: 26. 12. 2018, 18:00:30 »
To by nemal byť problém ju nájsť
 
Kód: [Vybrat]
sudo ps -e -orss=,args=,pid= | sort -b -k1,1n

Re:Leaking RAM? na Linuxu
« Odpověď #6 kdy: 26. 12. 2018, 18:57:50 »
Jednou za čas restartovat prohlížeč docela často postačí, ;).

Stepo

Re:Leaking RAM? na Linuxu
« Odpověď #7 kdy: 26. 12. 2018, 21:18:01 »
Jak jste přišel na to, že RAM „dochází“? To, že je RAM během používání počítače plná, je v pořádku. Špatně by bylo, kdyby zůstávala volná. V RAM jsou např. načtená data z disku, o kterých systém soudí, že budou v nejbližší době potřeba. Kdyby data v té RAM nebyla, budete mít víc volné RAM (což je vám k ničemu), a budete čekat, než se data z disku načtou.

Takze jde o RAM, ktera unikla treba z prohlizece a uz ji nejde uvolnit?
Takhle správa paměti v Linuxu nefunguje. Alokovaná paměť je vždy alokovaná pro určitý proces, s jeho ukončením se veškerá alokovaná paměť vrátí systému. K únikům paměti může docházet uvnitř procesu, pokud je v něm chyba a program nepozná, že danou paměť už nepotřebuje.

Zeptám se jinak – řešíte nějaký problém? Pokud ne, tak se nepokoušejte používat žádné zázračné příkazy a nechte to být – linuxová správa paměti funguje v drtivé většině případů dobře, a když se v tom budete šťourat nevěda, co děláte, můžete to akorát zhoršit.

Tak řeším problém.
Mám 8G RAM, nemám swap(nepovažuje ho za nutný). Řeším to, že po čistém startu a stejných (skoro žádných) aplikaci mám asi 10x víc volné ram než po dvou týdnech. Časem paměť dojde až tak, že systém vytuhne na pár minut  a pak asi jádro sestřeli nějaký proces. Čímž se systém zase rozhybe. O tom, že systém používá RAM jako cache disku vím. Ale je to cache a měl by ji uvolnit hned jak ji potřebuje nějaká aplikace. Proč teda to vytuhnuti os->sestreleni nějakého procesu? Tohle chování si nedokážu vysvětlit.

esparky

Re:Leaking RAM? na Linuxu
« Odpověď #8 kdy: 26. 12. 2018, 21:34:14 »
Už několik let pozoruji stejný problém (nemám swap, systém pouze uspávám, 12GB RAM). Cca 1x za týden musím shodit Xka a znovu se přihlásit. Pokud někdo máte elegantnější řešení pak budu rád ;)

Re:Leaking RAM? na Linuxu
« Odpověď #9 kdy: 26. 12. 2018, 21:37:09 »
Řeším to, že po čistém startu a stejných (skoro žádných) aplikaci mám asi 10x víc volné ram než po dvou týdnech.
To není problém.

Časem paměť dojde až tak, že systém vytuhne na pár minut  a pak asi jádro sestřeli nějaký proces. Čímž se systém zase rozhybe.
Na to jste přišel jak, že to je způsobené tím, že dojde paměť a jádro to vyřeší odstřelením procesu? Kdyby to tak bylo, najdete v logu hlášku „killed process“.

Proč teda to vytuhnuti os->sestreleni nějakého procesu? Tohle chování si nedokážu vysvětlit.
Zaměřil bych se na vysvětlení tohohle místo spekulací o úniku paměti. Jak se to „vytuhnutí OS“ projevuje? Co je pak v logách?

Cabrón

Re:Leaking RAM? na Linuxu
« Odpověď #10 kdy: 26. 12. 2018, 21:52:18 »
Nemáte /tmp nebo podobný dir na tmpfs, tj. v ramdisku? Některé distribuce to tak dnes dělají.

Kód: [Vybrat]
mount | grep tmpfs

Re:Leaking RAM? na Linuxu
« Odpověď #11 kdy: 26. 12. 2018, 22:13:28 »
Tak řeším problém.
Mám 8G RAM, nemám swap(nepovažuje ho za nutný). Řeším to, že po čistém startu a stejných (skoro žádných) aplikaci mám asi 10x víc volné ram než po dvou týdnech. Časem paměť dojde až tak, že systém vytuhne na pár minut  a pak asi jádro sestřeli nějaký proces. Čímž se systém zase rozhybe. O tom, že systém používá RAM jako cache disku vím. Ale je to cache a měl by ji uvolnit hned jak ji potřebuje nějaká aplikace. Proč teda to vytuhnuti os->sestreleni nějakého procesu? Tohle chování si nedokážu vysvětlit.

Kristova noho! Swap se má nastavovat, právě proto, aby se systém mohl vyrovnat s těmito situacemi. Systém neswapuje zbytečně. Pokud jste swap vypnul, tak je očekavatelné, že se něco takového stane.

Při dnešních cenách pamětí bych neotravoval a posílil z 8 GB na něco rozumnějšího.

esparky

Re:Leaking RAM? na Linuxu
« Odpověď #12 kdy: 26. 12. 2018, 22:39:34 »
Kristova noho! Swap se má nastavovat, právě proto, aby se systém mohl vyrovnat s těmito situacemi. Systém neswapuje zbytečně. Pokud jste swap vypnul, tak je očekavatelné, že se něco takového stane.

Při dnešních cenách pamětí bych neotravoval a posílil z 8 GB na něco rozumnějšího.

No tak zapnu 8GB swap a nestane se to za týden, ale za dva týdny, ne? Je to pouze oddálení problému, ne řešení příčiny.

Pozoroval někdo něco podobného na systému se zapnutým swapem?

k3dAR

  • *****
  • 2 838
  • porad nemam telo, ale uz mam hlavu... nobody
    • Zobrazit profil
    • E-mail
Re:Leaking RAM? na Linuxu
« Odpověď #13 kdy: 27. 12. 2018, 00:40:26 »
Pozoroval někdo něco podobného na systému se zapnutým swapem?
Ne

Jak bylo receno, KDE/JAK zjistujes volnou RAM? (a to tam nevidis co ji zabira nejvic pri vyplejch programech?)

Kdyz se ti jak pises system sekne a pak neco odstreli, CO MAS v LOGu? ze neco system odstrelil?

Re:Leaking RAM? na Linuxu
« Odpověď #14 kdy: 27. 12. 2018, 02:52:04 »
No tak zapnu 8GB swap a nestane se to za týden, ale za dva týdny, ne? Je to pouze oddálení problému, ne řešení příčiny.
Pozoroval někdo něco podobného na systému se zapnutým swapem?

Kdysi jsem měl počítač který bez zapnutého swapu vytuhnul do 5 minut po startu. Jakmile jsem mu dal i jenom minimální swap (tuším asi 128 MB tenkrát?) tak problém zmizel.
Dostal jsem z toho pocit, že jádro prostě bez swapu odmítne dělat některé věci, se kterými se ve správně paměti počíta jako že budou vždycky. I když ten swap reálně k ničemu nepoužije.