Swappia voi Linuxissa käyttää perinteisen swap-osion asemesta myös suoraan tiedostoista, eli swap-fileistä. Swapin hallinta on muutenkin helppoa, sillä swap-tilan voi kytkeä päälle ja pois ilman uudelleenkäynnistystä ja vaikka tila olisikin käytössä.
Perinteisesti swap on sijoitettu erilliselle osiolleen (mahdollisesti turvallisempaa), mutta swapin voi käytännöllisistä syistä luoda myös tiedostoja käyttäen. Swap-tiedostot ovat swap-osioihin verrattuna helpompia luoda, poistaa ja muuttaa kooltaan.
Swap-tiedoston luominen onnistuu seuraavalla komennolla (x86-alustalla maksimissaan 2GB), kuten ”man mkswap” ohjeistaa:
dd bs=1024 count=1M if=/dev/zero of=/path/to/swapfile.n
Komento luo 1 GB kokoisen tiedoston (1 MB * 1024) paikkaan ”/path/to/swapfile.n”
Swap-tilalle voidaan antaa myös prioriteetteja (man 2 swapon). Korkeamman prioriteetin swap-tila käytetään ennen alemman prioriteetin swappia ja saman prioriteetin swap-tila ”jaetaan” (striped). Prioriteetti määritellään joko swapin aktivoinnissa ”swapon” komennolla tai /etc/fstab tiedostossa (esimerkki).
# swap space in device partitions
/dev/hda2 none swap pri=5,defaults 0 0
/dev/hde2 none swap pri=5,defaults 0 0
# swap space in swap files
/work/swapfile.1 none swap pri=5,defaults 0 0
/work/swapfile.2 none swap pri=5,defaults 0 0
Kun swap-tila on varattu, täytyy se alustaa swap-otsikkotiedoilla seuraavasti.
mkswap /dev/hda2
mkswap /dev/hdb1
mkswap /work/swapfile.1
mkswap /work/swapfile.2
Swap-tila aktivoidaan järjestelmän käynnistyksessä ja myöhemmin sama voidaan myös tehdä ”swapon” komennolla ennen swapin käyttöönottoa, esimerkiksi seuraavasti:
swapon /dev/hdf1
swapon /work/swapfile.3
Swap-tilan käyttäminen useammalta osiolta tai swap-tiedostojen jakaminen useammalle osiolle vastaa RAID-0:n toimintaa. Yleensä on hyvä olla useampi swap-alue samalla prioriteetilla toiminnan tehostamiseksi. Jos koneessa on riittävästi muistia niin swappia ei periaatteessa tarvita ollenkaan, sillä swapin käyttäminen on hitaampaa kuin muistin käyttäminen.
Swapin poistaminen käytöstä voidaan suorittaa ”swapoff” komennolla (man swapoff).
swapoff /work/swapfile.1
swapoff /work/swapfile.2
swapoff /dev/hdb1
swapoff /dev/hda2
Lisää swapista voi lukea swap-mini-howto:sta