zfs very poor performance compared to ufs due to lack of cache?

jhell jhell at DataIX.net
Mon Sep 6 13:39:44 UTC 2010


On 09/06/2010 09:26, Andriy Gapon wrote:
> on 06/09/2010 16:23 Steven Hartland said the following:
>> ----- Original Message ----- From: "Andriy Gapon" <avg at icyb.net.ua>
>>>> No joy, still drops down to arc_min even with those two patches and changing
>>>> to vm_paging_needed from the post Artem mentioned:
>>>> http://lists.freebsd.org/pipermail/freebsd-hackers/2010-August/032731.html
>>>>
>>>> So I suspect if I hadn't put in a high arc_min as well it would be back down
>>>> at silly low levels.
>>>
>>> But we don't really know this, do we?
>>>
>>> I think that it would be useful for you and perhaps for us, if you'd set up
>>> monitoring (and graphing) of key memory-related parameters.
>>> E.g. at least the following sysctls:
>>> kstat.zfs.misc.arcstats.size
>>> vm.stats.vm.v_pdwakeups
>>> vm.stats.vm.v_cache_count
>>> vm.stats.vm.v_inactive_count
>>> vm.stats.vm.v_active_count
>>> vm.stats.vm.v_wire_count
>>> vm.stats.vm.v_free_count
>>>
>>> This would allow to see dynamics of memory consumption and correlation with
>>> pagedaemon events.
>>
>> Now monitoring these each minute to an rrd and text file and updated 8-STABLE
>> with the following patches:
>> http://people.freebsd.org/~mm/patches/zfs/v15/stable-8-v15.patch
>> http://people.freebsd.org/~mm/patches/zfs/zfs_metaslab_v2.patch
>> http://people.freebsd.org/~mm/patches/zfs/zfs_abe_stat_rrwlock.patch
>> and then the needfree.patch I already posted.
> 
> Cool!
> 
> What about vm_paging_needed() patch?
> 

Ugh! I keep forgetting about this one! and confusing it for the needfree
change. /Ugh!

It is attached as well.

-- 

 jhell,v
-------------- next part --------------
diff -r 1f75c636f0d4 sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Mon Sep 06 09:32:32 2010 -0400
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Mon Sep 06 09:36:57 2010 -0400
@@ -2164,7 +2164,7 @@
 	 * If pages are needed or we're within 2048 pages
 	 * of needing to page need to reclaim
 	 */
-	if (vm_pages_needed || (vm_paging_target() > -2048))
+	if (vm_paging_needed())
 		return (1);
 
 #if 0


More information about the freebsd-fs mailing list