Ich führe einen Job auf einer virtuellen CentOS-Maschine aus, die Zehntausende temporärer Dateien verwendet. Dies führt dazu, dass E / A der größte Engpass für diesen Job ist, der schnell ausgeführt wird. Die Gesamtgröße der temporären Dateien ist sehr groß und kann den verfügbaren Arbeitsspeicher überschreiten.
Da der Job auf einer VM ausgeführt wird und alle Dateien temporär sind, ist mir jegliche Zuverlässigkeit egal. Wenn die Stromversorgung ausfällt, wird die VM trotzdem in den Papierkorb verschoben. Wenn ein Prozess abstürzt, wird die VM trotzdem gelöscht. Auf diese Dateien kann nur ein Prozess zugreifen. Außerdem werden die Dateien niemals gelöscht - die VM wird am Ende des Laufs in den Papierkorb verschoben.
Es hört sich für mich so an, als ob ich die meisten Funktionen bestehender Dateisysteme (Journaling, Sperren, Bitmapping) nicht benötige, aber ich benötige grundlegende Eigenschaften des Dateisystems. Meine Frage ist, welches Dateisystem am besten geeignet ist, um nur die Funktionen des Bare-Bones-Dateisystems ohne großen Aufwand bereitzustellen. Es liegt auf der Hand, dass ein solches Dateisystem auch die Leistung erheblich verbessern würde, da es nicht mit all diesen Dingen umgehen müsste.
Hinweis: Leider habe ich den Job nicht geschrieben und ich kann sein tempfile-Verhalten nicht steuern.
quelle
Antworten:
ext2 ist das Barebone unter Linux, wenn Sie mit Einschränkungen wie der Größe zurechtkommen. Sie finden vielleicht noch mehr Barebone-Modelle (Minix?), aber ich würde es nicht wirklich empfehlen, weil sie zu alt sind. Übrigens, geben Sie viel Speicher für das Zwischenspeichern, wenn Sie es sich leisten können, oder verwenden Sie einfach eine Ramdisk.
quelle
uninit_bg
,filetype
und auch sicherstellen, dass es mit gemountet istnoatime
. Dies sollte eine ähnliche Leistung wie ext2 ohne die Nachteile erzielen.