Heavy system load by pagedaemon
peterjeremy at optushome.com.au
Fri May 12 11:28:25 UTC 2006
On Fri, 2006-May-12 13:07:41 +0300, Iasen Kostov wrote:
>On Fri, 2006-05-12 at 17:17 +1000, Peter Jeremy wrote:
>> 'page daemon wakeups' counts the number of times that the pagedaemon
>> is woken up due to a page shortage.
I think I was not correct here. It looks like the pagedaemon can be
woken up (via vm_pages_needed) even if vm_pages_needed is still zero.
>> How about posting a complete 'vmstat -s'.
I spoke too soon. The relevant counters are in vm.stats.vm.* and not
reported by vmstat.
>But there is something else:
>"collecting pv entries -- suggest increasing PMAP_SHPGPERPROC" x 5 times
>(which is it maximum number of this warrnings).
The call tree for this is
vm_pageout() with wakeup(&vm_pages_needed) && vm_pages_needed == 0
vm_pageout_pmap_collect() with pmap_pagedaemon_waken non-zero.
vm_pageout_pmap_collect() runs with Giant held and, based on a very
brief check, looks quite expensive.
>When I checked sysctl vm.zone I saw "PV ENTRY" going near to it's
>maximum right before the lock happen and then after the lock by
>pagedaemon it go down to ~1000
You mentioned eaccelerator and having lots of users and httpd. I
suspect the comment in NOTES is relevant for you and you need to
increase PMAP_SHPGPERPROC as recommended:
# Set the number of PV entries per process. Increasing this can
# stop panics related to heavy use of shared memory. However, that can
# (combined with large amounts of physical memory) cause panics at
# boot time due the kernel running out of VM space.
# If you're tweaking this, you might also want to increase the sysctls
# "vm.v_free_min", "vm.v_free_reserved", and "vm.v_free_target".
# The value below is the one more than the default.
More information about the freebsd-hackers