Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Oct 2019 18:39:05 +0000 (UTC)
From:      Andrew Gallatin <gallatin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r354029 - head/sys/vm
Message-ID:  <201910241839.x9OId5gh084129@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gallatin
Date: Thu Oct 24 18:39:05 2019
New Revision: 354029
URL: https://svnweb.freebsd.org/changeset/base/354029

Log:
  Add a tunable to set the pgcache zone's maxcache
  
  When it is set to 0 (the default), a heavy Netflix-style web workload
  suffers from heavy lock contention on the vm page free queue called from
  vm_page_zone_{import,release}() as the buckets are frequently drained.
  When setting the maxcache, this contention goes away.
  
  We should eventually try to autotune this, as well as make this
  zone eligable for uma_reclaim().
  
  Reviewed by:	alc, markj
  Not Objected to by: jeff
  Sponsored by:	Netflix
  Differential Revision:	https://reviews.freebsd.org/D22112

Modified:
  head/sys/vm/vm_page.c

Modified: head/sys/vm/vm_page.c
==============================================================================
--- head/sys/vm/vm_page.c	Thu Oct 24 18:13:26 2019	(r354028)
+++ head/sys/vm/vm_page.c	Thu Oct 24 18:39:05 2019	(r354029)
@@ -216,8 +216,10 @@ vm_page_init_cache_zones(void *dummy __unused)
 {
 	struct vm_domain *vmd;
 	struct vm_pgcache *pgcache;
-	int domain, pool;
+	int domain, maxcache, pool;
 
+	maxcache = 0;
+	TUNABLE_INT_FETCH("vm.pgcache_zone_max", &maxcache);
 	for (domain = 0; domain < vm_ndomains; domain++) {
 		vmd = VM_DOMAIN(domain);
 
@@ -237,7 +239,7 @@ vm_page_init_cache_zones(void *dummy __unused)
 			    sizeof(struct vm_page), NULL, NULL, NULL, NULL,
 			    vm_page_zone_import, vm_page_zone_release, pgcache,
 			    UMA_ZONE_MAXBUCKET | UMA_ZONE_VM);
-			(void)uma_zone_set_maxcache(pgcache->zone, 0);
+			(void)uma_zone_set_maxcache(pgcache->zone, maxcache);
 		}
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910241839.x9OId5gh084129>