Approaching the limit on PV entries
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;
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).
More information about the freebsd-hackers