[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: how to counteract slowdown



"Patrick C. F. Ernzer" wrote:
> 
> Hi,
> 
> --On Tuesday, November 13, 2001 09:04:19 PM -0800 Andrew Morton
> <akpm zip com au> wrote:
> 
> [...]
> > oops.  When a transaction reaches 25% of the journal size,
> > we force a commit.
> >
> > When the journal is 50% to 75% full, we force a checkpoint (that is,
> > write buffers from earlier transactions out so we can release the
> > journal space).
> >
> >>
> >> When the journal hits 25% used, start async write-out.
> >>   -- this should also be the case for the kjournald old data. :)
> >> When the journal hits 75% used, start sync write-out.
> >> When the usage drops to 50% (or so), stop the sync write-out but
> >>    continue the async write-out.
> >
> > It's sort-of like that now.  At 50%-70% occupancy we do a synchronous
> > checkpoint.
> 
> I'm not sure I get what you mean. Does this mean that there are sync writes
> until the journal is empty or until it is less then 50% full?

Until it's empty, I'm afraid.   If we determine that there is
not sufficient room in the journal we write out _all_ checkpointable
data.

> I'm still puzzeled that sync writes would make a machine completely
> unusable for 30 seconds.

Well, it's a guess.  But if the machine has a lot of memory
and a large journal, it could be spending that long doing
checkpointing.

It sounds like it's proceeding at about a megabyte per second,
which is slow, but not inconceivable if the metadata is spread
around the disk.

How large is the journal?  How large is the filesystem?

The /proc/sys/vm/bdflush test should be pretty easy - no need
to reboot or anything.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]