On Mon, Apr 21, 2014 at 05:46:30PM +0200, Petr Tesarik wrote: > On Mon, 21 Apr 2014 11:19:14 -0400 > Vivek Goyal <vgoyal at redhat.com> wrote: > > > On Fri, Apr 18, 2014 at 09:41:33PM +0200, Petr Tesarik wrote: > > > On Fri, 18 Apr 2014 22:29:12 +0800 > > > "bhe at redhat.com" <bhe at redhat.com> wrote: > >[...] > > > > Instead, I am wondering how the 80% comes from, and why 20% of free > > > > memory must be safe. > > > > > > I believe these 80% come from the default value of vm.dirty_ratio, > > > > Actually I had suggested this 80% number when --cyclic feature was > > implemented. And I did not base it on dirty_ratio. Just a random > > suggestion. > > Hm. OK, you seem to have very good suggestions, even if they are > random. ;-) > > > > which is 20%. In other words, the kernel won't block further writes > > > until 20% of available RAM is used up by dirty cache. But if you > > > fill up all free memory with dirty pages and then touch another (though > > > allocated) page, the kernel will go into direct reclaim, and if nothing > > > can be written out ATM, it will invoke the OOM Killer. > > > > We can start playig with reducing dirty_raio too and see how does it go. > > Or use direct I/O... Is it still broken? May be if that turns out to be an issue. Or just reduce dirty_ratio to say 5 instead of default 20. Different things can be tried once we know what's the root cause of the issue. Thanks Vivek