/ / Sind die ARC-ZĂ€hler von ZFS dauerhaft? - zfs

Sind die ARC-ZĂ€hler von ZFS dauerhaft? - zfs

Angenommen, ich habe einige Daten, auf die zugegriffen wirdhĂ€ufig und einige weniger hĂ€ufig aufgerufene Daten. Ich verstehe, dass der ARC irgendwann lernen wird, die Daten, auf die hĂ€ufig zugegriffen wird, nicht mehr zu löschen, um Platz fĂŒr andere Daten zu schaffen, nur weil auf die anderen Daten kĂŒrzlich zugegriffen wurde. Angenommen, ich habe seit geraumer Zeit ein ZFS-System ausgefĂŒhrt und es hat dieses Zugriffsmuster aufgegriffen.

Wenn ich meine Box neu starte und hÀufig aufgerufene Daten gerade gelesen und somit in der ARC sind, werden neue LesevorgÀnge anderer Daten deren Löschung verursachen? Oder erinnert sich ZFS, dass diese Daten hÀufig verwendet werden?

Wenn dies von der Implementierung abhÀngt, bezieht sich diese Frage speziell auf Solaris.

Antworten:

1 fĂŒr Antwort № 1

Der ARC verfĂŒgt daher ĂŒber keine permanenten LeistungsindikatorenIhr Zugriffsmuster muss erneut angezeigt werden, um festzustellen, dass etwas hĂ€ufig verwendet wird. Es wird jedoch nichts entfernt, bis es voll ist / der Speicherdruck durch etwas anderes auf dem System steigt. Starten Sie das System also zuerst alles Das gelesene oder geschriebene wird im Cache gespeichert. Solange Ihre Daten, auf die hĂ€ufig zugegriffen wird, zuvor zweimal gelesen wurden, sollten sie in die Liste „MFU“ aufgenommen werden.

Sie können mehr ĂŒber den ARC-Algorithmus lesen Hier. Kurz gesagt, es besteht tatsĂ€chlich aus zwei LRUListen, eine fĂŒr Dinge, auf die einmal zugegriffen wurde (die „MRU-Liste“) und eine fĂŒr Dinge, auf die zweimal oder öfter zugegriffen wurde (die „MFU-Liste“) - ja, der Name ist falsch, es wird wirklich LRU verwendet, um sie zu vertreiben, weil LRU ist schneller und einfacher zu implementieren als MFU). Es gibt auch "Geisterlisten", die die kĂŒrzlich entfernten SchlĂŒssel (aber nicht die Daten) aus jeder Liste protokollieren, um zu bestimmen, wie groß die beiden Caches im VerhĂ€ltnis zueinander sein sollten.

Der L2ARC ist persistent (normalerweise auf SSDs gespeichert)verwendet aber nicht den ARC-Algorithmus (noch ein suboptimaler Name). Ich glaube, es rundet einfach die Daten im Cache. Ich bin außerdem der Meinung, dass Sie es nach einem Neustart nur wieder verwenden können, wenn Sie Nexentas OpenZFS-Fork verwenden (ich glaube, sie haben es noch nicht im Upstream-Modus gefunden).

Abgesehen von Nexentas "Persistent L2ARC" -Funktion ist nichts in dieser Antwort plattformspezifisch.