RAM Üzerinde Dosya Sistemi

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

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

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

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

tmpfs Bölümü Bağlama

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

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

  1. df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/vda 20G 1.1G 18G 6% /
  4. none 246M 0 246M 0% /dev/shm
  5. 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.