Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Postgresql 8.3: stats collector process eat all CPU all time

69 views
Skip to first unread message

Maxim Boguk

unread,
Apr 9, 2008, 11:14:57 AM4/9/08
to
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

--
Sent via pgsql-general mailing list (pgsql-...@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Tom Lane

unread,
Apr 9, 2008, 1:39:29 PM4/9/08
to
Maxim Boguk <mbo...@masterhost.ru> writes:
> 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

So why is the poll() always returning EINTR? I think you're looking
at a kernel bug.

regards, tom lane

0 new messages