Re: Possible Bug: high CPU usage for stats collector in 8.2
От | Andrew Dunstan |
---|---|
Тема | Re: Possible Bug: high CPU usage for stats collector in 8.2 |
Дата | |
Msg-id | 45E73575.90706@dunslane.net обсуждение исходный текст |
Ответ на | Re: Possible Bug: high CPU usage for stats collector in 8.2 (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Possible Bug: high CPU usage for stats collector in 8.2
|
Список | pgsql-hackers |
Tom Lane wrote: > Darcy Buskermolen <darcyb@commandprompt.com> writes: > >> I'm observing high CPU usage (95%) of a 2.6GHz opteron by the stats >> collector on an 8.2.3 box investigation has lead me to belive that the >> stats file is written a lot more often that once every 500ms the >> following shows this behavior. >> > > Looks like someone broke the usage of PGSTAT_STAT_INTERVAL between 8.1 > and 8.2 ... it's waiting 500 microseconds, not the intended 500 > milliseconds. > Good catch. I am also a bit dubious about this code: input_fd.fd = pgStatSock; input_fd.events = POLLIN | POLLERR; input_fd.revents = 0; if (poll(&input_fd, 1, PGSTAT_SELECT_TIMEOUT * 1000) < 0) { if (errno == EINTR) continue; ereport(ERROR, (errcode_for_socket_access(), errmsg("poll() failedin statistics collector: %m"))); } got_data = (input_fd.revents != 0); AIUI you are not supposed to put POLLERR in the events field. We should probably be setting POLLIN | POLLPRI, and we should also probably check exactly what event was returned in revents. cheers andrew
В списке pgsql-hackers по дате отправления: