Re: EXT4-ish "fixes" in UBIFS

From: David Rees
Date: Thu Apr 02 2009 - 22:20:30 EST


On Thu, Apr 2, 2009 at 7:05 PM, Trenton D. Adams
<trenton.d.adams@xxxxxxxxx> wrote:
> On Thu, Apr 2, 2009 at 7:55 PM, David Rees <drees76@xxxxxxxxx> wrote:
>> On Thu, Apr 2, 2009 at 5:28 PM, Trenton D. Adams
>> <trenton.d.adams@xxxxxxxxx> wrote:
>>> Oh, I should have clarified.  It improves performance under heavy
>>> load.  Under normal load, mounting without sync is fine.  What I tend
>>> to do is mount with "remount,rw,sync" when heavy load is starting.
>>> Then my system goes slowly, but latency is good.  Then, when it's all
>>> done (say a big compile, or job, or whatever), I remount without sync
>>> again.
>>>
>>> I'm thinking of writing a script that monitors performance, and
>>> remounts as needed, lol.  WHAT A HACK. hehe.
>>
>> All you're doing here is implementing the lowering of dirty data
>> limits in the VM dynamically based on how long fsyncs take.
>>
>> Linus outlined this specific strategy as "the ideal siutation"
>> somewhere in the depths of "That filesystem thread".
>
> I thought he said it was a HORRIBLE solution. :D  I recall him
> slamming Andrew over it.  Unless you're referring to the kernel
> actually doing it on the fly.

Yes - you are correct - doing it in userspace isn't the best place to
put it - but if you can do it there, the same ideas could then be
pushed into the kernel and further enhanced.

>> Look at the new in 2.6.29 dirty*bytes parameters in
>> Documentation/sysctl/vm.txt for more info.  By lowering those values,
>> you can effectively turn normal writes into synchronous writes which
>> will greatly reduce latency of fsync under heavy write load.
>>
>> In previous kernels you can tweak dirty_ratio and
>> dirty_background_ratio, but they don't have the granularity of the new
>> knobs.  Although if you are talking about just remounting in sync
>> mode, they may work for you at least as a proof of concept. ;-)
>
> dirty_ratio and dirty_background never really had any affect for me.
> I'll look into the other parameters.  Waiting for the checkout again,
> as I am currently under a heavy rsync load (*rolls eyes*).

How low have you set them? Try setting them to 2 and 1 respectively.
It cuts down fsync latencies by a significant amount in my experience.

-Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/