Azt mindannyian tudjuk, hogy a Linux meglehetősen jól bánik a memóriával, és a szabad terület pufferként való felhasználása is nagy találmány, de van, aki még ezen is tud egyet csavarni.
Körülbelül két hónapja meglepetéssel vettem észre, hogy ősrégi (kb. 10 éves) gépemen a swap 322 MiB-ről 570-re emelkedett. Mivel a partíciókat nem piszkáltam, és swapfile létrehozásával sem fárasztottam magam, a dolog elég rejtélyesnek tűnt. Aztán kicsit utána olvasva, kitűnt, hogy a jelenségért a compcache (honlap: http://code.google.com/p/compcache/)a felelős, amely ramzswap néven magában a memóriában hoz létre egy blokkot, ahová tömörítve pakolja a kilapozandó adatokat. Ezt a blokkot pedig hozzáadja a meglévő swaphoz (és közben persze a fizikai memória méretéből nem veszi el), ezért aztán úgy látszik, mintha lehetőségeink megnövekedtek volna.
Ubuntu 10.04-et használok két gépen, és a compcache része a 2.6.32-es, és egy-két előző kernelnek, ugyanakkor a 2.6.38-10-es nem tölti be ezt a modult, de lehet, hogy csak azért, mert - ha jól tudom - ez egy backport kernel (mármint 10.04-re). Ezért várok a kedves fórumtagoktól olyan észrevételeket, hogy az újabb Ubuntu kiadásokban megvan-e. Ellenőrizni a legegyszerűbben a cat /proc/swaps paranccsal lehet. Ha a kimenetben található "/dev/ramzswap0" kezdetű sor, akkor a válasz igen, és a a "Priority" oszlopból az is látható, hogy a rendszer elsősorban ezt használja. Nyilvánvaló, hogy ez előnyös, hiszen a memória írása sokszorosan gyorsabb, mint a merevlemezé.
Jó-e ez az egész, és ha igen, kinek? A projekt hasznosságáról szakértői berkekben igencsak megoszlanak a vélemények, mindenesetre ha fenti kérésemre sok megerősítő válasz érkezik, az azt jelenti, hogy mégiscsak bekerült a main kernelbe. A mai gépekben nem ritka a 2-4 GiB RAM, sokan már swap partíció megadása nélkül telepítenek. Nekik jó tudni, ha mégis kifutnának a memóriából, van egy láthatatlan tartalék. A honlapon három esetet is említenek, amikor jól jöhet, én egyet emelnék ki: egyre több netbookban van merevlemez helyett SSD tároló, ezeknek megnövelhetjük az élettartamát a kevesebb írási művelettel, cserébe persze - a tömörítés miatt - magasabb processzor terheléssel kell számolni.
Hátrányként említhetjük még a fent említett memória puffer méretének redukálását, de emellett más problémákat is okozhat (pl. http://ubuntu.hu/node/26668), ezért aki nem szeretné használni, annak kétféle módot tudok javasolni a kikapcsolására.
A hivatkozott oldalon (http://code.google.com/p/compcache/source/browse/unuse_ramzswap.sh?name=v0.5.x) található szkript mentésével és (rootként való) futtatásával azonnali változást érhetünk el, a sudo rm -f /usr/share/initramfs-tools/conf.d/compcache && sudo update-initramfs -u parancsok segítségével tartósan tilthatjuk a compcache-t, de ez csak a következő indítástól lesz érvényes.