Postgresql 8.3: stats collector process eat all CPU all time

Started by Maxim Bogukabout 18 years ago2 messagesgeneral
Jump to latest
#1Maxim Boguk
mboguk@masterhost.ru

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Maxim Boguk (#1)
Re: Postgresql 8.3: stats collector process eat all CPU all time

Maxim Boguk <mboguk@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