-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.csiden.org/r/140/
-----------------------------------------------------------
(Updated Dec. 18, 2014, 2:55 a.m.)
Review request for OpenZFS Developer Mailing List.
Changes
-------
feedback from richard
Bugs: 5376
https://www.illumos.org/projects/illumos-gate//issues/5376
Repository: illumos-gate
Description
-------
5376 arc_kmem_reap_now() should not result in clearing arc_no_grow
Reviewed by: George Wilson <[email protected]>
Reviewed by: Christopher Siden <[email protected]>
Original author: Matthew Ahrens
I observed a machine writing data at 200-500MB/s.
mpstat showed that periodically one CPU would become 100% busy for a few
seconds, with heavy crosscall activity. Sometimes the other CPUs would become
idle during this time. I discovered that this was due primarily to
arc_kmem_reap_now()'s calls to kmem_cache_reap_now(), and resulting TLB
shootdowns to remove mappings for freed slabs. There are many opportunities to
improve the kmem/vmem/hat code. However, upon reproducing the issue, I found
that ZFS's
ARC management can also be improved to reduce the frequency and duration of
these xcall storms. The primary observation is that we should not clear
arc_no_grow after calling arc_kmem_reap_now(). One way to prevent this would
be to have an idea of when we are getting low on memory before we actually have
to call arc_kmem_reap_now(), to not allow arc_no_grow to be cleared when we are
low on memory, and to ensure that arc_shrink() will keep us in the "low on
memory" region in the absence of other interactions. Implementing this fix
resulted in much less frequent calls to arc_kmem_reap_now() under a synthetic
workload.
Diffs (updated)
-----
usr/src/uts/common/fs/zfs/arc.c 435096becc75fa0a519424fbe8bd69e4cd2dc50c
Diff: https://reviews.csiden.org/r/140/diff/
Testing
-------
ztest
zfs test suite
running in production on NFS servers
Thanks,
Matthew Ahrens
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer