Ramdisk

Hallo,

bin noch nicht wirklich gut in Linux eingearbeitet und habe eine Frage.

Lohnt es sich RAMDISK für das /tmp Verzeichnis anzulegen?
Auslagerungsdateien sollten im Arbeitsspeicher wesentlich schneller gelesen und geschrieben werden können.
Merkt man da einen Geschwindigkeitssprung z.B. beim Booten?
Oder loggt der Kernel beim booten sowieso nichts mit?

mfg
Martin

P.S.
Ich arbeite unter Ubuntu 9.04

Hallo Marty,

Lohnt es sich RAMDISK für das /tmp Verzeichnis anzulegen?

Ich glaube eher nicht. Soviel passiert auf /tmp auch nicht, daß Du den Unterschied merken würdest, zumal bei der Geschwindigkeit der heutigen Festplatten.

Auslagerungsdateien sollten im Arbeitsspeicher wesentlich
schneller gelesen und geschrieben werden können.

Naja, wenn Du mit Auslagerungsdatei SWAP meinst, so wird der nach Möglichkeit eh in den RAM geschrieben, so daß viele bei RAM grösser als 2 GB sogar auf die SWAP-Partition verzichten.

Merkt man da einen Geschwindigkeitssprung z.B. beim Booten?

Beim booten? Da wird mit /boot/initrd die RAM-Disk sowieso eingespannt, so daß ich auch hier keinen Geschwindigkeitsvorteil sehen kann. Da kannst Du die Bootgeschwindigkeit schon mal steigern, indem Du z.B. nach überflüssigen Diensten Ausschau hältst.

Oder loggt der Kernel beim booten sowieso nichts mit?

Was meinst Du damit? Auch beim Booten wird fleißig mitgeloggt, sieh dir mal die Ausgabe von

dmesg

an, aber den Zusammenhang zu einer RAM-Disk kann ich jetzt nicht erkennen.

Aber, ich bin ein älteres Semester, so daß es mir egal ist, ob das Programm foo 10 oder 12 Sekunden braucht. Deshalb probiere es einfach selber aus, schon weil die Beantwortung auch stark von deinem Rechner abhängt. Wenn das ne alte Kiste ist, mit einer langsamen Festplatte bringt es vielleicht was. Aber ob Du das dann auch merkst? Sieh dir einfach mal den Ubuntu-Artikel an, da kannst Du etwas experimentieren:
http://wiki.ubuntuusers.de/RAM-Disk_erstellen

Viele Grüße
Marvin

Hi,

Oder loggt der Kernel beim booten sowieso nichts mit?

Was meinst Du damit? Auch beim Booten wird fleißig mitgeloggt,
sieh dir mal die Ausgabe von

dmesg

an, aber den Zusammenhang zu einer RAM-Disk kann ich jetzt
nicht erkennen.

ich dachte nur, wenn der Kernel beim booten mitloggt und in das /tmp Verzeichnis geschrieben wird, sollte das nicht auf die Platte kommen sondern im RAM bleiben.
So dachte ich startet der Kernel schneller…
kann aber auch eine Fehlannahme sein. :smile:

Ich bin auf das Thema nur gekommen bei der Frage „wie kann das System schneller booten“.

mfg
Martin

Moien

Lohnt es sich RAMDISK für das /tmp Verzeichnis anzulegen?

Nur bei ganz, ganz schlechten SSDs. Bei normalen Platten lohnt es sich nicht.

Auslagerungsdateien sollten im Arbeitsspeicher wesentlich
schneller gelesen und geschrieben werden können.

Die Auslagerungsdatei wird (fast) nur benutzt wenn der RAM voll ist. Durch deine RAMDISK wird der RAM voller. Wodurch wieder mehr in die Auslagerungsdatei muss. Weshalb der RAM noch voller wird… usw.

Lass die Finger von Konstrukten die die swap-datei/Partition in den RAM legen. Das führt eigentlich immer zu massiven Problemen.

Merkt man da einen Geschwindigkeitssprung z.B. beim Booten?
Oder loggt der Kernel beim booten sowieso nichts mit?

Doch, er logt schon einiges mit. Aber das Log verbraucht, global gesehen, keine Zeit. Andere Dinge (Server, Hintergrundprozesse, Hardwaresuche) brauchen viel, viel mehr Zeit…

cu

hi,

Doch, er logt schon einiges mit. Aber das Log verbraucht,
global gesehen, keine Zeit. Andere Dinge (Server,
Hintergrundprozesse, Hardwaresuche) brauchen viel, viel mehr
Zeit…

cu

okay,

ich bin auch gerade dabei alle Dienste usw. zu entfernen.

Würde es etwas bringen den Kernel auf die Hardware anzupassen?
Also unnötige Unterstützungen raus zu schmeißen…
dell support … bluetooth support … etc. etc. etc.

Könnte das die Bootzeit verkürzen?

mfg
Martin

Hallo Martin,

ich dachte nur, wenn der Kernel beim booten mitloggt und in
das /tmp Verzeichnis geschrieben wird

Die Log-Dateien liegen normalerweise alle in /var/log und nicht in /tmp. Aber selbst wenn er nach /tmp loggen würde, das ist so unbedeutend, daß Du die 0,43 Sekunden, die es dann schneller laufen würde, nicht merkst.

sondern im RAM bleiben.

ausserdem möchte ich meine log-Dateien auch nach dem Ausschalten noch sehen :wink:

Ich bin auf das Thema nur gekommen bei der Frage „wie kann das
System schneller booten“.

Da gibt es andere Möglichkeiten, z.B. unnötige Dienste abschalten, Linux selbst entspecken usw. Lies dir das hier mal durch:
http://resources.zdnet.co.uk/articles/features/0,100…
Außerdem wird an verschiedenen Stellen am init-Prozess gebastelt, um den boot-Vorgang zu beschleunigen, z.B. mit initng
http://www.initng.org/
oder upstart
http://upstart.ubuntu.com/
Aber wie gesagt, maximal einmal am Tag booten und dann 10 Sekunden sparen, ob das so der Bringer ist? Wenn Du willst, kannst Du dein Linux ja sogar Tag und Nacht laufen lassen und bootest nur noch, wenn Du den neuen Kernel eingspielt hast…
Aber warum nicht, experimentiere mal in die Richtung, ist ja trotzdem interessant.

Viele Grüße
Marvin

Moien

ich bin auch gerade dabei alle Dienste usw. zu entfernen.

Töte nichts was du nicht u.U. brauchst.

Würde es etwas bringen den Kernel auf die Hardware anzupassen?

jein: es gibt biem booten den depmod-Schritt. Der kann entfallen wenn man Kernel und Hardware niemals verändert. Allerdings weiss ich nicht ob die ubuntu’er das nicht sowieso töten.

Königsweg (anstelle des raten) ist aber ein boot chart: http://webupd8.blogspot.com/2009/04/ubuntu-boot-char…

cu

Hallo Martin,
damit Du auch exakt deine Fortschritte messen kannst (und die Engpässe besser siehst), gibt es ein praktisches Tool, bootchart
http://www.bootchart.org/
das dir grafisch aufbereitet anzeigt, wie lange jeweils welcher Prozess beim booten gebraucht hat. Da siehst Du dann auch, wo es sich wirklich lohnt, dran zu schrauben.

Viele Grüße
Marvin

Würde es etwas bringen den Kernel auf die Hardware anzupassen?

jein: es gibt biem booten den depmod-Schritt. Der kann
entfallen wenn man Kernel und Hardware niemals verändert.
Allerdings weiss ich nicht ob die ubuntu’er das nicht sowieso
töten.

Königsweg (anstelle des raten) ist aber ein boot chart:
http://webupd8.blogspot.com/2009/04/ubuntu-boot-char…

cu

Okay, davon habe ich schon gehört. Ich werde es nachher mal ausprobieren …
Danke schonmal

Hi Martin,

Lohnt es sich RAMDISK für das /tmp Verzeichnis anzulegen?
Auslagerungsdateien sollten im Arbeitsspeicher wesentlich
schneller gelesen und geschrieben werden können.

beim Booten nicht unbedingt, aber viele Applikationen legen unter /tmp temporäre Dateien ab. Und je nachdem, wie das Zugriffsmuster darauf ist, bringt es einen kleinen oder einen riesigen Vorteil. Meine Linux Server laufen alle mit /tmp als „ramdisk“ !

Ein weiterer Vorteil ist, dass nach dem Booten /tmp automatisch leer ist. Es gibt ja einige „Administratoren“, die dort riesige Zip-Files oder dergleichen ablegen, obwohl andere Verzeichnisse dafür vorgesehen sind.

Gruss
norsemanna

Marvin,

Die Log-Dateien liegen normalerweise alle in /var/log und
nicht in /tmp. Aber selbst wenn er nach /tmp loggen würde, das
ist so unbedeutend, daß Du die 0,43 Sekunden, die es dann
schneller laufen würde, nicht merkst.

super, darf ich raten: … du bist ein unverbesserlicher Java Programmierer, welche sich ohnehin keine Gedanken über Performanz oder Skalierbarkeit machen und welche auch nicht mehr wissen, wie die einzelnen ADT, die sie benutzen, realisiert wurden…

Woher weisst du, ob ihn die 0.43s stören oder nicht? Bei meinen Handelsapplikationen z.B. geht es um sehr sehr kleine µs Zeiten, welche über Hop-oder-Top entscheiden … In anderen Worten: wenn das Wegschreiben eines Wertes 0.43 Sekunden anstatt 3µs braucht, verliert mein Kunde einen 6-stelligen Eurobetrag …

Gruss
norsemanna

tmpfs?
würde tmpfs auch reichen für das /tmp Verzeichnis?
Oder bevorzugst du RAMDISK?

mfg
Martin

P.S.
zur Aussage mit den µs … ja µs sind vielleicht zu streng genommen aber auf ein paar Hundert Millisekunden achte ich schon. (auch Berufsbedingt :smile: )

Hi Martin,

würde tmpfs auch reichen für das /tmp Verzeichnis?
Oder bevorzugst du RAMDISK?

schaue hier

http://linux-delhi.com/tmpfs/ramdisk

für eine Abwägung.

Gruss
norsemanna