sysctl: tune dirty data writeback policies (#135)

The existing policy sets dirty_background_bytes to 5, which is erroneously
too small that incurs write amplification and read starvations.
Considering a raspi with 2 GiB of RAM, this is 43 million times smaller
than the default Linux policy, which is 10%.

Considering that this will be deployed to mostly read-only system with
emphasis on data integrity (hence needing tighter data writeback), set
this to 256 KiB.

Continuing addressing the overly excessive data writeback policies, also
bump the dirty_writeback_centisecs from 250ms to 1000ms. Any dirty data
written in the past 1 second will be written to the storage.

Signed-off-by: Juhyung Park <qkrwngud825@gmail.com>
This commit is contained in:
Juhyung Park 2023-05-31 23:59:23 +09:00 committed by GitHub
parent d608b6e010
commit 7f8bb428d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,7 @@
# https://github.com/raspberrypi/linux/issues/1753 # Overly-aggressive data writeback policies to minimize the chance of data corruption
vm.dirty_background_bytes = 5 # Start dirty data writeback when it exceeds 256 KiB or 1s has passed
vm.dirty_writeback_centisecs = 25 vm.dirty_background_bytes = 262144
vm.dirty_writeback_centisecs = 100
# https://groups.google.com/g/meetecho-janus/c/xoWIQfaoJm8 # https://groups.google.com/g/meetecho-janus/c/xoWIQfaoJm8
net.core.rmem_default = 500000 net.core.rmem_default = 500000