Dostupná paměť na linuxovém serveru

Občas narazím na dotaz, jak je možné, že je paměť na serveru téměř vždy naplněna na maximum, jestli není možné paměť uvolnit.

Ve skutečnosti to potřeba není, jádro systému využívá co nejvíce paměti co může, jestliže je volná paměť nevyužitá aplikacemi, tak si tam uloží kousky načtených souborů, do diskové cache. Ty pak čte řádově rychleji, než kdyby je četl z disku – například když webserver načítá obrázky, tak je lepší je načítat z paměti. Když je potřeba uvolnit paměť pro aplikace, stačí tuto cache (nebo její část) zahodit a paměť použít pro aplikaci.

Při použití příkazu free vidíte v prvním řádku velikost zabrané paměti – vypadá to, že je volno 1,4GB paměti, a 4,5GB použito. Když se ale podíváte na čtvrtý řádek, kde se odečítají buffery, pak zjistíte, že zabrané paměti je asi 3GB a volné stejně tak.

~# free -m
total used free shared buffers cached
Mem: 5986 4519 1466 0 53 1467
-/+ buffers/cache: 2998 2987
Swap: 2432 148 2283

Rozumný poměr na serveru bez použité virtualizace by měl být zhruba půl na půl zabraná paměť/cache.

Komentování je uzavřeno.