Der Linux-Kernel prüft alle, dirty_writeback_centisecs
ob ältere Seiten älter als Dirty sind dirty_expire_centisecs
. Mit Ihren Standardeinstellungen wird alle 5 Sekunden nach verschmutzten Seiten gesucht, die älter als 30 Sekunden sind.
Der Kernel hat auch ein Dirty-Memory-Limit. Wenn dieser Grenzwert erreicht ist, werden alle Schreibvorgänge blockiert, um zu vermeiden, dass zu viele schmutzige Seiten im RAM gespeichert werden.
Was Sie tun sollten, ist
vm.dirty_background_ratio
: Die Menge des Systemspeichers, die mit verschmutzten Seiten gefüllt werden kann, bevor der Kernel im Hintergrund auf Festplatte brennt.vm.dirty_ratio
: Der maximale Systemspeicher, der mit fehlerhaften Seiten gefüllt werden kann. Dann blockiert der Kernel alle E / A-Anforderungen, bis alles auf die Festplatte geschrieben ist.
Um dieses Verhalten nicht zu erhalten, müssen Sie dem Kernel mitteilen, dass er mindestens 30s * 6MB / s = 180MB enthalten sollte. Sie müssen auch die langsame Schreibgeschwindigkeit des Raspberry Pi berücksichtigen, da während der Zeit, die zum Spülen auf die Festplatte benötigt wird, mehr fehlerhafte Seiten in den Arbeitsspeicher geschrieben werden.
Dies kann zu viel RAM für den Raspberry Pi bedeuten, daher müssen Sie möglicherweise den Arbeitsspeicher senken dirty_expire_centisecs
. Beachten Sie, dass die Verwendung von kleinen Werten die Reaktionsfähigkeit des Systems beeinträchtigen kann, da Sie fast synchron E / A erhalten.
Eine ausführlichere Erklärung dazu, wie dies funktioniert: https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/