Wstęp
Wszyscy wiedzą że RAM jest dużo szybszy od dysku twardego. Żeby zobrazować, dysk SATA posiada chwilowy maksymalny transfer 50MB/s, natomiast RAM w okolicy 1000 MB/s, co daje nam 20 krotne przyspieszenie.
Sposobów na wykorzystanie RAM-u jest wiele, oto kilka zaczerpniętych z doświadczenia:
* Jeśli uruchomiłeś serwer www, a twoje oprogramowanie do keszowania cały
czas zapisuje dane na dysku to z pewnością nie będzie to wydajne
rozwiązanie
* Jeśli udostępniasz duże pliki do pobrania przez internet przez wielu
użytkowników, z pewnością spotkasz się z problemem I/O
(wejścia/wyjścia)
* Jeśli posiadasz serwer PXE z obrazami ISO, wydajność odczytu obrazu ISO
przez wiele stacji nie będzie zadowalająca
* Jeśli zajmujesz się obróbką wideo lub grafiki, to z pewnością nie raz
odczuwałeś, że dysk twardy do wąskie gardło twojego komputera
A co jeśli wszystkie te pliki znajdowałyby się w RAM-ie ? Jakby to działało?
Metoda 1. Wykorzystanie /DEV/SHM
Wszyscy którzy używają systemu Linux, muszą posiadać użądzenie /dev/shm w swoim systemie. Jest to zamontowany system plików (tmpfs) w odniesieniu do pamięci wirtualnej zamiast dysku. Rozmiar tego katalogu rośnie automatycznie wraz z zapotrzebowaniem, jednak jego maksymalny domyślny rozmiar to połowa dostępnej pamięci RAM (przykład: jeśli masz 2GB RAM to /dev/shm będzie mógł mieć maksymalnie 1GB)
Tak więc, wszystko co skopiujemy do tego katalogu, faktycznie będzie znajdowało się w pamięci RAM a nie na dysku twardym. Taki stan rzeczy może okazać się przydatny podczas pracy z dużymi plikami (np. grafika, wideo)
Może sie zdarzyć, że limit do połowy fizycznej pamięci RAM jest nie wystarczający, w tym celu wykonajmy jego zwiększenie:
sudo mount -o remount,size=3G /dev/shm
Pamiętaj, że jeśli przekroczysz rozmiar dostępnej pamięci RAM, ten zabieg nic ci nie da
Metoda 2. Nowy system plików TMPFS
Przykład:
Tworzymy ramdysk w lokalizacji:
/var/www/www.mojastrona.pl/ramdysk
, o rozmiarze 500MB (naszej
pamięci RAM) i modyfikowalny tylko przez użytkownika root, ale do odczytu
przez wszystkich (np.: Apache)
mkdir -p /var/www/www.mojastrona.pl/ramdysk
mount -t tmpfs -o size=500M,mode=0744 tmpfs /var/www/www.mojastrona.pl/ramdysk
Przywracanie naszego ramdysku podczas startu maszyny:
W pliku /etc/fstab
dopisujemy:
tmpfs /var/www/www.mojastrona.pl/ramdysk tmpfs size=500M,mode=0744 0 0
Metoda 3. Inna
sudo mkfs -t ext3 -q /dev/ram1 65536
sudo mkdir -p /ramdisk
sudo mount /dev/ram1 /ramdisk -o defaults,rw
UWAGA
Wszystkie dane które są przechowywane w tymczasowym systemie plików tmpfs, nie są zapisywane na dysku twardym. Jeśli uruchomisz ponownie komputer, dane te zostaną stracone.
Jeśli jednak potrzebujesz sposobu na auto-kopię i auto-przywrócenie, powinieneś posłużyć się skryptem uruchamianym podczas startu systemu, jego wyłączania, lub dodać zadanie do CRON-a
Odpowiedzi : 5
Ostatni komentarz : pon., 15/06/2009 - 23:28Genialne, abosultnie genialne! Nie znałem tego rozwiązania a bardzo mi się przyda. Pozdrawiam.
Bardzo miło słyszeć, że uda ci się rozwiązać dzięki temu problem. A mógłbyś przybliżyć do jakich celów będziesz używał powyższego? Może też się czegoś nauczę ...
witam
pomysl super i nie wydaje sie zbyt problematyczny dla laika,
tylko jak to moge wykorzystac w codziennej pracy?
znacie jakes tricki na system, moze jakis katalog podpiac pod to?
Możesz użyć do przechowywania cache Firefox'a... lub całego profilu FF.
Powiem tak: Przeglądarka śmiga!
Ja mam zrobionego symlinka z ~/tmp do /dev/shm, którego używam między innymi do przechowywania plików ściąganych z netu: co potrzebuje zostawić przegrywam, reszta ginie przy wyłączeniu
Dodaj nową odpowiedź