Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Ramdisks unter Linux

  1. #1
    Premium Mitglied Avatar von SeeksTheMoon
    Registriert seit
    Feb 2002
    Beiträge
    1.704

    Ramdisks unter Linux

    Ich wollte mir unter Linux eine Ramdisk anlegen um mir dort temporär ein paar Daten zur schnelleren Verarbeitung abzulegen.
    Zuerst habe ich im Irrglauben gehandelt, der Kernel müsse dafür die Option für Ramdisk-Support aktiviert haben und habe mich deshalb erstmal auf diese Lösung konzentriert.
    Dann habe ich erst gesehen, dass diese Ramdisk ziemlich ätzend ist, weil sie z.B. ihre Größe nicht dynamisch ändern kann, ich mir zum Erzeugen die benötigte Größe in Blöcken ausrechnen muss und jedesmal ein (ext2) Dateisystem in der Ramdisk erstellen muss, das auch für sich nochmal Platz beansprucht.

    Beim googeln bin ich dann auf den guten Tipp gestoßen, tmpfs zu benutzen.
    Das ist ein Pseudo-Dateisystem, das im Kernel unter der Option "Virtual memory file system support (former shm fs)" zu finden ist.

    Wenn man dieses Teil im Kernel hat, dann wird das Handling der Ramdisk plötzlich viel leichter:
    Man kann mit folgendem Befehl einfach das Dateisystem mounten und ist dann schon fertig mit allem:

    mount /dev/shm/ -t tmpfs /mnt/ramdisk
    Alles was in /mnt/ramdisk liegt, liegt nun direkt im Arbeitsspeicher.

    Wer also ausreichend RAM hat, kann sich dort seinen Webserver/Fileserver ablegen (besonders bei Gigabit-LAN). Ein Gameserver, die Datenbank oder sonstige Sachen gehen selbstverständlich auch.

    => Natürlich ist beim Ausschalten alles in diesem Verzeichnis verloren, aber man kann sich fürs Booten und Anhalten des Systems ja init-Scripts schreiben, die die Daten sichern.

    Für einen Stromausfall hat man besser noch eine USV parat.
    Was man noch tunlichst unterlassen sollte: Man darf das Verzeichnis nicht immer voller schreiben, schließlich hat man nicht endlos RAM zur Verfügung.

    Wer sehr wenig Arbeitsspeicher hat, sollte sich eh 2x überlegen, ob sich eine Ramdisk lohnt, denn wenn der Rechner auf die Platte swappen muss, weil der Speicher voll ist, dann hat das nicht viel gebracht.
    Aber bei 512MB aufwärts kann das schon sehr lohnend sein und bei 4GB oder mehr ist man eh alle Sorgen los
    09F911029D74E35BD84156C5635688C0

  2. #2
    Registrierter Benutzer
    Registriert seit
    Mar 2001
    Beiträge
    1.397

    Naja, ...

    Also das interessiert mich schon, aber weil ich nur 1,5 GB (in einem Rechner nur 1 GB) habe, aber 1,8 GB in Form von häufig auszuwertenden CSV-Daten habe (komprimiert 400 MB), brauche ich eine komprimierende Ramdisk.
    Deshalb warte ich erstmal auf reiser4 oder ext4, die das haben.
    Bisher ist es nämlich schwierig unter Linux mit komprimierenden Dateisystemen: Zu ext2 gibt's nur ein experimentelles addon, jfs hatt zwar Kompression, aber die wird vom Linux-Treiber nicht untersützt usw.. Mit jffs2 könnte man es zwar hinbekommen, bracht dafür aber erstmal ein mtd-device und anderes wie die Kernel-Ramdisk oder cloop haben zwar Ramdisk+Kompression aber nur lesbar
    Theoretisch ginge es mit ntfs in einer Ramdisk, aber da warte ich lieber auf Reiser4 oder ext4.

  3. #3
    Agent (Clone #17264) Avatar von Jasper
    Registriert seit
    Jul 2002
    Ort
    The Matrix (Reloaded)
    Beiträge
    3.073
    Zitat Zitat von SeeksTheMoon
    Alles was in /mnt/ramdisk liegt, liegt nun direkt im Arbeitsspeicher.
    nicht genau. tmpfs liegt nur im pagecache und im swap, also im sogenannten virtuellen arbeitspeicher.

    Zitat Zitat von SeeksTheMoon
    Was man noch tunlichst unterlassen sollte: Man darf das Verzeichnis nicht immer voller schreiben, schließlich hat man nicht endlos RAM zur Verfügung.
    siehe oben, nicht RAM sondern virtual memory.
    besser ist die verwendung der mount-optionen "size" oder "nr_block/nr_inodes" um die groesse zu begrenzen.
    default für size ist ram/2. wenn man size zu gross wählt kann man in böse schwierigkeiten (kernel-OOM) kommen weil der tmpfs-space (pagecache + swap) nicht ausgelagert werden kann.

    ein nachteil von tmpfs ist, dass man keine files in tmpfs-volumes per loopdevice mounten kann.


    -j
    Geändert von Jasper (11.04.04 um 23:37 Uhr)
    "Oh my God!" "Smith will suffice" (Agent Smith, Matrix)
    "The first rule of holes is: when you find yourself in one, stop digging." (PJ, Groklaw)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •