Jak zrobić dysk RAM?

55

Chcę zrobić partycję z ram ...

Przykład

W systemie Windows 7 możesz utworzyć partycję wykonaną z pamięci RAM

wprowadź opis zdjęcia tutaj

Utworzyłem 1 GB partycji w pamięci RAM. za pomocą Primo RamDisk

Czy jest jakaś dobra alternatywa dla Ubuntu?

One Zero
źródło
3
Ubuntu zawiera tmpfs. Nie musisz tworzyć RAMDISK.
mixdev
W zależności od zamierzonego przypadku użycia może nie być potrzebny ramdysk dla Ubuntu (lub większości dystrybucji Linuksa). System operacyjny buforuje operacje odczytu i zapisu do pamięci RAM podczas pracy ze zwykłymi dyskami. Jeśli czytasz mały plik kilka razy, zostanie on pobrany z dysku tylko raz, a następnie pobrany z pamięci podręcznej pamięci RAM następnym razem. Jeśli masz dużo pamięci RAM, wszystko, co robisz, zostanie zbuforowane w ten sposób, więc będziesz mieć bardzo mało powtarzalnej aktywności na dysku. Jeśli chcesz nietrwałego szybkiego użycia pamięci zamiast plików, nadal potrzebujesz RAMDISK. Więcej informacji na stronie linuxatemyram.com .
TafT

Odpowiedzi:

77

To pokaże, jak zrobić RAMDISK bardzo szybko i łatwo. Dzięki RAMDISK możesz wykorzystać swoją pamięć do tymczasowej przestrzeni, a także jest ona znacznie szybsza niż dysk twardy.

Teraz zacznijmy od użycia następnych 2 poleceń, aby utworzyć RAMDISK.

Umieść, jak chcesz, aby twój RAMDISK był nazywany tam, gdzie napisałem „nameme”.

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
Powyższe polecenia wykorzystałyby 2 GB mojej pamięci RAM na RAMDISK. Jeśli nie masz tyle pamięci RAM co ja, użyłbym 512 MB lub 1 GB. Następnie zamierzaliśmy utworzyć polecenie dla terminala, które automatycznie utworzy dla ciebie RAMDISK.

Źródło: Jak utworzyć RAMDISK w systemie Linux

Mitch
źródło
3
Jak mogę to utrzymać między restartami?
chovy
1
Ponieważ jest to pamięć RAM, jest niestabilna, po ponownym uruchomieniu wszystko jest stracone, nawet jeśli ciepły rozruch, ponieważ BIOS / EFI wyczyści pamięć RAM. Najlepsze, co możesz zrobić, to utworzyć skrypt powłoki, który uruchamia polecenia podczas logowania.
Brandon MacEachern,
1
@ chovy upiera się, że masz kilka opcji, które myślę o 2 w tej chwili. 1. napisz API do zapisu na dysk RAM i asynchroniczny zapis na dysk HDD. Zawsze czytaj z pamięci RAM, tylko podczas rozruchu pamięci RAM z dysku. 2. od czasu do czasu wywołać skrypt, który kopiuje wszystko z dysku RAM na dysk HDD i kopiuje raz po uruchomieniu.
Lukas
inną opcją byłoby wyznaczenie czegoś w rodzaju /tmp/cachekatalogu pamięci podręcznej, gdzie ten katalog jest w rzeczywistości punktem montowania overlayfs (używając tmpfs jako górnego katalogu i cokolwiek innego w normalnym systemie plików, z którym normalnie wchodziłbyś w interakcję jako katalog dolny). to pozwoli ci mieć szybką, efemeryczną warstwę i coś, co może być trywialnie zsynchronizowane, jeśli od czasu do czasu będziesz chciał utrwalić jej część.
mway
chovy doda go do /etc/rc.local i automatycznie zamontuje partycję ... ale dane zostaną utracone.
777Ann
49

System plików tmpfs to RAMDISK. Poniższe spowoduje utworzenie RAMDISK 2G, który zawsze będzie dostępny.

sudo mkdir -p /media/ramdisk
sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

Folder ramdysku jest własnością root, ponieważ ma być dostępny przy ponownym uruchomieniu. Uprawnienia ramdysku powinny być możliwe do zapisu przez wszystkich. Domyślne uprawnienia tmpfs (chmod 1777) są poprawne.

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

Aby ramdisk był stale dostępny, dodaj go do / etc / fstab.

grep /media/ramdisk /etc/mtab | sudo tee -a /etc/fstab

Zobaczysz linię przeniesioną z mtab do fstab. Będzie to wyglądać mniej więcej tak.

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

RAMDISK nie zużywa pamięci, dopóki jej nie użyjesz. Dokładnie sprawdź wymagania dotyczące pamięci podczas maksymalnego obciążenia systemu. Jeśli RAMDISK jest zbyt duży, twój system zużyje swap, aby nadrobić różnicę.

Aby dopasować rozmiar RAMDISK, edytuj / etc / fstab i zweryfikuj, ponownie instalując ramdysk (utracisz swoją obecną zawartość RAMDISK podczas restartu). Poniższe spowoduje zmianę rozmiaru ramdysku na 512M

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk
rickfoosusa
źródło
1
Technicznie rzecz biorąc, tmpfsjest to ramfsnie ramdysk .
heemayl
2
Zgodzić się. Zdecydowałem się użyć RAMDISK, ponieważ jest to powszechna nazwa tego w systemie Windows.
rickfoosusa
Jak sprawdzić, czy ramdysk jest rzeczywiście używany? Zawsze widzę to jako używane 0%.
BTR Naidu
9

Dodając moje 2 centy w przypadku, gdy nie masz uprawnień roota:

Cytując tę odpowiedź z unix.stackexchange

Linux zapewnia urządzenie tmpfs, z którego może korzystać każdy użytkownik, / dev / shm. Domyślnie nie jest on montowany w określonym katalogu, ale nadal można go używać jako jednego.

Po prostu utwórz katalog w / dev / shm, a następnie dowiązaj go do dowolnego miejsca. Możesz nadać utworzonemu katalogowi dowolne wybrane uprawnienia, aby inni użytkownicy nie mieli do niego dostępu.

Jest to urządzenie z pamięcią RAM, więc domyślnie jest to, co jest w pamięci. Możesz utworzyć dowolne katalogi, których potrzebujesz w / dev / shm

Oczywiście umieszczone tutaj pliki nie przetrwają ponownego uruchomienia, a jeśli twoja maszyna zacznie zamieniać, / dev / shm ci nie pomoże.

Yuval Atzmon
źródło