RAM Üzerinde Dosya Sistemi

By samed, 5 August, 2013

ramfs ve tmpfs kullanımı sizlere fiziksel hafızanızın bir parçasını bir disk bölümüymüş gibi kullanabilmenizi sağlar. Bu bölümlere aynen bir diske okuma/yazma yapar gibi işlemler yapabilirsiniz, tek farkı okuma ve yazma işlemleri RAM üzerinden yapıldığından ciddi hız farkları yaşatacaktır.

Özellikle ön bellekleme işlemleri (caching) gibi disk üzerinde sürekli bir okuma/yazma operasyonun olduğu ve bu işlemlerin çok
hızlı gerçekleşmesi, io beklenmemesi için sıklıkla başvurulan bir yöntemdir.

ramfs Bölünü Bağlama

mkdir -p /mnt/ramfs
mount -t ramfs -o size=10m ramfs /mnt/ramfs

Bağlanılmış olan bölümlerin durumunu mount komutu kullanılabilir.

mount
/dev/vda on / type ext4 (rw,errors=remount-ro)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
ramfs on /mnt/ramfs type ramfs (rw,size=20m)

tmpfs Bölümü Bağlama

mkdir -p /mnt/tmpfs
mount -t tmpfs -o size=10m tmpfs /mnt/tmpfs

Bağladığınız bölümün durumunu df komutu ile inceleyebilirsiniz.

df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda               20G  1.1G   18G   6% /
none                  246M     0  246M   0% /dev/shm
tmpfs                  10M     0   10M   0% /mnt/tmpfs

ramfs ve tmpfs Farkları

  • ramfs dinamik olarak büyür. Yani siz "-o size=10m" gibi parametrelerle boyut belirtmiş olsanız dahi oluşturulmuş olan bölüme belirtilen boyutun üzerinde yazılmaya devam edildiğinde herhangi bir hata oluşmaksızın bölüm büyümeye devam edecektir, taaki belleğiniz dolana kadar. Bu kontrolü sizin yazdığınız kodlarca kendinizin yapması gereklidir. tmpfs'de ise belirtilen boyutun üzerinde dosya yazılamaz.
  • ramfs takas alanı yani swap kullanmaz. Bu durum boyut kontrolünün de olmaması nedeniyle bellekteki aşırı yüklenme sistemde hataların oluşmasına neden olabilir. tmpfs ise takas alanı kullanır.

Hızlı bir okuma yazma ortamına ihtiyaç duyuyorsanız tmpfs kullanmanızı öneririm. Ancak tmpfs ve ramfs gibi bellek üzerinde yer alan dosya sistemlerindeki verilerin geçici olduğunu, elektrik kesintisi veya yeniden başlatma işlemlerinde buradaki verilerin tamamının kaybedileceğini belirtmem gerekiyor.