SWAP jest naprawdę konieczna?

(incognito74) #1

Czy 8 GB swap przy 4 GB RAM lub więcej na linux to dobre rozwiązanie??

(pocolog) #2

To zależy od tego jak korzystasz z komputera. Jednym wystarczy 2 GB RAM innym 16 brakuje i muszą się SWAPem ratować.

(Domker) #3

Dwukrotność RAMu - 8GB SWAP.
Tak poza tym to lepiej sobie zrób plik SWAP - łatwiej jest zarządzać jego rozmiarem w zależności od potrzeby.

Tworzysz plik 8GB:
dd if=/dev/zero of=/swapfile1 bs=1024 count=8388608 status=progress

Nadajesz prawa, aby zabezpieczyć dostęp do niego:
sudo chown root:root /swapfile1
sudo chmod 0600 /swapfile1

Robisz swapa w pliku:
sudo mkswap /swapfile1

Aktywujesz swap:
sudo swapon /swapfile1

Kopia pliku fstab:
sudo cp /etc/fstab /etc/fstab.BAK

Dodajesz na końcu na stałe do pliku fstab, aby SWAP się automatycznie montował przy uruchomieniu:
sudo echo '/swapfile1 none swap sw 0 0' | tee -a /etc/fstab

Jak używany jest SWAP możesz sobie sprawdzić:
grep -i --color swap /proc/meminfo

(roobal) #4

Dwukrotność RAMu stosowało się w czasach, gdy RAM nie przekraczał 512MB. Przy 512MB i hibernacji zakładało się nawet 4x512. W obecnych czasach to marnotrawienie przestrzeni dyskowej. W czasach, gdy lepiej usypiać, niż hibernować swap jest zbędny. Ja już przy 2GB RAM zrezygnowałem z partycji swap. Przy 16GB RAM szkoda mi miejsca na dysku na swap, z ktorego system nigdy nie skorzysta, a przy 32GB na PC to już nawet nie wspominam. Na serwerach, gdzie mam po 192GB RAMu swap jest kompletnie nie potrzebny, ile tam dam? 10GB? Nawet na Windows Server wyłączam plik stronicowania, od tego jest RAM, żeby go na maksa wykorzystać, bo jest szybszy, niż dyski, nawet SSD. Szczególnie przy SQL RAM jest istotny, bo liczy się szybkość operacji i nie ma miejsca na swapowanie. SQLe operują na RAMie, a tylko transakcje zapisują co okreslony czas na dysk. Dlatego 90% użycia to norma, teraz wyobraź sobie takie operacje na swapie.

4 Likes
(Domker) #5

Zależy tak naprawdę indywidualnie od tego, co się robi.
Przy 4GB bez SWAP siostra potrafiła zawiesić system ^^ (tyle kart w FF naotwierała, że sam kontener z addonami zajmował w ramie 1.2GB)
Dlatego zaproponowałem SWAP w postaci pliku, jak będzie potrzeba to można sobie w każdej chwili dodać. Nawet mniejsze pliki porobić i aktywować swapon jeżeli będzie taka potrzeba.

Ja dużo rzeczy trzymam w RAM, nawet czasami jeżeli coś jednorazowo potrzebuję to pobieram do tmpfs.
Chyba tylko raz byłem zmuszony przy 16GB RAM skorzystać ze SWAPu - jak miałem równolegle uruchomione 4 maszyny wirtualne.

(nintyfan) #6

echo '/swapfile1 none swap sw 0 0' | sudo tee -a /etc/fstab

Specem nie jestem, ale czy nie spowoduje to wpisania parametrów echo, jako hasło do sudo?

(Domker) #7

A fakt - mój błąd. Tak spowoduje to utworzenie pipeline do sudo.

(nintyfan) #8

Jednak się myliłem. W starszych sudo spowoduje to błąd, o którym wspomnieliśmy. Nowsze muszą czytać wejście bezpośrednio z terminala ( /dev/tty ? ). Pozwala to uniknąć podobnych błędów, a także podnosi bezpieczeństwo. Nie wiem jednak, co ze zgodnością wstecz. Pewne programy instalacyjne na pewno proszą o hasło root-a w GUI, by następnie podać je do sudo.

(incognito74) #9

Czy to normalne?

przykład pokazuje swap 0

(Domker) #10

Masz użytych 0 z 8GiB.
To kiedy jest używany przez kernela determinuje parametr swappiness.
Poczytaj sobie: https://wiki.archlinux.org/index.php/Swap#Swappiness
Przy domyślnych ustawieniach SWAP zostanie użyty jak zużyjesz większość RAMu.

(incognito74) #11

Mam na myśli konkretnie ten błąd SWAP. Znaleziono główna przyczynę Swap.
Tym razem postanowił po około 5 minucie po uruchomieniu się zawieszać. Kursor nie działa, tylko nic na pulpicie nie idzie kliknąć. Musiałem resetować.
Myślałem, że swapfile się generuje dynamicznie. Dokładnie tydzień temu postawiłem system na nowo. Sam Arch Linux bez SWAP działa bez zarzutu.

Arch Linux KDE się zawiesza

(roobal) #12

Nie prościej było po prostu?

    sudo -i
    echo "/swapfile1 none swap sw 0 0" >> /etc/fstab
(sprzetowiec90) #13

Mozna jeszcze sobie do tego zram wlaczyc, kiedys uzywalem i sie sprawdzalo.

(Juche) #14

Ja mam 8 GB ramu i swapu nie ustawiałem, bo nie widzę takiej potrzeby. System mam na SSD, więc usypianie/hibernacja nie ma u mnie większego sensu, PC i tak wstaje w max kilkanaście sekund.

#15

ja też (niestety) mam 8 i potrafię go zapchać, wystarczy wirtualka
ogólnie zależy co kto robi na kompie
swap nie gryzie, jeść nie woła, a może tyłek uratować
jak komuś szkoda partycjonować dysk, to plikowy swap będzie w sam raz

(roobal) #16

System z uśpienia wybudza się w 2s :wink:

(krystian3w) #17

Nawet z KDE?

(roobal) #18

Jeśli ktoś z PC robi serwer do wirtualizacji no to sorry, bez RAMu się nie obejdzie, ale co kto woli.

(jajecpl) #19

U mnie tylko FF powoduje użycie SWAP nawet jak jest jeszcze dużo pamięci fizycznej. Na Operze nie nie ma takiego zjawiska. Pomijając już to, że opera zabiera z 30-40% mniej RAM.
KDE Neon

(roobal) #20

Może FF bierze swap, bo masz. Ja nie mam, więc nie bierze i działa :wink: