FreeBSD 9.0 hangs on heavy I/O

Kees Jan Koster kjkoster at gmail.com
Tue May 29 20:54:57 UTC 2012


Dear Freddie,

>> You may want to play around with gshed, the GEOM Scheduler.
>> 
>> 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.
>> 
>> I'll see if I can dig up a link to his testing e-mail messages.
> 
> Here's the post, part of a thread on benchmarking RAID controllers:
> 
> 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 at kjkoster.org
+31651838192

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



More information about the freebsd-stable mailing list