Swappiness

A HupWiki-ből...

A 2.6-os stabil Linux kernel VM (virtuális memória) alrendszerében bemutatkozott egy olyan funkció, amelyet swappiness-nek hívnak. A swappiness a kernel virtuális memória alrendszerének finomhangolására használható. A swappiness-en keresztül megadhatjuk a kernelnek, hogy mennyire részesítse előnyben a pagecache-t a mapped memory-val szemben.

Ha a swappiness értéke 100-ra van állítva, akkor a kernel mindkét memóriatípust egyenlő mértékben kezeli. Ha az értéke 0, akkor a kernel sokkal inkább a pagecache-t részesíti előnyben. Magyarán, ha a swappiness értéke magasabb, akkor a kernel többet lapoz (swap-pel), ha a swappiness értéke kisebb, akkor a kernel megpróbálja elkerülni a lapozást.

Az könnyen belátható, hogy különböző felhasználás esetén más és más swappiness érték lenne a legmegfelelőbb. Ha nagyobb fájlokat másolunk, vagy videót tömörítünk, akkor a 0 érték lenne a legmegfelelőbb. Ha sok alkalmazással dolgozunk egy időben, akkor a magasabb érték lenne az üdvözítő. Arról nem is beszélve, hogy az optimális érték függ a gépben levő fizikai RAM méretétől is.

A 2.6-os Linux kernelben a swappiness alapértelmezett értéke 60. A swappiness a /proc-on keresztül állítható a /proc/sys/vm/swappiness attribútumon keresztül.

A swappiness érték lekérdezése

alderaan:/home/trey# cat /proc/sys/vm/swappiness
60

vagy:

$ sysctl -n vm.swappiness
60

A swappiness érték állítása

A legtöbb disztribúcióban az /etc/sysctl.conf segítségével lehet állandó értéket megadni.
Egyszeri beállítás:

alderaan:/home/trey# echo "10" > /proc/sys/vm/swappiness
alderaan:/home/trey# cat /proc/sys/vm/swappiness
10

vagy:

$ sysctl vm.swappiness=10

Külső hivatkozások