Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding epoll Poller #1516

Closed
aleph0naught opened this issue Jun 22, 2022 · 3 comments
Closed

Adding epoll Poller #1516

aleph0naught opened this issue Jun 22, 2022 · 3 comments
Labels

Comments

@aleph0naught
Copy link

Hi!

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?


background:
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

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

Its not #807 ticket dublicate! There is no answer to my question there

@ollofx

This comment was marked as off-topic.

@mnaberez

This comment was marked as off-topic.

@mnaberez
Copy link
Member

Are there any plans to add epoll to pollers list?
If so, when will it happen?

There are not currently any plans to add epoll.

And if not, is it worth adding its support on my own? Are there any pitfalls here?

Aside from merging fixes contibuted by users, I haven't been involved in the poller code, so I can't really speak to this. All of the polling code is found in poller.py.

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

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

Its not #807 ticket dublicate! There is no answer to my question there

In #1581, it has been suggested that high CPU usage is caused by polling a wrong file descriptor. If that is also happening in your deployment, then an upcoming version of Supervisor should fix it after #1581 or a variant of it is merged. We are looking for people to test the patch in #1581 if you want to try it.

I'm going to close this because I've attempted to answer the question about epoll and we still have #807 and #1581 open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants