Tworzenie pliku Swap


(GForce) #1

Witam,

Mam takie pytanko, używam Manjaro Xfce na kompie z 4GB pamięci RAM, niestety nie mam partycji swap, pamiętam że kiedyś w Linux Mint miałem swap nie na osobnej partycji, ale był to plik na partycji głównej gdzie był zainstalowany system (partycja /) Czy w Manjaro można utworzyć taki plik i czy takie rozwiązanie jest lepsze niż osobna partycja swap ?

 

Pozdrawiam serdecznie


(Frankfurterium) #2

https://wiki.archlinux.org/index.php/swap#Swap_file

https://wiki.manjaro.org/index.php?title=Add_a_/swapfile


(GForce) #3

 

A dziękuję bardzo ;)


(GForce) #4

Ha, znowu mam problem, ten plik mi po prostu zniknął… jak chce utworzyć nowy ww. metodą to nie zapisuje, raz się udało, ale po ponownym uruchomieniu kompa już nie było tego pliku…

A teraz jak chcę go znowu stworzyć to w ogóle nie zapisuje, ma ktoś jakiś pomysł ?

PS. w Htop w Swp mam 0K/0K (to nie jest mój screenshot) https://upload.wikimedia.org/wikipedia/commons/b/b1/Htop.png


(Domker) #5

Pokaż, co Ci pokazuje:

cat /etc/fstab

i

free -m

Ja na jednym “uboższym” PC z 4GB RAM zrobiłem swapfile, ale przy pomocy systemd-swap.
Wybrałem ten sposób ze względu, że wtedy w /etc/systemd/swap.conf można zadeklarować dynamiczny rozmiar pliku SWAP przykładowo ustawiasz na 256MB i w miarę potrzeb plik się rozrasta, co 256MB, czyli 256MB > 512MB > 1024MB … w zależności od potrzeby.
Usługę doinstalowuje się przez pacmana, konfigurujesz za pomocą w. w. pliku i aktywujesz:

systemctl enable systemd-swap
systemctl start systemd-swap

Tu masz trochę więcej info:


(GForce) #6

Cześć,
Po wpisaniu komendy: cat /etc/fstab mam taki oto wynik:

[gforce@Dragon ~]$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>                           <mount point>  <type>  <options>  <dump>  <pass>
UUID=a549f3f3-067e-42db-a65d-5181195515cf /              ext4    defaults,noatime,discard 0       1
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0       0
[gforce@Dragon ~]$

(Domker) #7

No to już wiem, czemu SWAPa nie masz.
Plik “fstab” Ci się zaktualizował (pewnie przy aktualizacji kernela (jajka) lub ogólnie systemu.
(pominąłeś ten krok)
Na nowo musisz dodać wpis:

/swapfile none swap defaults 0 0

Wpis ten jest odpowiedzialny za automatyczne montowanie pliku swap.
Jak nie masz pliku swapfile na dysku to musisz go utworzyć na nowo według poradnika z Archa.

Najlepiej od początku leć według poradnika - musi zadziałać.


(GForce) #8

Działa, ale po restarcie plik znika…

# fallocate -l 512M /swapfile

# chmod 600 /swapfile

# mkswap /swapfile

# swapon /swapfile

Do tego momentu jest ok, plik o rozmiarze 512 mb został utworzony, ale tu zaczyna się problem…

Po wpisaniu: /etc/fstab

Wyskakuje taki komunikat:

[gforce@Dragon ~]$ /etc/fstab
bash: /etc/fstab: Brak dostępu

(GForce) #9

Ten plik jest w /etc/fstab jest to zwykły dokument tekstowy o rozmiarze 545 bajtów, czyli mam na samym końcu dopisać to polecenie ? /swapfile none swap defaults 0 0


(ubuuser) #10

Przeczytaj ze zrozumieniem to, co wcześniej zostało napisane, przecież to tylko kilka zdań.


(GForce) #11

Tak, wiem doskonale, pytam tylko dlatego że chcę być pewien na 110% żeby przypadkiem nie rozwalić systemu, bo czasami diabeł tkwi w szczegółach.


(Domker) #12

@GForce
Tak dokładnie tak na końcu masz dopisać :slight_smile:
Tylko do zapisu w tym pliku potrzebujesz uprawnień roota.
jeżeli masz system z KDE to:

kdesu kate /etc/fstab

poprosi Cię o hasło roota i otworzy ten plik w edytorze Kate.


(GForce) #13

Działa wszystko elegancko, używam Xfce, otworzyłem Thunara jako root i dokonałem zmian w tym pliku dopisując ww. polecenie. :slight_smile:

PS. teraz utworzyłem większy plik swap 4GB, czy taki rozmiar jest odpowiedni dla 4GB pamięci RAM ?


(Domker) #14

Temat w sieci już był poruszany XXXXXXX krotnie.
Jeżeli nie hibernujesz (usypiasz) systemu to 2GB nawet mogą być.
Jeżeli hibernujesz to minium 1.5 raza większy niż twoja pamięć RAM, ale nie większy niż dwukrotność pamięci RAM (1.5 x 4GB RAM = 6GB)

Zrobiłem raz eksperyment i wyłączyłem SWAP u mamy z PC 4GB RAM.
Mama nie zdołała przekroczyć apetytu aplikacji na tą ilość RAM i system się ani razu nie zwiesił. (Linux Manjaro KDE)
Niestety siostra otwierając “X” kart w Firefox i przeglądając zdjęcia z Pineresta zdołała zawiesić system po ok 1 godzinie korzystania :stuck_out_tongue:


(GForce) #15

Bardzo dziękuję za szczegółowe wyjaśnienie, problem uważam za rozwiązany. :relaxed:

Pozdrawiam serdecznie.


#16

To zależy. Jeśli ten komputer ma mieć możliwość hibernacji (w wiki Archa jako suspend to disk) to tak - mniej więcej tyle potrzebujesz, by móc aktualny stan komputera zrzucić do swap (pod warunkiem, jeśli w danym momencie nie jest wykorzystywany).
Jeśli używasz jakichś aplikacji, które są bardzo pamięciożerne, to może okazać się, że i 4GB jest zbyt mało, ale wówczas lepiej dokupić RAM niż się bawić we wspomaganie swapem.
W pozostałych przypadkach 4GB swapu będzie… za dużo :slight_smile:
Najlepiej sprawdzaj sobie co jakiś czas wykorzystanie swap i zdecyduj o jego rozmiarze (z wyjątkiem owej hibernacji). Jak też wspomniał @Domker - może warto zastanowić się nad dynamiczną wielkością swapfile sterowaną przez systemd-swap.
PS: Też mam 4GB. Normalnie zawsze ustawiałem partycję /swap z taką ilością. Po awarii HDD już nie robiłem partycji, ustawiłem swapfile na 4GB. Marnotrawienie HDD. Ustawiłem na 2GB. Potem na systemd-swap. Obecnie… nie używam :slight_smile:
Nie hibernuję też komputera. Jak trzeba będzie - stworzę.


(Domker) #17

Dużo też zależy od parametru vm.swappiness.
Przy bardzo pamięciożernych aplikacjach lekkie zmniejszenie tego parametru pomaga.
System wtedy mniej przenosi do SWAPa mając do dyspozycji jeszcze wolną pamięć RAM.
Z drugiej strony czasami może ucierpieć wydajność jak się przesadzi z wartościami vm.swappiness.


(GForce) #18

A no właśnie Panowie jak to jest na Linuxie, pamiętam że na Windows 7 jak zużycie pamięci RAM przekroczyło 80% to wówczas zaczęło się zapisywanie do pliku wymiany (pagefile.sys).


(Domker) #19

Pod Linux jest to troszkę bardziej pokręcone, nie będę się na ten temat rozpisywać, bo w sieci jest dużo informacji o tym.
Generalnie pod Linux masz taki parametr jak vm.swappiness i on określa jak często system ma wywalać do SWAPa mało używane dane tak, aby zwolnić pamięć RAM, bo wiadomo, że jest szybsza niż odczyt z dysku.

Na innym komputerze mam SSD, które jak to pamięć flash źle znosi bardzo częste operacje zapisu degradując się szybciej przy częstych zapisach. Tam mam ustawiony swappiness na “1” -> Minimum amount of swapping without disabling it entirely. Co powoduje minimalne użycie SWAP i zwalnianie pamięci RAM, ale nieco większe latency z resztą tak jak przy większych wartościach. (70+)

Niedostosowane do specyfikacji sprzętu wartości mogą źle wpłynąć na wydajność PC/żywotność dysku.
Linux ma jeszcze kilka innych parametrów dotyczących pamięci, ale raczej ich nie ruszam.


(GForce) #20

Ciekawe, przyznam że nie wiedziałem o tym, dzięki za info. :wink:

Pozdrawiam.