ZFS hang issue and prefetch_disable

Matt Simerson matt at corp.spry.com
Tue Jul 22 22:22:24 UTC 2008


On Jul 22, 2008, at 3:08 PM, Miroslav Lachman wrote:

> Matt Simerson wrote:
>> Symptoms
>> Deadlocks under heavy IO load on the ZFS file system with   
>> prefetch_disable=0.  Setting vfs.zfs.prefetch_disable=1 results in  
>> a  stable system.
>
> [...]
>
>> With vfs.zfs.prefetch_disable=1, a hang will occur within a few  
>> hours  (no more than a day). If I keep the i/o load (measured via  
>> iostat)  down to a low level (< 200 iops) then I still get hangs  
>> but less  frequently (1-6 days).  The only way I have found to  
>> prevent the hangs  is by setting vfs.zfs.prefetch_disable=1.
>
> "With vfs.zfs.prefetch_disable=1, a hang will occur within...", did  
> you realy mean prefetch_disable=1 in this sentence? Your whole e- 
> mail seems that prefetch_disable=1 is good workaround, so I expect  
> you have prefetch_disable=0 previously which causes hangs...

Aye.  That is exactly what I meant.  With vfs.zfs.prefetch_disable=1,  
I get a stable system. With vfs.zfs.prefetch_disable=0 (the default) I  
have frequent deadlocks.

Matt

Rant:  I really wish that variable wasn't named in the negative,  
creating a double negative when prefetch_disable=0. IE, it should be  
named vfs.zfs.prefetch_enable instead.  It's much easier to express in  
English that prefetch_enable=1 means ON and prefetch_enable=0 means  
OFF.  There's also the matter than in some languages, a double or  
triple negative still means the negative case. %-\. I'd rather not  
have to guess what prefetch_disable=1 means. 


More information about the freebsd-fs mailing list