Tom Lane wrote:
Darcy Buskermolen <[EMAIL PROTECTED]> 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() failed in 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




---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to