Ero sivun ”Swap” versioiden välillä
Siirry navigaatioon
Siirry hakuun
ei muokkausyhteenvetoa
Pb (keskustelu | muokkaukset) (Ak: Uusi sivu: Swap eli heittovaihto (joka tosin nykyisin on lähes aina sivutusta) tarkoittaa keskusmuistissa olevan datan siirtämis...) |
Ei muokkausyhteenvetoa |
||
(4 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
Swap eli [[wikipedia:fi:heittovaihto|heittovaihto]] (joka tosin nykyisin on lähes aina [[wikipedia:fi:näennäismuisti|sivutusta]]) tarkoittaa keskusmuistissa olevan datan siirtämistä muistitilan loppuessa massamuistilla (yleensä kiintolevyllä) sijaitsevalle swap-alueelle. | '''Swap''' eli [[wikipedia:fi:heittovaihto|heittovaihto]] (joka tosin nykyisin on lähes aina [[wikipedia:fi:näennäismuisti|sivutusta]]) tarkoittaa [[wikipedia:fi:keskusmuisti|keskusmuistissa]] olevan datan siirtämistä muistitilan loppuessa massamuistilla (yleensä kiintolevyllä) sijaitsevalle swap-alueelle. | ||
Sivutukselle ja heittovaihdolle "vastakkainen" toimenpide on massamuistilla sijaitsevien, usein tarvittavien tiedostojen kopioiminen keskusmuistiin niiden lukemisen nopeuttamiseksi. Tällä on osaltaan suuri merkitys järjestelmän suorituskyvylle. | Sivutukselle ja heittovaihdolle "vastakkainen" toimenpide on massamuistilla sijaitsevien, usein tarvittavien tiedostojen kopioiminen keskusmuistiin niiden lukemisen nopeuttamiseksi. Tällä on osaltaan suuri merkitys järjestelmän suorituskyvylle. | ||
Linuxissa swap-alue sijoitetaan yleensä erilliselle [[miten osioisin kiintolevyn|kiintolevyosiolle]], jolla on oma, swap-käyttöön optimoitu [[tiedostojärjestelmä]]nsä. Tavalliselle osiolle sijoitettuun swap-tiedostoon verrattuna tällä saavutetaan tietty nopeusetu (joka tosin on nykyisin melko marginaalinen). | Linuxissa swap-alue sijoitetaan yleensä erilliselle [[miten osioisin kiintolevyn|kiintolevyosiolle]], jolla on oma, swap-käyttöön optimoitu [[tiedostojärjestelmä]]nsä. Tavalliselle osiolle sijoitettuun swap-tiedostoon verrattuna tällä saavutetaan tietty nopeusetu (joka tosin on nykyisin melko marginaalinen). | ||
Komennolla | |||
[[cat]] /[[proc]]/swaps | |||
näkee kaikki järjestelmässä käytössä olevat swap-alueet tietoineen. | |||
==Swapin käyttöönotto== | ==Swapin käyttöönotto== | ||
Rivi 11: | Rivi 15: | ||
===Käyttöönotto käsin=== | ===Käyttöönotto käsin=== | ||
Swap-osio tai -tiedosto voidaan luoda myös käsin. Swap-osio tehdään luomalla ensin vapaavalintaisella [[osiointityökalut|osiointiohjelmalla]] sopiva osio. Monet osiointiohjelmat tarjoavat erillistä toimintoa swap-osion luomiseen, jolloin osiolle luodaan valmiiksi oikea tiedostojärjestelmä. Jos tällaista vaihtoehtoa ei ole tarjolla, voidaan luoda tyhjä (alustamaton) osio ja tehdä sille jälkikäteen swap-tiedostojärjestelmä komennolla <tt>[[mkswap]] | Swap-osio tai -tiedosto voidaan luoda myös käsin. Swap-osio tehdään luomalla ensin vapaavalintaisella [[osiointityökalut|osiointiohjelmalla]] sopiva osio. Monet osiointiohjelmat tarjoavat erillistä toimintoa swap-osion luomiseen, jolloin osiolle luodaan valmiiksi oikea tiedostojärjestelmä. Jos tällaista vaihtoehtoa ei ole tarjolla, voidaan luoda tyhjä (alustamaton) osio ja tehdä sille jälkikäteen swap-tiedostojärjestelmä komennolla <tt>[[mkswap]] [[laitetiedosto|levyosion_laitetiedosto]]</tt>, esimerkiksi | ||
mkswap /dev/sda4 | mkswap /dev/sda4 | ||
Tämän jälkeen tulee lisätä [[fstab]]iin sopiva rivi swap-osion käyttöönottamiseksi järjestelmän käynnistyessä. Ylläolevassa tapauksessa oikea rivi olisi | Tämän jälkeen tulee lisätä [[fstab]]iin sopiva rivi swap-osion käyttöönottamiseksi järjestelmän käynnistyessä. Ylläolevassa tapauksessa oikea rivi olisi | ||
Rivi 37: | Rivi 41: | ||
Herkkyyttä ajettavien ohjelmien swapiin siirtämiseen säädellään tiedoston <tt>/[[proc]]/sys/vm/swappiness</tt> avulla. Asetus voi olla välillä <tt>0-100</tt>. <tt>0</tt> tarkoittaa, että ohjelmien dataa ei koskaan siirretä kiintolevyvälimuistin tieltä swapiin (swap otetaan käyttöön vain silloin, kun keskusmuisti täyttyy ohjelmadatasta). <tt>100</tt> taas tarkoittaa, että todennäköisyys ohjelmadatan syrjäyttämiselle kiintolevyvälimuistin tieltä on hyvin suuri. | Herkkyyttä ajettavien ohjelmien swapiin siirtämiseen säädellään tiedoston <tt>/[[proc]]/sys/vm/swappiness</tt> avulla. Asetus voi olla välillä <tt>0-100</tt>. <tt>0</tt> tarkoittaa, että ohjelmien dataa ei koskaan siirretä kiintolevyvälimuistin tieltä swapiin (swap otetaan käyttöön vain silloin, kun keskusmuisti täyttyy ohjelmadatasta). <tt>100</tt> taas tarkoittaa, että todennäköisyys ohjelmadatan syrjäyttämiselle kiintolevyvälimuistin tieltä on hyvin suuri. | ||
Oletusasetuksena toimii useimmissa jakeluissa <tt>60</tt>, mikä on hyvä palvelinkäytössä, mutta työpöytäkäyttöön yleensä turhan korkea. | Oletusasetuksena toimii useimmissa jakeluissa <tt>60</tt>, mikä on hyvä palvelinkäytössä, mutta työpöytäkäyttöön yleensä turhan korkea. Varsinkin kannattavissa on usein hyödyllistä käyttää matalaa arvoa, sillä vähentynyt swapin käytön tarve vähentää tarvetta kiintolevyn "herättämiseen", mikä vuorostaan säästää virtaa. | ||
Normaalissa työpöytäkäytössä hyvä arvo on tyypillisesti välillä <tt>20-30</tt>. Jotkut käyttävät jopa arvoa <tt>10</tt> tai <tt>0</tt>. Paras arvo riippuu käytettävien ohjelmien tyypistä ja siihen pääsee käytännössä vain itse kokeilemalla. | |||
Nykyisen <tt>swappiness</tt>-arvon näkee komennolla | Nykyisen <tt>swappiness</tt>-arvon näkee komennolla | ||
Rivi 49: | Rivi 55: | ||
Sysctl.confiin määritellyt asetukset tulevat oletuksena käyttöön seuraavan uudelleenkäynnistyksen jälkeen. Asetusten käyttöönotto suoraan onnistuu komennolla | Sysctl.confiin määritellyt asetukset tulevat oletuksena käyttöön seuraavan uudelleenkäynnistyksen jälkeen. Asetusten käyttöönotto suoraan onnistuu komennolla | ||
[[sysctl]] -p | [[sysctl]] -p | ||
===Swap-alueiden prioriteetti=== | |||
Jos käytössä on lukuisia swap-alueita, voi niille asettaa keskinäisen prioriteetin riippuen esimerkiksi käytettävän massamuistin nopeudesta. Prioriteetti voi olla joko korkea tai matala. Oletusprioriteetti on aina matala (<tt>-1</tt>). Jos prioriteetti määritellään erikseen (kokonaisluku väliltä <tt>0-32767</tt>) tulee siitä automaattisesti korkea. Korkea prioriteetti voidaan asettaa <tt>[[swapon]]</tt>-komennon valitsimella <tt>-p</tt>, esimerkiksi | |||
swapon -p 2048 /swapfile | |||
Pysyvä asetus määritellään [[fstab]]in neljännessä sarakkeessa paramerillä <tt>pri</tt>, esimerkiksi | |||
/dev/sda4 swap swap defaults,pri=20485 0 0 | |||
==Katso myös== | ==Katso myös== |