Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

Utworzenie pliku SWAP na oddzielnym dysku

Zaczęty przez Kano, Styczeń 16, 2021, 05:43:54 PM

Poprzedni wątek - Następny wątek

Kano

Witam. Mój system to Linux Mint 19.3 Cinnamon. Jestem posiadaczem dość wiekowego komputera o 3 GB pamięci RAM. Ponieważ często dochodzi do zawieszania systemu postanowiłem utworzyć plik SWAP. Jednak chcę go utworzyć na oddzielnym dysku HDD, ponieważ czytałem, że korzystanie z tego pliku na dysku SSD (na którym mam zainstalowany system) znacznie skraca jego żywotność. No i tu zaczyna się problem, bo nigdzie w internecie nie znalazłem poradnika jak to zrobić. Jak wskazać miejsce utworzenia tego pliku i jak sprawić żeby ten dysk automatycznie był montowany przy starcie systemu, żeby nie było żadnego problemu z dostępnością tego pliku?

pavbaranov

Ten dysk włączony na stałe? Zainteresuj się fstab. Przykładowy wpis (u mnie) wygląda tak:
# /dev/sda3
UUID=79405e69-bda4-41e1-8f37-434dbfb4137b       none            swap            defaults,pri=-2      0 0

Oczywiście za UUID możesz podać /dev/itp.
Jeśli coś nie jest dla Ciebie jasne, to napisz.

Kano

Dysk jest włączony na stałe przez złącze SATA. Poczytałem trochę o fstab jednak nie jestem pewien jak ten wpis będzie wyglądał u mnie. W Gparted znalazłem już jego UUID i nazwę partycji, ale co do reszty parametrów nie jestem pewien.
Poza tym mam też pytanie o samo utworzenie pliku SWAP. Znalazłem w internecie taki poradnik:

https://404.g-net.pl/2017/06/swap-ktory-zamieszkal-pliku/

Jednak byłbym wdzięczny gdybyś napisał mi co zmienić w linii:

sudo dd if=/dev/zero of=/extraswap bs=1M count=1024

żeby utworzyć plik o wielkości 2 GB i na tym oddzielnym dysku.

pavbaranov

#3
Geezaa... czytaj człowieku, co do ciebie piszą (to do mnie, a nie do Ciebie :)). Ty chcesz utworzyć tzw. swapfile, czy partycję SWAP na tym dysku, czy jest Ci to obojętne? Zakładam, jak w tytule. Najprościej będzie Ci chyba sięgnąć po skrypt fallocate (winien być w util-linux), jeśli masz, to:
# fallocate --length 2GiB /ścieżka/do/HDD/swapfile
chmod 600 /ścieżka/do/HDD/swapfile
mkswap /ścieżka/do/HDD/swapfile
swapon /ścieżka/do/HDD/swapfile

Teraz w jakimś edytorze (np. nano) otwierasz plik /etc/fstab z uprawnieniami root i wpisujesz:
/ścieżka/do/HDD/swapfile swap swap defaults 0 0
W fstab możesz też użyć UUID.

Dla RAM=3GB zacząłbym od 6GB swapfile i sprawdził jak się zachowuje. Generalna zasada jest bowiem taka, że <4GB RAM wielkość SWAP winna wynosić powiedzmy 2x RAM.

PS1: Zawieszenie komputera może, ale nie musi być spowodowane zapełnieniem się RAMu.
PS2: Samouczek znaleziony w sieci: https://newsblog.pl/jak-utworzyc-plik-wymiany-w-systemie-linux/
PS3: Istnieje jeszcze narzędzie systemd-swap - zainteresuj się.
PS4: Głowy nie daję, że swapfile jednak winien być na partycji głównej (choć byłoby to dziwne; nigdy nie próbowałem tworzyć go gdzieś indziej)

Kano

#4
Odnośnie "systemd-swap" nie znalazłem nic, co byłbym w stanie zrozumieć, więc raczej skorzystam z tego skryptu, który podałeś. Tylko byłbym wdzięczny gdybyś sprawdził czy podstawiam poprawne wartości do twojego schematu. W tym celu zrobiłem screenshota z gparted tego dysku:
https://ibb.co/72npz6K
A więc myślę, że skrypt będzie wyglądać tak:

# fallocate --length 6GiB /dev/sdb1/swapfile
chmod 600 /dev/sdb1/swapfile
mkswap /dev/sdb1/swapfile
swapon /dev/sdb1/swapfile

A wpis w fstab:
UUID=07080792-2fd4-4de6-9d79-a51372dbe055 swap swap defaults 0 0
Czy tak to powinno wyglądać?

Jeśli chodzi o przyczynę zawieszania, to jednak kwestia RAM-u, bo już wcześniej utworzyłem plik swap na dysku głównym i wtedy ten problem ustąpił.

p.s. Wybrałem swapfile zamiast partycji dlatego, że wg opinii w internecie jest łatwiejszy obsłudze i bardziej wydajny niż partycja.

pavbaranov

Nie na urządzeniu chyba (czyli /dev/sdb1/), ale na tym jak jest ten dysk montowany (pewności nie mam). Sprawdzisz np. przez: mount -l | grep sdb1

Kano

Nie za bardzo rozumiem co masz na myśli. W odpowiedzi na ten skrypt, który podałeś system odpowiedział mi:
/dev/sdb1 on /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055 type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)
.

pavbaranov

Jedna uwaga, abyśmy się dobrze rozumieli: nie używam fallocate, a niestety z helpu i man to nie wynika. To co podałeś w swoim wpisie z 15:59:45 odnosi się do "urządzenia" (to te /dev/sdxY); fizycznego sprzętu, który gdzieś tam jest (mniejsza o to gdzie) i jest widziany przez system w określony sposób. Niektóre programy dopuszczają by jako "miejsce" jakiegoś pliku wskazać /urządzenie/plik, a niektóre nie. W tym ostatnim przypadku najczęściej wymagane jest albo podanie ścieżki, albo np. UUID (w zależności od programu; niekiedy jedno i drugie może być). Niestety nie mam też możliwości sprawdzić. Twój dysk w systemie jest montowany tu: /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055 z czego ten długi zestaw znaków to jest UUID. Być może zatem komenda winna przybrać postać:
fallocate --length 6GiB /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile
Możesz spróbować, bo wojny atomowej nie powinieneś tym wywołać :)

Kano

Rzeczywiście ten skrypt, który podałeś na końcu był poprawny. Plik się utworzył i wszystkie późniejsze komendy też przeszły. Tylko przy: sudo mkswap /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile system odpowiedział: Tworzenie obszaru wymiany w wersji 1, rozmiar = 6 GiB (bajtów: 6442446848)
brak etykiety, UUID=48787c8d-1886-4a39-a8b3-ee0b0f43f0a3

Jeśli wszystko jest w porządku, to teraz zostało jeszcze dopisanie linii to fstab. Czy będzie ona wyglądać tak?

/media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile swap swap defaults 0 0

pavbaranov

Czekaj, nie tak szybko. Z mkswap winno być to przez - chyba (bo nie śpię od ok. 1 w nocy):
# mkswap /dev/sdb1/swapfile
W fstab możesz użyć UUID możesz urządzenia.
PS: Zerknij jeszcze na https://askubuntu.com/questions/926027/enabling-unused-swap-and-mkswap-uuid-option; mi się już literki łączą ze sobą.

Kano

Cytat
Czekaj, nie tak szybko. Z mkswap winno być to przez - chyba (bo nie śpię od ok. 1 w nocy):
# mkswap /dev/sdb1/swapfile
To zdaje się, że źle zrobiłem, bo we wszystkich komendach o których pisałem w poprzednim poście użyłem

/media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile

a więc:

sudo chmod 600 /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile
sudo mkswap /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile
sudo swapon /media/dmk/07080792-2fd4-4de6-9d79-a51372dbe055/swapfile

Czy więc powyższe polecenia wykonać jeszcze raz, tylko zamiast "/media/dmk ..." dać "dev/sdb1/swapfile"?

Przeczytałem ten wątek, który mi podlinkowałeś, ale szczerze mówiąc nie rozjaśniło mi to sytuacji.

p.s. A co takiego porabiasz jeśli można spytać, że nie sypiasz po nocach? :D

manet

Na dysku HDD robić SWAP dla systemu postawionego na SSD operującego w szybkiej pamięci RAM?
Sądzę że w takiej konfiguracji gdzie SWAP będzie na leciwym dysku HDD (nie daj Boże na SATA150) to problemy dopiero się zaczną.
Szybkość zapisu na SWAPIE spadnie poniżej jakichkolwiek 'uczciwych' parametrów, tak aby system spokojnie mógł na tym wyrabiać.
Szybkość zapisu DO/Z RAM jest najwyższa, szybkość zapisu DO/W dysku SSD też będzie wyższa ... w stosunku do zapisu na SWAP umieszczonym na dysku HDD.
Aby to miało ręce i nogi ... dysk hdd musi osiągać dość szybki zapis i odczyt, moim zdaniem na poziomie minimum 140-150MB/s w odczycie i choćby 100MB/s w zapisie. Wtedy taki dysk lekko przymuli o ile często będzie używał SWAPu.
Ja mam WDC Black 7200 który osiąga pod 150MB/s i to już jest lekki dławik gdy SWAP tam siedział w czasach 4GB RAM.
Nie prościej wyszukać sobie gdzieś na aukcjach jakiś używany dysk SSD o pojemności np. 32GB? Są bardzo tanie, czasami i za 20zł idzie nabyć.
Tyle spokojnie wystarczy dla SWAP dla linuxa oraz umieszczenie katalogów pseudo TEMP (tymczasowych) właśnie na takim osobnym dysku.

Ja mam takiego zbędnego M2 o pojemności 32GB podzielony na dwie partycje z czego jedna to SWAP dla linuxa a druga dla Windows. Siedzi tam pagefile i foldery TEMP systemu.
Wtedy, gołym okiem widać różnice. Dwa dyski działają niezależnie od siebie (mogą przeprowadzać odczyt z systemu i zapis do SWAP w tym samym czasie) i wtedy naprawdę jest różnica.
Gdy miałem to samo na starym HDD systemy zachowywały się gorzej jak w ogóle bez SWAP czy pliku stronicowania (w windows).

Zrezygnowałem z forum w dniu 2021.01.21 10:47, wszystkie zapytania pozostaną bez odpowiedzi.

Kano

Ok, ale tak czy inaczej najpierw chcę doprowadzić tego swapa do stanu używalności i zobaczyć jak to będzie śmigać (albo pełzać) a później jeśli uznam, że komp muli tak bardzo, że nie da się pracować, kupię dysk SSD i powtórzę całą operację.

pavbaranov

@Kano - Sprawdź sobie, czy swapfile w ogóle został utworzony. Wieczorem (być może późnym) zagłębię się w temacie, chyba, że ktoś wcześniej da Ci jakąś radę.

Kano

Tak. Został utworzony. Ma dokładnie 6,4 GB.

Zobacz najnowsze wiadomości na forum