details:
db version: postgres (PostgreSQL) 8.3.0
OS version: FreeBSD 7.0-RELEASE
stats collector eating whole single CPU last week or so...
TOP lookin like:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
69360 pgsql 1 124 0 22380K 5548K CPU0 1 258.6H 99.02% postgres
where 69360 is:
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
pgsql 69360 100,0 0,1 22380 5548 ?? Rs 20мар08 15513:55,99 postgres: stats collector process (postgres)
Server is dedicated server for DB... under small load so stats collector eat more CPU then all other db activity by
5-10x.
Stats collector itself doing his work (eg i see all required requests in pg_stat_activity and counts work well too).
And stat collector add a lot system load on server.
ktrace/kdump this process show just one sequence:
69360 postgres CALL poll(0x7fffffffd4e0,0x1,0x7d0)
69360 postgres RET poll -1 errno 4 Interrupted system call
69360 postgres CALL poll(0x7fffffffd4e0,0x1,0x7d0)
69360 postgres RET poll -1 errno 4 Interrupted system call
69360 postgres CALL poll(0x7fffffffd4e0,0x1,0x7d0)
69360 postgres RET poll -1 errno 4 Interrupted system call
69360 postgres CALL poll(0x7fffffffd4e0,0x1,0x7d0)
69360 postgres RET poll -1 errno 4 Interrupted system call
69360 postgres CALL poll(0x7fffffffd4e0,0x1,0x7d0)
kdump.out for 1 second size over 10Mbytes.
Look like something wrong going on.
Any idea what happend and how to fix situation (after postgres reboot situation become bad again in few days).
--
Maxim Boguk