Supervisor / supervisor

Supervisor process control system for Unix (supervisord)
http://supervisord.org
Other
8.46k stars 1.24k forks source link

high CPU usage and epoll Poller #1515

Closed aleph0naught closed 2 years ago

aleph0naught commented 2 years ago

Hi!

We found high CPU consumption (our java application 70%, supervisor 30%) when using supervisor After running strace, it turned out that this consumption is associated with redirecting application's stdout to log file - supervisor using system calls read/write/select in python2 and poll in python3 - and apparently the main cpu time is spent on select syscall. Also we can't use kqueue since we use ubuntu

We need logs, so we want to reduce CPU consumption without turning them off So far, the only thing that comes to mind is using epoll instead of select/poll to wait for descriptors in the hope that it will help

Are there any plans to add epoll to pollers list? If so, when will it happen? And if not, is it worth adding its support on my own? Are there any pitfalls here?

Or maybe you can suggest how to solve this problem in some other way?

aleph0naught commented 2 years ago

https://github.com/Supervisor/supervisor/issues/807

P.S: I found this issue, but I don't see solution to our problem there

mnaberez commented 2 years ago

Duplicate of #807