Scott,

This looks more like " bug#*6596237 Stop looking and start ganging 
<http://monaco.sfbay/detail.jsf?cr=6596237>".
*
What version of Solaris are the production servers running (S10 or 
Opensolaris) ?

Thanks and regards,
Sanjeev.

Scott wrote:
> Hello,
>
> I have several ~12TB storage servers using Solaris with ZFS.  Two of them 
> have recently developed performance issues where the majority of time in an 
> spa_sync() will be spent in the space_map_*() functions.  During this time, 
> "zpool iostat" will show 0 writes to disk, while it does hundreds or 
> thousands of small (~3KB) reads each second, presumably reading space map 
> data from disk to find places to put the new blocks.  The result is that it 
> can take several minutes for an spa_sync() to complete, even if I'm only 
> writing a single 128KB block.
>
> Using DTrace, I can see that space_map_alloc() frequently returns -1 for 
> 128KB blocks.  From my understanding of the ZFS code, that means that one or 
> more metaslabs has no 128KB blocks available.  Because of that, it seems to 
> be spending a lot of time going through different space maps which aren't 
> able to all be cached in RAM at the same time, thus causing bad performance 
> as it has to read from the disks.  The on-disk space map size seems to be 
> about 500MB.
>
> I assume the simple solution is to leave enough free space available so that 
> the space map functions don't have to hunt around so much.  This problem 
> starts happening when there's about 1TB free out of the 12TB.  It seems like 
> such a shame to waste that much space, so if anyone has any suggestions, I'd 
> be glad to hear them.
>
> 1) Is there anything I can do to temporarily fix the servers that are having 
> this problem? They are production servers, and I have customers complaining, 
> so a temporary fix is needed.
>
> 2) Is there any sort of tuning I can do with future servers to prevent this 
> from becoming a problem?  Perhaps a way to make sure all the space maps are 
> always in RAM?
>
> 3) I set recordsize=32K and turned off compression, thinking that should fix 
> the performance problem for now.  However, using a DTrace script to watch 
> calls to space_map_alloc(), I see that it's still looking for 128KB blocks 
> (!!!) for reasons that are unclear to me, thus it hasn't helped the problem.
>
> Thanks,
> Scott
>  
>  
> This message posted from opensolaris.org
> _______________________________________________
> zfs-discuss mailing list
> zfs-discuss@opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
>   


-- 
Solaris Revenue Products Engineering,
India Engineering Center,
Sun Microsystems India Pvt Ltd.
Tel:    x27521 +91 80 669 27521 

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to