Problém s nedostatkem RAM (16GB)

pokus

Problém s nedostatkem RAM (16GB)
« kdy: 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.


McFly

  • *****
  • 633
    • Zobrazit profil
    • E-mail
Re:Problém s nedostatkem RAM (16GB)
« Odpověď #1 kdy: 05. 01. 2014, 10:52:17 »

Jenda

Re:Problém s nedostatkem RAM (16GB)
« Odpověď #2 kdy: 05. 01. 2014, 11:03:20 »
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ěť.

JS

Re:Problém s nedostatkem RAM (16GB)
« Odpověď #3 kdy: 05. 01. 2014, 11:03:43 »
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.

Jenda

Re:Problém s nedostatkem RAM (16GB)
« Odpověď #4 kdy: 05. 01. 2014, 11:04:08 »
Jo počkej, a co znamená "vytížení na 96%"? Nedíváš se náhodou na cache? Co říká free -m?


pavele

Re:Problém s nedostatkem RAM (16GB)
« Odpověď #5 kdy: 05. 01. 2014, 11:37:41 »
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/