Date: Mon, 13 Oct 2008 09:21:06 -0400 From: "Bob Johnson" <fbsdlists@gmail.com> To: "Mark Tinguely" <tinguely@casselton.net> Cc: freebsd-questions@freebsd.org Subject: Re: kernel: Approaching the limit on PV entries... Message-ID: <54db43990810130621s63ea1ec9nc085d79b0c230ad6@mail.gmail.com> In-Reply-To: <200810110221.m9B2LNsK047864@casselton.net> References: <48EFE927.6000404@datapipe.com> <200810110221.m9B2LNsK047864@casselton.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10/10/08, Mark Tinguely <tinguely@casselton.net> wrote: >> > vm.pmap.pv_entry_count: 583006 >> > vm.pmap.shpgperproc: 200 >> > vm.pmap.pv_entry_max: 2243305 >> > >> > The system: >> > FreeBSD .... 7.0-RELEASE-p5 FreeBSD 7.0-RELEASE-p5 #0: Wed Oct 1 >> > 07:51:58 UTC 2008 >> > root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 >> > >> > Can someone briefly explain what this is telling me and how to decide >> > which sysctl to increase? I have found some old postings that predate >> > the sysctls that suggested increasing shpgperproc in the kernel >> > configuration, about 50 at a time until the problem goes away, but I >> > still have no clue what that is accomplishing. > > what (simplified): > the pv_entry helps the virtual memory system track physical pages, so a > physical page can be shared with another process or another virtual address. > > In the i386/amd64 the pv_entry entries are allocated in page size "chunks" > on a per process memory map basis. This helps reduce redundant pointers > and overall saves memory. > > "shpgperproc" can be read as "the number of shared pages per proceess". > pv_entry_max is calculated from shpgperproc (and on the amd64, shpgperproc > can be derived from setting the vm.pmap.pv_entry_max). > > On the amd64, the values can be adjusted by sysctl, but on the i386 > the values must be compiled into the kernel. > > There are some automatic adjustments in the calculation of the number > of pv_entry, but the warnings are given early enough to help aid in the > tweaking of the value. The advice of slowly increasing vm.pmap.shpgperproc > is probably the best solution. I would adjust up slower than 50 (25% > increase seems to be pretty high). > > --Mark Tinguely. > Thanks. I'll see what happens. In amd64/7.0 is there any chance running out of pv_entrys would show up as failures in interprocess communication rather than a panic? The original symptom was that certain web pages (or jailed servers, I'm not sure) were unreachable, as if the firewall were misconfigured, until the system was rebooted. I didn't get to look at the system before it was rebooted, and I find very little in the logs to explain what was going on. Thanks again, - Bob fbsdlists@gmail.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54db43990810130621s63ea1ec9nc085d79b0c230ad6>