Linux saaleala ehk swap: Difference between revisions

From ICO wiki
Jump to navigationJump to search
(Created page with 'Märt Lindre AK21')
 
No edit summary
Line 1: Line 1:
'''Mis on swap'''
Linux on võimeline kasutama kõvaketast RAM-i laiendusena, seda nimetatakse virtuaalmäluks. Kõvakettal olevat ruumi mida kutsutakse virtuaalmäluks nimetatakse saalealaks ingk. SWAP SPACE . Võib olla nii partitsiooni kui faili kujul. Swap partitsiooni on võimalik tekitada Linuxi instaleerimise käigus. Faili aga võib tekitada igal ajal.
Eesmärk on mälus olevad andmed mida hetkel ei vajata kirjutada saalealale. Seda kasutatakse juhul kui mõnel aktiivsel programmil jääb mälu väheks. Kui saalealale kirjutatud andmeid on uuesti vaja, siis loetakse nad swapist uuesti mällu. See on oluliselt kiirem, kui andmete lugemine failisüsteemist. Kuid ta ei ole siiski võrreldav RAM-i kiirusega
'''Miks on vaja swapi'''
Osad programmid vajavad rohkelt mälu (videotöötlus, mängud, suurte failide töötlemine jne.) Neid programme käivitades või andmeid läbi töödeldes loetakse mällu suur hulk informatsiooni mida hiljem enam võibolla ei kasutata. Süsteem võib selle mälu swappida ja vabastada mälu reaalselt mälu vajavatele protsessidele. Sellel juhul aitab swap hakkama saada täiendava koormusega.
Ettenägematute asjaolude puhul, kus mõni programm läheb lolliks ja hakkab mälu tarbima rohkem kui vaja.
Optimiseerida mälu kasutust, linux kernel automaatselt vabastab mälu mida ei kasutata ja liigutab selle swappi.
'''Palju ruumi swapiks on vaja'''
Minimaalselt võrdselt RAM-i hulgaga. Soovitatavalt 2xRAM. Kuigi tänapäeval tuleb vaadata loogiliselt mis programmid jooksevad masinas ja kui palju mälu oleks reaalselt vaja. Kogemustele tuginedes.
Ainuke miinus swapi suuruse juures on see, kui palju võtab ta sinu kõvakettal ruumi. Seda swapile antud ruumi ei saa sa kasutada muuks.
'''Kuidas tekitada swap fail'''
Faili kasutada swap seadmena.
Selleks tuleb teha 4 sammu
Tekitada sellise suurusega fail nagu vajad
Teha sellest failist swap seade
Lisada see swap fail süsteemi
Teha muudatus permanentseks
Näiteks teeme 512 Mb swapi
Teeme /mnt/512Mb.swap swap faili ja paneme õigused nii, et kasutaja ei saa seda lugeda otse.
Käsud lähevad siis root kasutaja alt
''dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512''
''chmod 600 /mnt/512Mb.swap''
Kus count=512 tähendab seda, et meie fail sisaldab 512 blokki ja bloki suurus on bs=1Mb on 1 Megabait
Chmod 600 on vajalik selleks, et keelata kasutajatel lugemast sensitiivset infot swap failist
Tekitame swap seadme
''Mkswap /mnt/512Mb.swap''
Lisame swap faili jooksvasse süsteemi
''swapon /mnt/512Mb.swap''
Tekitatud swap on nüüd saadaval ja seda on võimalik näha
''cat /proc/meminfo''
Teeme muudatuse jäävaks
Selleks tuleb muuta /etc/fstab-i
''gedit /etc/fstab''
Ja lisada sinna rida
''/mnt/512Mb.swap  none  swap  sw  0 0''
Salvestada, peale järgmist restarti hakatakse swapi kasutama automaatselt
Siin on näide swap faili tekitamisest ja kasutamiset süsteemis kus ei ole swap partitsiooni
''user@computer:~$ sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512
Password:
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 35.3802 seconds, 15.2 MB/s
user@computer:~$ sudo mkswap /mnt/512Mb.swap
Setting up swapspace version 1, size = 536866 kB
no label, UUID=dd6a01c8-93f0-41e0-9b7a-306956d8821b
user@computer:~$ sudo swapon /mnt/512Mb.swap
user@computer:~$ cat /proc/meminfo
MemTotal:      499496 kB
MemFree:          9156 kB
Buffers:          4748 kB
Cached:        233140 kB
SwapCached:        724 kB
Active:        254432 kB
Inactive:      157920 kB
HighTotal:          0 kB
HighFree:            0 kB
LowTotal:      499496 kB
LowFree:          9156 kB
SwapTotal:      524280 kB
SwapFree:      523556 kB
Dirty:            128 kB
Writeback:          0 kB
Mapped:        243420 kB
Slab:            20672 kB
CommitLimit:    774028 kB
Committed_AS:  648680 kB
PageTables:      2224 kB
VmallocTotal:  524280 kB
VmallocUsed:      5708 kB
VmallocChunk:  518176 kB
user@computer:~$ gksudo gedit /etc/fstab
user@computer:~$ free
            total      used      free    shared    buffers    cached
Mem:        499496    479488      20008          0      8256    215892
-/+ buffers/cache:    255340    244156
Swap:      524280      3856    520424
#####Then, after running a few more programs...
user@computer:~$ free
            total      used      free    shared    buffers    cached
Mem:        499496    492768      6728          0      1240    142336
-/+ buffers/cache:    349192    150304
Swap:      524280      53384    470896
#####Next, reboot to make sure it will work consistently.
user@computer:~$ free
            total      used      free    shared    buffers    cached
Mem:        499496    493136      6360          0      7528    174700
-/+ buffers/cache:    310908    188588
Swap:      524280      17148    507132''
Kui me ei vaja enam swap seadet mille tekitasime siis tuleks käituda vastupidiselt
''gedit /etc/fstab''
Eemaldada rida
''mnt/512Mb.swap  none  swap  sw  0 0''
Eemalda swap fail jooksvast süsteemist
''swapoff /mnt/512Mb.swap && rm /mnt/512Mb.swap''
Mis on swappimine ja kuidas seda muuta.
Swappimine on parameeter kuidas kernel käitub mäluga. Ja kuidas liigutab andmeid RAM-ist swappi
Väärtused saavad olla 0-100
Swappimine 0 tähendab et, hoiduda swappimisest nii kaua kui võimalik
Swappimine 100 et, kernel agresiivselt swapiks
Et vaadata hetkeväärtust
''cat /proc/sys/vm/swappiness''
Muutmiseks
Püsivaks muutmiseks
''gedit /etc/sysctl.conf''
lisada rida
''vm.swappiness=10''
Salvestada ja rebootida
Swapi kasutust saab kontrollida käsuga free
Kui swappi ei kasutata proovi panna tööle palju programme ja käivita käsk uuesti.
Kas mul on üldse swap partitsioon saab kontrollida käsuga fdisk –l
Isegi kui sul on palju RAM-i ja väike swappimise väärtus. On võimalik et, süsteem tegeleb ikka swappimisega ja see võib mõjutada sinu süsteemi jõudlust.
Selleks võib kasutada scripti mis tõstab automaatselt swapist tagasi RAM-i
''gedit /usr/sbin/swap2ram.sh''
''err="not enough RAM to write swap back, nothing done"
mem=`free|grep Mem:|awk '{print $4}'`
swap=`free|grep Swap:|awk '{print $3}'`
test $mem -lt $swap && echo -e $err && exit 1
swapoff -a && swapon -a &&
exit 0''
salvestada ja teha script käivitatavaks
''chmod +x /usr/sbin/swap2ram.sh''
käivitada
''usr/sbin/swap2ram.sh''
https://help.ubuntu.com/community/SwapFaq?highlight=%28%28SwapFaq%29%29
Märt Lindre AK21
Märt Lindre AK21

Revision as of 15:12, 14 April 2011

Mis on swap

Linux on võimeline kasutama kõvaketast RAM-i laiendusena, seda nimetatakse virtuaalmäluks. Kõvakettal olevat ruumi mida kutsutakse virtuaalmäluks nimetatakse saalealaks ingk. SWAP SPACE . Võib olla nii partitsiooni kui faili kujul. Swap partitsiooni on võimalik tekitada Linuxi instaleerimise käigus. Faili aga võib tekitada igal ajal.

Eesmärk on mälus olevad andmed mida hetkel ei vajata kirjutada saalealale. Seda kasutatakse juhul kui mõnel aktiivsel programmil jääb mälu väheks. Kui saalealale kirjutatud andmeid on uuesti vaja, siis loetakse nad swapist uuesti mällu. See on oluliselt kiirem, kui andmete lugemine failisüsteemist. Kuid ta ei ole siiski võrreldav RAM-i kiirusega

Miks on vaja swapi

Osad programmid vajavad rohkelt mälu (videotöötlus, mängud, suurte failide töötlemine jne.) Neid programme käivitades või andmeid läbi töödeldes loetakse mällu suur hulk informatsiooni mida hiljem enam võibolla ei kasutata. Süsteem võib selle mälu swappida ja vabastada mälu reaalselt mälu vajavatele protsessidele. Sellel juhul aitab swap hakkama saada täiendava koormusega.

Ettenägematute asjaolude puhul, kus mõni programm läheb lolliks ja hakkab mälu tarbima rohkem kui vaja.

Optimiseerida mälu kasutust, linux kernel automaatselt vabastab mälu mida ei kasutata ja liigutab selle swappi.


Palju ruumi swapiks on vaja

Minimaalselt võrdselt RAM-i hulgaga. Soovitatavalt 2xRAM. Kuigi tänapäeval tuleb vaadata loogiliselt mis programmid jooksevad masinas ja kui palju mälu oleks reaalselt vaja. Kogemustele tuginedes.

Ainuke miinus swapi suuruse juures on see, kui palju võtab ta sinu kõvakettal ruumi. Seda swapile antud ruumi ei saa sa kasutada muuks.


Kuidas tekitada swap fail

Faili kasutada swap seadmena.

Selleks tuleb teha 4 sammu

Tekitada sellise suurusega fail nagu vajad Teha sellest failist swap seade Lisada see swap fail süsteemi Teha muudatus permanentseks

Näiteks teeme 512 Mb swapi

Teeme /mnt/512Mb.swap swap faili ja paneme õigused nii, et kasutaja ei saa seda lugeda otse.

Käsud lähevad siis root kasutaja alt

dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512

chmod 600 /mnt/512Mb.swap


Kus count=512 tähendab seda, et meie fail sisaldab 512 blokki ja bloki suurus on bs=1Mb on 1 Megabait

Chmod 600 on vajalik selleks, et keelata kasutajatel lugemast sensitiivset infot swap failist

Tekitame swap seadme

Mkswap /mnt/512Mb.swap

Lisame swap faili jooksvasse süsteemi

swapon /mnt/512Mb.swap


Tekitatud swap on nüüd saadaval ja seda on võimalik näha

cat /proc/meminfo

Teeme muudatuse jäävaks

Selleks tuleb muuta /etc/fstab-i

gedit /etc/fstab

Ja lisada sinna rida

/mnt/512Mb.swap none swap sw 0 0


Salvestada, peale järgmist restarti hakatakse swapi kasutama automaatselt

Siin on näide swap faili tekitamisest ja kasutamiset süsteemis kus ei ole swap partitsiooni

user@computer:~$ sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512 Password: 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 35.3802 seconds, 15.2 MB/s user@computer:~$ sudo mkswap /mnt/512Mb.swap Setting up swapspace version 1, size = 536866 kB no label, UUID=dd6a01c8-93f0-41e0-9b7a-306956d8821b user@computer:~$ sudo swapon /mnt/512Mb.swap user@computer:~$ cat /proc/meminfo MemTotal: 499496 kB MemFree: 9156 kB Buffers: 4748 kB Cached: 233140 kB SwapCached: 724 kB Active: 254432 kB Inactive: 157920 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 499496 kB LowFree: 9156 kB SwapTotal: 524280 kB SwapFree: 523556 kB Dirty: 128 kB Writeback: 0 kB Mapped: 243420 kB Slab: 20672 kB CommitLimit: 774028 kB Committed_AS: 648680 kB PageTables: 2224 kB VmallocTotal: 524280 kB VmallocUsed: 5708 kB VmallocChunk: 518176 kB user@computer:~$ gksudo gedit /etc/fstab user@computer:~$ free

            total       used       free     shared    buffers     cached

Mem: 499496 479488 20008 0 8256 215892 -/+ buffers/cache: 255340 244156 Swap: 524280 3856 520424

          1. Then, after running a few more programs...

user@computer:~$ free

            total       used       free     shared    buffers     cached

Mem: 499496 492768 6728 0 1240 142336 -/+ buffers/cache: 349192 150304 Swap: 524280 53384 470896

          1. Next, reboot to make sure it will work consistently.

user@computer:~$ free

            total       used       free     shared    buffers     cached

Mem: 499496 493136 6360 0 7528 174700 -/+ buffers/cache: 310908 188588 Swap: 524280 17148 507132


Kui me ei vaja enam swap seadet mille tekitasime siis tuleks käituda vastupidiselt

gedit /etc/fstab

Eemaldada rida

mnt/512Mb.swap none swap sw 0 0

Eemalda swap fail jooksvast süsteemist

swapoff /mnt/512Mb.swap && rm /mnt/512Mb.swap

Mis on swappimine ja kuidas seda muuta. Swappimine on parameeter kuidas kernel käitub mäluga. Ja kuidas liigutab andmeid RAM-ist swappi

Väärtused saavad olla 0-100

Swappimine 0 tähendab et, hoiduda swappimisest nii kaua kui võimalik Swappimine 100 et, kernel agresiivselt swapiks

Et vaadata hetkeväärtust

cat /proc/sys/vm/swappiness

Muutmiseks


Püsivaks muutmiseks

gedit /etc/sysctl.conf

lisada rida

vm.swappiness=10

Salvestada ja rebootida

Swapi kasutust saab kontrollida käsuga free

Kui swappi ei kasutata proovi panna tööle palju programme ja käivita käsk uuesti.

Kas mul on üldse swap partitsioon saab kontrollida käsuga fdisk –l

Isegi kui sul on palju RAM-i ja väike swappimise väärtus. On võimalik et, süsteem tegeleb ikka swappimisega ja see võib mõjutada sinu süsteemi jõudlust.

Selleks võib kasutada scripti mis tõstab automaatselt swapist tagasi RAM-i


gedit /usr/sbin/swap2ram.sh

err="not enough RAM to write swap back, nothing done" mem=`free|grep Mem:|awk '{print $4}'` swap=`free|grep Swap:|awk '{print $3}'` test $mem -lt $swap && echo -e $err && exit 1 swapoff -a && swapon -a && exit 0

salvestada ja teha script käivitatavaks

chmod +x /usr/sbin/swap2ram.sh

käivitada

usr/sbin/swap2ram.sh


















https://help.ubuntu.com/community/SwapFaq?highlight=%28%28SwapFaq%29%29 Märt Lindre AK21