Raspberry PI OS - plik wymiany (dphys-swapfile) - dphys-swapfile

Spis treści

dphys-swapfile - zarządzanie swapem

dphys-swapfile - Zarządzanie swapem...Poniższy opis jest niemal dosłownym tłumaczenie pliku pomocy dla procedury dphys-swapfile.

Jakkolwiek niektóre jego fragmenty (tworzono go go przed; a aktualizowano w: 2010) zdają się być nieaktualne to uważam, że generalnie treść opisu funkcji procedury wyjaśnia jej podstawowe założenia.

Autorzy rozwiązania (np. opisując ten pakiet w dystrybucji Debiana) podkreślają, że ich celem było stworzenie narzędzia umożliwiającego (bez potrzeby posiadania partycji wymiany o stałym rozmiarze) "wygenerowanie i uruchomienie pliku swap. Jego rozmiar jest obliczany automatycznie, aby dopasować go do aktualnego rozmiaru pamięci RAM".

Procedura dphys-swapfile - realizuje utworzenie, montowanie i odmontowanie oraz usunięcie pliku wymiany (swapfile)

Składnia: dphys-swapfile setup|install|swapon|swapoff|uninstall
(Wymaga uprawnień supeusera, czyli winna być poprzedzona komendą: sudo - przyp. mój)

Opis: Procedura dphys-swapfile oblicza optymalny rozmiar pliku wymiany (a w razie potrzeby dokonuje zmiany rozmiaru istniejącego pliku), montuje go lub odmontowuje. Usuwa plik swap, gdy nie jest już potrzebny.

Opcje: Tylko jeden ze wskazanych poniżej parametrów może być argumentem komendy dphys-swapfile:

  • setup lub install - oba parametry uruchamiają obliczenie przez dphys-swapfile optymalnego rozmiaru pliku wymiany i ( ew. ponownie) wygenerowanie dopasowanego pliku wymiany. Domyślny rozmiar to 2-krotność rozmiaru pamięci RAM. Procedurę można wywołać podczas rozruchu systemu, więc plik zawsze zachowuje odpowiedni rozmiar z uwzględnieniem wielkości pamięci RAM lub jest uruchamiany ręcznie, gdy zmieni się rozmiar pamięci RAM.
    (Dla systemu Raspbian 32b rozmiar okreslony jest na 100MB przez wpisanie "na sztywno" w pliku konfiguracyjnym (/etc/dphys-swapfile) rozmiaru swap'a. - mój. przyp.)
  • swapon lub swapoff - to komendy uruchamiające lub wyłączające używanie swap'a. Zwróć uwagę, że bezpośrednia aktywacja lub dezaktywacja pliku wymiany za pomocą wpisu w /etc/fstab nie jest możliwa, jak to ma miejsce np. w Debianie. Tu aktywacja/deaktywacja swapu następuje podczas wykonywania tego samego skryptu, który wskazuje na lokalizację pliku wymiany (domyślnie: /var). Procedury te pomijają wpisy w /etc/fstab.
  • uninstall - usuwa z dysku zbędny (niechciany) plik swap, automatycznie zwalniając na dysku zajmowane przez niego miejsce.

Konfiguracja: Plik konfiguracyjny /etc/dphys-swapfile pozwala użytkownikowi na konfigurację środowiska uruchomienia usługi dphys-swapfile. To skrypt powłoki, zawierający szereg przypisań (nadawania wartości określonym zmiennym). Składnia jest zgodna z zasadani tworzenia skrytptów powłoki (sh).

Przypisania dotyczą:
CONF_SWAPFILE - określa, gdzie plik wymiany ma być umieszczony. Domyślnie to katalog /var/swap. Jest mało prawdopodobne byś chciał to zmieniać. Chyba, że chciałbyś wykorzystać standardową partycję wymiany.
 
CONF_SWAPSIZE - określa rozmiar swap'a, wyrażony w MB. Pozostawiając tę wartość pustą (ustawienie domyślne, ale nie w Raspbianie - przyp. mój) wymusza zastosowanie wartości wyliczonej. Wykorzystanie tej wartości jest mało prawdopodobne, chyba że w jakiś mało przewidywalnych sytuacjach na dysku. Należy zwrócić uwagę że wskazanie wartości mniejszej niż rozmiar RAM'u w przypadku maszyn wirtualnych (VM) dla niektórych kerneli\systemów może generować problemy.
(Dla systemu Raspbian 32b rozmiar ustawiony jest na 100MB. - mój. przyp.)

CONF_SWAPFACTOR - ustawia rozmiar pliku wymiany zgodnie z wyliczeniem w oparciu w wskaźnik wielokrotności wielkości dostępnego RAMu. Używa tej wartości (podczas obliczeń) do pomnożenia rozpoznanego rozmiaru pamięci RAM. Pozwala to na dynamiczne dostosowanie się do RAM, zapewniając wystarczającą wielkość pliku wymiany w systemach o dużej pamięci RAM, bez nadmiernego uszczuplania miejsca na dysku w systemach o małym RAM (oraz dyskach?). Domyślnie ustawiona na 2, co daje rozmiar pliku wymiany = 2*RAM.
(Ten parametr jest w Rasbian domyślnie wyłączony - przyp. mój).

CONF_MAXDISK_PCT - ustawia maksymalny (procentowy) udział miejsca na dysku, wykorzystywany przez swap. Procedura uwzględnia potencjalnie już istniejące pliki wymiany dphys-swapfile, tj. odejmuje ich rozmiar przed obliczeniem ostatecznej wartości (procentowej) od dostępnego miejsca na dysku. Domyślnie to 50%. Ustawiając pustą wartość zmiennej kontrola zostaje wyłączona.

CONF_MAXSWAP Ustawienie ograniczenia rozmiaru maksymalnej obliczonej wielkości swap'a, wyrażonej w MB. Domyślnie jest to 2048GB, który był wcześniej limitem wynikającym z 32-bitowej architektury kernela (i CPU). Obecnie jest limitem zapobiegającym tworzenie bezsensownie dużych plików wymiany w systemach wyposażonych w dużą ilość pamięci RAM.

Pliki: /etc/dphys-swapfile to plik konfiguracyjny umożliwiający administratorowi konfigurowanie swap'a.

Przykłady: procedura dphys-swapfile jest uruchamiana podczas startu lub zamykania systemu poprzez skrypt zawarty w /etc/init.d (tak jest w RASPbian OS - przyp. mój lub w /etc/rc.d):

#!/bin/sh
# /etc/init.d/dphys-swapfile - uruchamia automatycznie plik wymiany
# Author franklin, ostatnia modyfikacja 2004.06.04
# This script is copyright ETH Zuerich Physics Departement,
# use under either modified/non-advertising BSD or GPL license
case "$1" in
start)
  /sbin/dphys-swapfile setup
  /sbin/dphys-swapfile swapon
  ;;

stop)
  /sbin/dphys-swapfile swapoff
  ;;

esac
exit 0

Jeśli administrator chce umieścić plik swap w innej lokalizacji, np. /var/tmp/swap może tego dokonać nadając zmiennej CONF-SWAPFILE w pliku /etc/dphys-swapfile wartość: /var/tmp/swap.

Należy zwrócić uwagę, że dla prawidłowego przebiegu procedury inicjacji swap'a za pomocą dphys-swapfile koniecznym jest by w trakcie jej wywołania katalog wskazanej lokalizacji był już dostępny (zamontowany)!