Re: Wired Memory Increasing about 500MBytes per day

From: Mark Johnston <markj_at_freebsd.org>
Date: Tue, 03 Aug 2021 13:47:13 UTC
On Tue, Aug 03, 2021 at 09:38:17AM +0300, Andrey V. Elsukov wrote:
> 02.08.2021 08:00, Özkan KIRIK пишет:
> > Hello,
> > 
> > I'm using FreeBSD stable/12 0f97f2a1857a96563792f0d873b11a16ff9f818c (Jul
> > 25) built.
> > pf, ipfw and ipsec options are built with kernel. The server is used as
> > firewall that squid and snort3 (daq - netmap) is running.
> > 
> > I saw that, wired memory is increasing every day. It's about 500MBytes per
> > day. I'm checking vmstat and top (sorted by res), I couldn't find what is
> > consuming the wired memory.
> > 
> > How can I find that which process or which part of kernel is consuming the
> > wired memory ?
> 
> Hi,
> 
> We noticed the same problem, I'm not sure the exact version, but you can
> check the output:
> # vmstat -z | egrep "ITEM|pgcache"
> 
> The page cache grows until lowmem is not reached. Then it automatically
> cleans and begins to grow again.

The pgcache zones simply provide a per-CPU cache and allocator for
physical page frames.  The sizes of the caches are bounded.  The numbers
of "used" items from the pgcache zones do not really tell you anything
since those pages may be allocated for any number of purposes, including
for other UMA zones.  For instance, if ZFS allocates a buffer page from
its ABD UMA zone, and that zone's caches are empty, UMA may allocate a
new slab using uma_small_alloc() -> vm_page_alloc() -> pgcache zone.

So if there is some wired page leak, the pgcache zones are probably not
directly responsible.