Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: pokus 05. 01. 2014, 10:40:19
-
Dobrý den,
už druhý den se potýkám s nedostatkem ram, které mám i tak si myslím celkem dost. Mám 16G ram a Crunchbanb 64 bitů. Už druhý den se mi stalo, že ram byla vytížená na 96% přičemž, když jsem se díval do topu tak tam nebylo nic co by to tak moc vytížilo, i těch procesů tam nebylo moc. Tak mě napadá, jestli někde nemám nějakou neuvolnenou paměŤ nebo zombie procesy. Ještě jsem zapomněl říct, že mám v cronu nastaveno spouštění pár vlastních prográmků napsaných v jave, které čekují internetové stránky. Crony se spouští každou minutu a vím, že do minuty udělají to co mojí, takže se nemůže stát, že by se spustili několikkrát.... Každopádně tady vidím problém. JAk je to s javou a uvolnením paměťi když zkončí program? JE tam prý garbage collector ale funguje to spolehlivě? JAk zjistím co nejvíce žere pameť? Třeba to tím není.... Poraďte prosím.
-
zkus spustit http://www.pixelbeat.org/scripts/ps_mem.py
-
Každopádně tady vidím problém. JAk je to s javou a uvolnením paměťi když zkončí program? JE tam prý garbage collector ale funguje to spolehlivě? JAk zjistím co nejvíce žere pameť? Třeba to tím není.... Poraďte prosím.
Dej si htop a sort podle zabrané paměti.
Když skončí Java jako proces, uvolní se veškerá jeho paměť.
-
Pamet je jako puda - bylo by skoda nechat ji jen tak lezet ladem. Takze pokud ti nepada konkretni proces na nedostatek pameti (nebo se nepousti OOM killer), je to naprosto v poradku.
-
Jo počkej, a co znamená "vytížení na 96%"? Nedíváš se náhodou na cache? Co říká free -m?
-
Co je na tom špatně, že je využito 96 % paměti? Jak se to chová potom, jde to do swapu?
Jednoduché zjištění - tříděno podle využití paměti:
ps aux | awk '{print $4"\t"$11}' | sort | uniq -c | awk '{print $2" "$1" "$3}' | sort -nr
Dále tu máme příkazy jako top, htop, pmap, smem, atop.
Tady je třeba skript pamet:
#!/bin/bash
ps -C $1 -O rss | gawk '{ count ++; sum += $2 }; END {count --; print "Number of processes =",count; print "Memory usage per process =",sum/1024/count, "MB"; print "Total memory usage =", sum/1024, "MB" ;};'
Spustí se příkazem: pamet "jméno_procesu".
Pěkný skript je také zde:
http://linoxide.com/linux-shell-script/linux-memory-usage-program/ (http://linoxide.com/linux-shell-script/linux-memory-usage-program/)