Approaching the limit on PV entries

Sergey Kandaurov pluknet at gmail.com
Tue Mar 20 15:37:59 UTC 2012


On 22 November 2011 19:29, Mark Saad <nonesuch at longcount.org> wrote:
> Hello All

[found this mail in my drafts, not sure if my answer is still useful]

>  I want to get to the bottom of a warning in dmesg. On 7.2-RELEASE and
> 7.3-RELEASE I have seen the following warning in dmesg.
>
> Approaching the limit on PV entries, consider increasing either the
> vm.pmap.shpgperproc or the vm.pmap.pv_entry_max sysctl.
>
> So looking around I see a few posts here and there about how to tune
> the sysctls to address the warning however I am not 100% sure what
> each value does.
> It appears changing vm.pmap.shpgperproc affects the value of
> vm.pmap.pv_entry_max . Can someone explain the relationship of the two
> sysctls. Also

This is how they are calculated.

pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;

and, respectively,

shpgperproc = (pv_entry_max - cnt.v_page_count) / maxproc;

So, changing one sysctl will change another and vice versa.

> what pitfalls of changing them are.

Not known to me (on amd64 platform).
I have had vm.pmap.shpgperproc=15000 on 8.1 amd64 with 4G RAM
to make some badly written commercial software to work until it
was decommissioned to the scrap.

> Also why would setting
> kern.ipc.shm_use_phys=1  effect the pv entries. Is this supposed to
> lower the pv entries ?

Changing this sysctl with restarting a quite busy PgSQL server helped
me to reduce pv entries from 14M to tens of thousands (though that
could just coincide with decrease in workload).

-- 
wbr,
pluknet


More information about the freebsd-hackers mailing list