Messages in this thread |  | | | From | Al Boldi <> | | Subject | Re: [RFC] ext3: per-process soft-syncing data=ordered mode | | Date | Wed, 30 Jan 2008 09:04:48 +0300 | |
Jan Kara wrote:
> > Chris Snook wrote:
> > > Al Boldi wrote:
> > > > This RFC proposes to introduce a tunable which allows to disable
> > > > fsync and changes ordered into writeback writeout on a per-process
> > > > basis like this:
> > > >
> > > > echo 1 > /proc/`pidof process`/softsync
> > >
> > > This is basically a kernel workaround for stupid app behavior.
> >
> > Exactly right to some extent, but don't forget the underlying
> > data=ordered starvation problem, which looks like a genuinely deep
> > problem maybe related to blockIO.
>
> It is a problem with the way how ext3 does fsync (at least that's what
> we ended up with in that konqueror problem)... It has to flush the
> current transaction which means that app doing fsync() has to wait till
> all dirty data of all files on the filesystem are written (if we are in
> ordered mode). And that takes quite some time... There are possibilities
> how to avoid that but especially with freshly created files, it's tough
> and I don't see a way how to do it without some fundamental changes to
> JBD.
Ok, but keep in mind that this starvation occurs even in the absence of
fsync, as the benchmarks show.
And, a quick test of successive 1sec delayed syncs shows no hangs until about
1 minute (~180mb) of db-writeout activity, when the sync abruptly hangs for
minutes on end, and io-wait shows almost 100%.
Now it turns out that 'echo 3 > /proc/.../drop_caches' has no effect, but
doing it a few more times makes the hangs go away for while, only to come
back again and again.
Thanks!
--
Al
|  |