Durch den Sicherungsprozess wird der Festplatten-Cache geleert

7

Ich habe einen Sicherungsprozess, der eine ganze Menge Daten von der Festplatte liest und daher den gesamten Speicher für den Festplatten-Cache verbraucht und dabei Apps und andere zwischengespeicherte Daten austauscht. Es hat keinen Vorteil, gesicherte Daten nach Abschluss der Sicherung im Festplatten-Cache zu belassen. Daher möchte ich die Datenmenge begrenzen, die vom Kernel für diesen Prozess zwischengespeichert werden kann. Ist es möglich?

Vielen Dank,

liori
quelle

Antworten:

3

Korrigieren Sie den Sicherungsprozess so, dass Dateien mit O_DIRECT geöffnet werden oder dass regelmäßig posix_fadvise (..., POSIX_FADV_DONTNEED) aufgerufen wird, wenn ein Datenblock erstellt wurde.

Oder beschweren Sie sich bei demjenigen, der für das Sicherungsprogramm verantwortlich ist, um das Problem wie oben beschrieben zu beheben.

Alternativ können Sie eine Filterbibliothek erstellen, die die oben genannten Aufgaben ausführt, und diese Bibliothek LD_PRELOAD, wenn Sie den Sicherungsprozess ausführen.

janneb
quelle
1
Vielen Dank für die Ausgangspunkte. Um Ihre Antwort ein wenig zu erweitern: Ich benutze duplicityund rdiff-backup, beide verwenden rsyncintern. Es gibt ein Ticket und einige Patches , um es zu implementieren, und einige nicht offizielle Builds mit einem Patch werden bereitgestellt. Es gibt auch einen LD_PRELOAD-Weg von Andrew Morton.
Liori