Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 May 2012 22:54:43 +0200
From:      Kees Jan Koster <kjkoster@gmail.com>
To:        Freddie Cash <fjwcash@gmail.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: FreeBSD 9.0 hangs on heavy I/O
Message-ID:  <0B516D83-3CFA-4263-8052-90CF579E7FA8@gmail.com>
In-Reply-To: <CAOjFWZ7964oeTNZqADj4cRt3kkdOf5Mwyx8GQDnJnZ8vyONckg@mail.gmail.com>
References:  <BD5D6BB6-8CFF-456A-B03E-05454EB03AB6@gmail.com> <CAOjFWZ40LX%2B8Lw15mHDG8F3nN0aex5EpqVdjPxRPS89t1Fqkiw@mail.gmail.com> <CAOjFWZ7964oeTNZqADj4cRt3kkdOf5Mwyx8GQDnJnZ8vyONckg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Dear Freddie,

>> You may want to play around with gshed, the GEOM Scheduler.
>>=20
>> Matt Dillon did a bunch of tests comparing FreeBSD+UFS to
>> DragonflyBSD+HAMMER and found that FreeBSD starves read threads in
>> order to satisfy write threads (or the other way around?).  But,
>> adding gsched into the mix helped things immensely, allowing mixed
>> reads/writes to better shares disk I/O resources.
>>=20
>> I'll see if I can dig up a link to his testing e-mail messages.
>=20
> Here's the post, part of a thread on benchmarking RAID controllers:
>=20
> http://leaf.dragonflybsd.org/mailarchive/kernel/2011-07/msg00034.html


*cloink* /me goes to pick my jam off of the floor. I can insert a I/O =
scheduler in full flight? Ok. I need to adjust my mental image of the =
world a bit.

I just played with the examples on a test machine and the effect is =
quite visible. I ran a CVS checkout of the ports collection concurrent =
with dd writing a massive file. Insert scheduler -> CVS update is =
faster; destroy scheduler -> CVS update crawls. This is so easy it's =
almost scary.

The behaviour that Matt describes is what I thought I was seeing too: =
write a *lot* and it becomes hard to read from the disk. In my system, =
writing data is largely asynchronous and can lag the actual arrival of =
data by as much as a few minutes. Reads are always synchronous to a user =
request and need to be served asap. Some writes are database writes and =
they should be services quickly too.

This is definitively something I need to look into. Thank you for the =
reference.
--
Kees Jan

http://java-monitor.com/
kjkoster@kjkoster.org
+31651838192

Change is good. Granted, it is good in retrospect, but change is good.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0B516D83-3CFA-4263-8052-90CF579E7FA8>