The Hidden I/O Bottleneck Lurking in Your Linux System
The Hidden I/O Bottleneck Lurking in Your Linux System
Have you ever tuned vm.dirty_ratio? If not, your Linux system might be quietly throttling your disk performance without you noticing. 😬
I took a look at a small RHEL 10 VM and found this:
What does this mean?
-
✅ When dirty pages reach 10% of RAM, Linux starts flushing data to disk in the background.
-
🚨 At 30%, the kernel blocks new writes until it flushes dirty data to avoid overloading the system.
On this VM with 951MiB RAM, that translates to:
-
Background flush kicks in at about 95MiB of dirty data.
-
A hard stop happens at around 285MiB.
If you’re running a logging-heavy app or working with slow storage, expect those sudden latency spikes. ⚡
Quick tip to smooth out I/O spikes:
-
Set
dirty_ratioto 15 -
Set
dirty_background_ratioto 5
This simple adjustment can prevent unexpected stalls, especially on memory-limited or I/O-sensitive systems.
Remember — better performance isn’t always about more RAM or faster CPUs. Sometimes it’s about mastering how your system manages data flow behind the scenes.