svn commit: r223622 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Martin Matuska mm at FreeBSD.org
Tue Jun 28 06:32:36 UTC 2011


Author: mm
Date: Tue Jun 28 06:32:35 2011
New Revision: 223622
URL: http://svn.freebsd.org/changeset/base/223622

Log:
  Disable vdev cache (readahead) by default.
  
  The vdev cache is very underutilized (hit ratio 30%-70%) and may consume
  excessive memory on systems with many vdevs.
  
  Illumos-gate revision:	13346
  
  Obtained from:	Illumos (Bug #175)
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c	Tue Jun 28 06:26:03 2011	(r223621)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c	Tue Jun 28 06:32:35 2011	(r223622)
@@ -71,9 +71,16 @@
  * 1<<zfs_vdev_cache_bshift byte reads by the vdev_cache (aka software
  * track buffer).  At most zfs_vdev_cache_size bytes will be kept in each
  * vdev's vdev_cache.
+ *
+ * TODO: Note that with the current ZFS code, it turns out that the
+ * vdev cache is not helpful, and in some cases actually harmful.  It
+ * is better if we disable this.  Once some time has passed, we should
+ * actually remove this to simplify the code.  For now we just disable
+ * it by setting the zfs_vdev_cache_size to zero.  Note that Solaris 11
+ * has made these same changes.
  */
 int zfs_vdev_cache_max = 1<<14;			/* 16KB */
-int zfs_vdev_cache_size = 10ULL << 20;		/* 10MB */
+int zfs_vdev_cache_size = 0;
 int zfs_vdev_cache_bshift = 16;
 
 #define	VCBS (1 << zfs_vdev_cache_bshift)	/* 64KB */


More information about the svn-src-all mailing list