Dirty/Writeback fields in /proc/meminfo affected by 20d74bf29c
From: Tomas Vondra
Date: Sun Jul 31 2016 - 22:36:48 EST
Hi,
While investigating a strange OOM issue on the 3.18.x branch (which
turned out to be already fixed by 52c84a95), I've noticed a strange
difference in Dirty/Writeback fields in /proc/meminfo depending on
kernel version. I'm wondering whether this is expected ...
I've bisected the change to 20d74bf29c, added in 3.18.22 (upstream
commit 4f258a46):
sd: Fix maximum I/O size for BLOCK_PC requests
With /etc/sysctl.conf containing
vm.dirty_background_bytes = 67108864
vm.dirty_bytes = 1073741824
a simple "dd" example writing 10GB file
dd if=/dev/zero of=ssd.test.file bs=1M count=10240
results in about this on 3.18.21:
Dirty: 740856 kB
Writeback: 12400 kB
but on 3.18.22:
Dirty: 49244 kB
Writeback: 656396 kB
I.e. it seems to revert the relationship. I haven't identified any
performance impact, and apparently for random writes the behavior did
not change at all (or at least I haven't managed to reproduce it).
But it's unclear to me why setting a maximum I/O size should affect
this, and perhaps it has impact that I don't see.
regards
Tomas