Still getting kmem exhausted panic

Andriy Gapon avg at
Tue Sep 28 17:17:58 UTC 2010

on 28/09/2010 19:46 Ben Kelly said the following:
> Hmm.  My server is currently idle with no I/O happening:
>   kstat.zfs.misc.arcstats.c: 25165824
>   kstat.zfs.misc.arcstats.c_max: 46137344
>   kstat.zfs.misc.arcstats.size: 91863156
> If what you say is true, this shouldn't happen, should it?  This system is an i386 machine with kmem max at 800M and arc set to 40M.  This is running head from April 6, 2010, so it is a bit old, though.

Well, your system is a bit old indeed.
And the branch is unknown, so I can't really see what sources you have.
And I am not sure if I'll be able to say anything about those sources.

As to the numbers - yes, with current code I'd expect arcstats.size to go down to
arcstats.c when there is no I/O.  arc_reclaim_thread should do that.

> At one point I had patches running on my system that triggered the pagedaemon based on arc load and it did allow me to keep my arc below the max.  Or at least I thought it did.
> In any case, I've never really been able to wrap my head around the VFS layer and how it interacts with zfs.  So I'm more than willing to believe I'm confused.  Any insights are greatly appreciated.

ARC is a ZFS private cache.
ZFS doesn't use unified buffer/page cache.
So ARC is not directly affected by pagedaemon.
But this is not exactly VFS layer thing.

Andriy Gapon

More information about the freebsd-stable mailing list