Kompilieren im RAM (gentoo Linux)
|
||
Unter Linux ist es ohne große Probleme möglich, Teile des Arbeitsspeichers in den Verzeichnisbaum zu mounten. Da unter gentoo Linux bei einer Aktualisierung des Systems mittels emerge die Festplatte recht gut in Mitleidenschaft gezogen wird, entschloss ich mich für eine Nutzung des RAMs zum Kompilieren der Programmpakete.Dies hat generell mehrere Vorteile:
Dennoch gibt es auch Nachteile:
Natürlich muss jeder selbst entscheiden, ob er es mal riskieren will, dass der Kompiliervorgang abbrechen kann, oder ob er die Festplatte schonungslos seinem Nutzen unterwirft. Um das Feature des Einbindens von RAM in ein Verzeichnis möglich zu machen, ist es erforderlich, dass im Kernel der Dateisystemtyp „tmpfs“ aktiviert ist. Aber ohne diesem würde das System sowieso nicht laufen. Ich habe das Mounten des RAMs sofort in die Datei /etc/fstab eingetragen: |
||
|
||
|
||
Das Aktivieren der Option „noexec“ führt zu Fehlern beim Kompilieren, da die configure-scripts direkt ausgeführt werden.Die erste Spalte steht auf none, da es kein direkt ansprechbares Device gibt. Die zweite Spalte verweist auf das Verzeichnis, in das der RAM gemountet werden soll. Ist das durch die Variable PORTAGE_TMPDIR in der Datei /etc/make.conf zu verwendende Verzeichnis des Portage nicht /var/tmp, muss diese Spalte angepasst werden. Die dritte Spalte ist das schon erwähnte Dateisystem tmpfs. Die Option size in der vierten Spalte gibt an, wieviel RAM gemountet werden soll. Spalte vier und fünf stehen logischerweise auf 0, da ein Filesystemcheck beim Booten nicht möglich wäre.Mountet nach Abspeichern der Datei und dem Löschen des Inhaltes des Verzeichnisses /var/tmp/portage den RAM. |
||
|
||
|
||
Das vorhergende Leeren des Verzeichnisses verhindert, dass Plattenplatz verloren geht, da der Mount des RAMs den Zugriff auf die Platte unterhalb des Verzeichnisses verhindert.Erst durch Füllen der temporären Partition wird der Arbeitsspeicher verwendet, nicht durch das bloße Mounten! Durch das Unmounten des RAMs wird automatisch dessen Inhalt gelöscht.Sollte kein Fehler aufgetreten sein, müsste mount nun Ähnliches ausgeben: |
||
|
||
|
||
Somit kann mit dem Kompilieren begonnen werden. Dateioperationen können ganz normal wie bei einer Festplatte angewandt werden.Große Pakete wie openoffice zu kompilieren bedarf natürlich einer großzügigen Vergabe von RAM. Da sollten etwa 2 GB schon reichen; aber dies ist klarerweise abhängig von der generellen RAM-Kapazität. Also mindestens 500 MB sollte man schon frei lassen, damit das System selbst nicht in Bedrängnis geraten kann. Außerdem sollte man auch darauf achten, dass die Angabe im realistischen Bereich liegt. Sollte das System auf den Swap zurückweichen müssen, war das Ganze umsonst.Im oben genannten Beispiel-System sind insgesamt 8 GB RAM. Maximal 2 GB (2000 MB) davon werden durch das Mounten von /var/tmp/portage belastet werden können. In einem anderen Desktop-System zum Beispiel sind insgesamt nur 2 GB RAM enthalten; Maximal 1,3 GB werden nach /var/tmp/portage gemountet. Es sind bisher noch keine Probleme aufgetreten. Sollte dennoch mehr RAM als 700 MB benötigt werden – beispielsweise durch ein Spiel wie Doom3 oder Quake 4 – reicht es völlig aus, einfach den Inhalt des RAMs im Verzeichnis von /var/tmp/portage zu löschen, um wieder die vollen 2 GB RAM verwenden zu können. Ein kurzzeitiges Unmounten tut es auch. |