RAM-dysk w Linuxie

Pod Linuxem można stworzyć ramdysk na kilka sposobów. Zanim jednak taki ramdysk się stworzy warto zastanowić się czy ma to większy sens. Ogólnie Linuxy robią bardzo dobry użytek leżącej odłogiem pamięci RAM i świetnie buforują wszystkie rządania dostępu do systemu plików. W wielu przypadkach korzyści z używania ramdysku będą znikome.

Jeżeli ramdysk jest niezbędny to możemy skorzystać z poniższych mechanizmów:

  • moduł brd (ramdysk jako urządzenie blokowe)
  • tmpfs (system plików w pamięci RAM)
  • ramfs
brd - ramdysk jako urzędzenie blokowe

Tworzymy urządzenie blokowe o zadanym rozmiarze, które dla oprogramowania będzie widoczne jak zwykły dysk, w tym celu należy użyć polecenia:
modprobe brd rd_nr=1 rd_size=$((X * 1048576))
Tym sposobem utworzony zostaje dysk /dev/ram0 o pojemności X GB. Powstały ramdysk ma stały rozmiar i jest zupełnie przewidywalny. Taki dysk możemy używać jak zwykły dysk fizyczny - można go sformatować na dowolny system plików albo podłączyć do maszyny wirtualnej jako urządzenie blokowe.

Ogólna charakterystyka brd: Szybkość: 5/5
Stabilność: 5/5
Elastyczność: 1/5

tmpfs - system plików w pamięci RAM

tmpfs działa w sposób dynamiczny, alokując pamięć RAM dopiero wtedy gdy jest to niezbędna i zwalnia ją od razu kiedy nie jest potrzebna. Zaznaczyć trzeba, że dane przetrzymywane w tmpfs mogą trafić do SWAPu co może wpłynąć na wydajność i może spowodować przez to nieprzewidywalność szybkości pracy na plikach przechowywanych w ten sposób. Można ustawić odgórny rozmiar systemu plików tmpfs. mount -o size=4G -t tmpfs none /mnt

Ogólna charakterystyka tmpfs: Szybkość: 3/5
Stabilność: 5/5
Elastyczność: 5/5

ramfs

Działa podobnie do tmpfs czyli jest systemem plików funkcjonującym w pamięci RAM. Nie zrzuca danych do SWAPu w przypadku braku pamięci RAM ale może spowodować zawieszenie całego systemu jeśli pamięci zabraknie. Pamięć jest zajmowana przy tworzeniu pliku w tym systemie i zwalniana przy jego usuwaniu.

System plików ramfs możemy stworzyć poleceniem:
mount -t ramfs ramfs /mnt

Trzeba mieć na uwadze, że nie zobaczymy go wydając polecenie df -h poniważ nie ma określonego rozmiaru.

W takim systemie plików możemy utworzyć plik, który następnie można podpiąć pod /dev/loop uzyskując urządzenie blokowe:
truncate -s 4G /mnt/ramdisk.img
losetup /dev/loop0 /mnt/ramdisk.img

Ogólna charakterystyka ramfs: Szybkość: 4/5
Stabilność: 2/5
Elastyczność: 3/5

Poprzedni wpis Następny wpis