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@clickspace.com>
ClickSpace Interactive Inc.