On Tue, Dec 29, 2015 at 08:12:40PM -0500, Rick Macklem wrote: > Hi, > > I'm been playing with the FreeBSD port of GlusterFS and it seems > to be working ok. I do notice that the daemons use a lot of CPU, > even when there is nothing to do (no volumes started, etc). > When I ktrace the daemon, I see a small number of nanosleep() and > select() syscalls and lots of poll() syscalls (close to 1000/sec). > > Looking at libglusterfs/src/event-poll.c, I find: > ret = poll(ufds, size, 1); > in a loop. The only thing the code seems to do when poll() times > out is a call to event_dispatch_poll_resize(). > > So, is it necessary to call event_dispatch_poll_resize() 1000 times > per second? > Or is there a way to make event_dispatch_poll_resize() return quickly > when there is nothing to do? I do not think this is critical. A longer timeout should be well acceptable. > I'm guessing that Linux uses the event-epoll stuff instead of event-poll, > so it wouldn't exhibit this. Is that correct? Well, both. most (if not all) Linux builds will use event-poll. But, that calls epoll_wait() with a timeout of 1 millisecond as well. > Thanks for any information on this, rick > ps: I am tempted to just crank the timeout of 1msec up to 10 or 20msec. Yes, that is probably what I would do too. And have both poll functions use the same timeout, have it defined in libglusterfs/src/event.h. We could make it a configurable option too, but I do not think it is very useful to have. Could you file a bug and/or send a patch for this? Thanks, Niels
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://www.gluster.org/mailman/listinfo/gluster-devel