Swap je proces kojim se deo RAM memorije kopira u konfigurisani prostor na hard disku, da bi se oslobodio deo RAM memorije. Taj konfigurisani prostor se zove swap prostor. Swap prostor u Linuxu moze biti zasebna swap particija ili swap fajl. Zbir RAM memorije i swap prostora je kolicina virtuelne memorije.
Swap je neophodan iz dva vazna razloga.
Prvo, kada sistem zahteva vise memorije nego sto je dostupna kolicina RAM memorije, tada kernel oslobodi potrebnu RAM memoriju aktivnim programima ili procesima tako sto kopira sadrzaj RAM memorije koji trenutno nije potreban na swap prostor.
Drugo, izvesna kolicina memorije koju koriste programi tokom njihovog pokretanja može da se koristi samo za iniciranje i onda se vise nikada ponovo ne koristi.
Na taj nacin sistem oslobodi memoriju za druge programe, ili cak i za kes diska.
Medjutim, swap ima mana. U poredjenju sa RAM memorijom, diskovi su mnogo sporiji. Sto vise disk “swapuje” to ce sistem biti sporiji.
Swappiness je parametar Linux kernela koji kontrolise upotrebu swap-a. Swappiness se moze podesiti na vrednosti izmedju 0 i 100. Standardna vrednost je 60. Sto je vrednost swappiness-a visa, to ce kernel agresivnije koristiti swapp i obrnuto, sto je vrednost niza, kernel ce manje koristiti swapp.
Vrednost swappiness-a 60 je korisna za servere. Ali za desktop sisteme je ta vrednost prevelika i moze doci do nepotrebnog usporavanja sistema usled suvise agresivnog “swapovanja”. Na desktop sistemima se preporucuje da swappiness bude 10, s tim sto ako sistem ima manje od 1GB RAM memorije onda staviti swappiness vrednost 5.
Trenutnu vrednost swappiness-a mozete videti ako ukucate sledecu liniju u terminalu:
cat /proc/sys/vm/swappiness
Da bi ste izmenili vrednost swappinessa,
kao sudo pokrenite neki editor teksta i otvorite fajl:
/etc/sysctl.conf
i dodajte liniju:
vm.swappiness=10
sacuvajte izmene i restartujte kompjuter.
Na primer u terminalu kucajte:
gksudo mousepad /etc/sysctl.conf
dodajte liniju:
vm.swappiness=10
sacuvajte izmene i restartujte kompjuter.
Hvala puno darthewok!!!
LikeLike
Nema na cemu.
LikeLike
Nisam baš upućen, pa ako može mala pomoć gde se dodaje linija vm.swappiness=10? Na početku? Na kraju? Ja sam je dodao na kraju, ali kada restartujem računar i izvršim proveru i dalje mi stoji 60.
LikeLike
U nekom text editoru otvori fajl:
/etc/sysctl.conf
Ovo moras da uradis sa sudo privilegijama, na primer:
sudo nano /etc/sysctl.conf
ili iz grafickog editora:
gksudo pluma /etc/sysctl.conf ako koristis Mate okruzenje
ili ako koristis Gnome ili Unity onda kucas:
gksudo gedit /etc/sysctl.conf
liniju:
vm.swappiness=10
mozes staviti bilo gde, ja sam je na primer stavio na kraju.
Zatim sacuvas izmene i restartujes kompjuter.
LikeLike
Sve sam tako i uradio ali mi i dalje pise 60.
LikeLike
Koju Linux distribuciju koristis?
Kada posle restarta ucitas fajl /etc/sysctl.conf da li se tamo nalazi linija vm.swappiness=10 ili ne?
LikeLike
Da, nalazi se. Koristim poslednju verziju Ubuntu 15.10.
LikeLike
Otvori terminal i ukucaj ovo:
sudo sysctl -w vm.swappiness=10
To je samo privremena promena za probu.
zatim proveri vrednost swappiness sa:
cat /proc/sys/vm/swappiness
Da li ti je posle ovoga doslo do promene?
LikeLike
Došlo je do promene. Piše 10.
LikeLike
Ok, posto ti ta privremena promena radi, probaj ponovo da upises liniju u /etc/sysctl.conf, pa restartuj kompjuter, zatim proveri da li je doslo do promene.
Pazi, neki na internetu tvrde da vm.swappiness=10 mora da se pise ovako vm.swappiness = 10 sa razmakom izmedju znaka jednakosti.
Ali, kad sam kod mene probao da ukucam sudo sysctl -w vm.swappiness = 10, prijavio mi je gresku, kod mene tako ne radi, vec radi bas ovako kako sam napisao ovde bez razmaka izmedju znaka jednakosti.
Probaj i tako sa razmakom da upises tu liniju u /etc/sysctl.conf, pa javi da li si uspeo.
U svakom slucaju, ako ne uspes, “pejstuj” sadrzaj /etc/sysctl.conf fajla, pa da vidim u cemu je problem.
LikeLike
Pisao sam i sa razmakom i bez razmaka, nikakvu mi grešku nije prijavljivao, ali je ostala vrednost 60.
LikeLike
#
# /etc/sysctl.conf – Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
#
#kernel.domainname = example.com
# Uncomment the following to stop low-level messages on console
#kernel.printk = 3 4 1 3
##############################################################3
# Functions previously found in netbase
#
# Uncomment the next two lines to enable Spoof protection (reverse-path filter)
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks
#net.ipv4.conf.default.rp_filter=1
#net.ipv4.conf.all.rp_filter=1
# Uncomment the next line to enable TCP/IP SYN cookies
# See http://lwn.net/Articles/277146/
# Note: This may impact IPv6 TCP sessions too
#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
#net.ipv6.conf.all.forwarding=1
###################################################################
# Additional settings – these settings can improve the network
# security of the host and prevent against some network attacks
# including spoofing attacks and man in the middle attacks through
# redirection. Some network environments, however, require that these
# settings are disabled so review and enable them as needed.
#
# Do not accept ICMP redirects (prevent MITM attacks)
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv6.conf.all.accept_redirects = 0
# _or_
# Accept ICMP redirects only for gateways listed in our default
# gateway list (enabled by default)
# net.ipv4.conf.all.secure_redirects = 1
#
# Do not send ICMP redirects (we are not a router)
#net.ipv4.conf.all.send_redirects = 0
#
# Do not accept IP source route packets (we are not a router)
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
#vm.swappiness=10
LikeLike
Uh rešio sam problem. Video sam rešenje na Linux tutorijalima. Obrisao sam znak “#” i dobio vrednost 10. Hvala! :)
LikeLike
Taraba znaci da je ta linija komentar i sav unos iza tarabe se ignorise. Rekoh ti da upises, bas ovako kako sam napisao. :)
Nema na cemu. Poz. :)
LikeLike