10
Nov
09

More information on Linux memory management

I have just noticed that I missed to mention one very important thing in my previous post.

File /proc/meminfo contains a very useful field named Committed_AS. This field indicates TOTAL value of committed memory. If all applications would require all memory allocated to them your server would need this amount of memory.

If we look in the example from my previous post we would find following values:

loreto:/tmp # cat /proc/meminfo
MemTotal:     33274944 kB

Committed_AS: 49751960 kB

So my server has 32GB of RAM, but total amount of memory allocated is 48GB. That is 150%! If all this memory would be required at once server would crash pretty bad (or OOM killer would start butchering my Oracle databases to get some memory back!). :-)


2 Responses to “More information on Linux memory management”


  1. 1 Данило Nov 11th, 2009 at 2:14 pm

    Каква сте сиротиња… па ми наше постгресе терамо са 128GB меморије ;)

    Него, врло занимљиви чланак — мислим да у све ово треба укључити и swap меморију — она се такође адресира иако не постоји, и тек када стварно коришћена меморија превазиђе величину доступне меморије се користи и swap. На тај начин, она омогућава да програми не пуцају ако само на кратко неки други програм тражи више него што је могуће, и зато је важна при терању великих програма као што је база података.

    Наравно, знам да ти то знаш, али вреди споменути ;)

  2. 2 miljan Nov 11th, 2009 at 6:49 pm

    Da, u pravu si, nekako sam uspeo da ne spomenem swap u tekstu o menadzmentu memorije (kako ovo ruzno zvuci na srpskom :)). Tako je to kada pises postove na poslu, hehehe… :)

    Elem, swap je svakako vazan deo servera gde se vrte aplikacije zeljne memorije bas iz tog razloga koji si naveo. A posto se radi o ogromnoj kolicini podataka, potreban je i veliki swap prostor koji ce biti sposoban da primi te podatke. Tako da u svakoj kalkulaciji oko memorije swap se ne sme zaobici.

    Inace, memorija na ovom serveru je pre par nedelja povecana na 64GB i u tom procesu smo otkrili da i386-big-memory kernel ne podrzava vise od 60GB memorije. :) E sada se ti pitas otkud i386 kernel na Oracle serveru sa toliko memorije. Odgovor je kratak – DB tim je gomila neznalica. :)))

Comments are currently closed.