On 3-Dec-07, at 3:51 PM, A.M. wrote:
On Dec 3, 2007, at 4:16 PM, Brian Wipf wrote:
We have a dual 3.0 GHz Intel Dual-core Xserve, running Mac OS X
10.5.1 Leopard Server and PostgreSQL 8.2.5. When we disconnect
several clients at a time (30+) in production, the CPU goes through
the roof and the server will hang for many seconds where it is
completely non-responsive. It seems the busier the server is, the
longer the machine will hang.
You should run Shark or Instruments to determine where the system is
getting hung up. You will likely need to install developer tools. If
you need help reading the profilers' output, please join up on an
Apple list.
As per A.M.'s suggestion, I have run a time profile in Shark to get
some idea of what's going on when the server hangs when disconnecting
clients.
Nearly 100% of the CPU is going into pmap_remove_range. The stack
trace for pmap_remove_range, viewable within Shark, is:
-> pmap_remove_range
--> pmap_remove
---> vm_map_simplify
----> vm_map_remove
-----> task_terminate_internal
------> exit1
-------> exit
--------> unix_syscall64
---------> lo64_unix_scall
The call taking up the next highest amount of CPU, at 0.1%, is
AtProcExit_Buffers. And its stack trace:
-> AtProcExit_Buffers
--> shmem_exit
---> proc_exit
----> PostgresMain
-----> BackendRun
------> BackendStartup
-------> ServerLoop
--------> PostmasterMain
---------> main
----------> start
Brian Wipf
<brian@xxxxxxxxxxxxxx>
ClickSpace Interactive Inc.
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend