Много хора се бъркат, защото сравняват Linux със Windows и да кажем top със Task Manager-а и колко памет е заета

Windows, или не си казва, или наистина не използва целия наличен RAM, което за Linux си е чисто хабене на ресурс.
Filesystem cache-а си е в самия kernel и се използва при всички файлови системи ext3/4, xfs, reiser (zfs има специален, но мисля, че ако не се изключи изрично, и другия си работи, което забавя нещата).
Ето един отрез от free -m на моята машина, преди малко я рестартирах:
total used free shared buffers cached
Mem: 15808 2722 13086 243 45 1304
-/+ buffers/cache: 1372 14436
Swap: 4091 0 4091Само след няколко минути:
total used free shared buffers cached
Mem: 15808 15593 214 261 48 13981
-/+ buffers/cache: 1564 14244
Swap: 4091 0 4091Според втората извадка, RAM-а ми на свършване. Само че за Linux, използвана (used) е памет, която се ползва за каквото и да е.
Пак на първия ред под cached виждаш, че 13981 MB всъщност са кеш на файловата система и на практика са свободни. Спокойно можеш от used да извадиш кешираните и ще видиш горе доло колко действително свободни имаш.
За по-лесно гледай втория ред "-/+ buffers/cache:" там използваната и свободната са сметнати БЕЗ да се включват буферите и кеша и виждаме, че реално използвания RAM е 1564 MB.
Ако паметта наистина е на свършване, на първия ред в cached, числото ще е много малко, тоест няма "свободно" място за оползотворяване с кеш и всичко е заето от процеси. Тогава и swap-а ще почне да се пълни и т.н. Надявам се, че горе долу го обясних

П.П. Напълниха се кешовете, защото копирах един ~7 GB файл. С местене няма да стане, защото всъщност ще се сменят само мета данните, няма да има истински 7 гъби I/O