Swapiness er hvor agressivt at kernen skal swappe ting ud til disk.
Gør du kernen mere agressiv i swappiness, så vil der være mere fri RAM der straks er klar til brug, og computeren vil derfor virke som den er hurtigere.
Gør du derimod kernen mindre agressiv i swappiness vil den mere være tøvende over for at lægge noget ud i swap.
Du styrer swappinees med sysctl kommandoen, eller bruge ved at echo kommandoen på en "fil" i procfs.
Procfs er kernens interface til verden via filer og mapper - her kan du justere en kerne variabel ved at skrive til en fil, og du kan læse en kerne variabel ved at læse fra en fil.
Hvis du vil brug sysctl:
Det et parameteren vm.swapiness=<tal>, hvor tal skal være imellem 0 og 100.
Den ser således ud med tallet 60, der det som en desktop maskine bruger som standard:
Kode: Vælg alt
sudo -w sysctl vm.swappiness=60
Ændringen træder omgående i kraft.
Hvis du vil bruge procfs filsystemet
Med proc filen gøres det således, det kan også bruges i egne scripts og programmer, hvor man bare åbner filen for skrivning og skriver tallet:
Kode: Vælg alt
sudo echo 60 > /proc/sys/vm/swappiness
De tal du kan bruge skal være fra 0 (nul) til 100 - begge inklusive.
- wm.swappiness=100 finder alle inaktive pages (1 page-= 1blok RAM på 4 KB på 32-bit maskiner, og 8 KB på 64-bit maskiner) og smider dem i swap på harddisken, eller hvad du nu bruger af lagermedie.
- Er tallet mindre en 100 vil den være mindre tilbøjelig at smide en page i swap.
- 60 er som sagt tallet en desktop har som standard (det er standard-værdien for kernen), prøv at skrue den op eller ned.
- wm.swappiness=0 får kernen til kun at undgå en OOM (Out-Of-Memory situation), dvs at med 0 (nul) prøver kernen at holde alt i RAM, såvidt det overhovedet er muligt
Du kan se din maskines swappiness med:
Kode: Vælg alt
sysctl vm.swappiness
eller med:
Kode: Vælg alt
cat /proc/sys/vm/swappiness
Mere om swappiness:
- http://unixfoo.blogspot.dk/2007/11/linux-performance-tuning.html
- http://en.wikipedia.org/wiki/Swappiness
/Lars