[Workaround] ZEO client with 100%+ CPU usage on Plone 6 Classic-UI

My Projekt runs on Ubuntu 20.04 and Python 3.10.9 with Plone 6.0-latest (Classic-UI) - nginx/varnish/haproxy with 4 zeoclients - default wsgi threads 4.

After some content modifications the zeoclient(s) starts to have a CPU usage > 100%

I dumped the threads of such a zeoclients with py-spy and got this:

py-spy

Any ideas whats going on here?

Yes, we also see that and reported it here:

and here:

The workaround that worked for us was to set:

[instance]
http-fast-listen = off

Let us know if this fixes your issue as well :slight_smile:

4 Likes

Thanks! Looks good so far ... running now for an hour without any CPU issues. I'll keep an eye on that.

After one day running I can report, that there are no more clients with 100% CPU usage. I'll mark this as solved.

1 Like

But maybe Zope should change the code as the waitress developer outlined?

Yes ... marked as "Workaround" :wink:

1 Like

hum ... today it popped up again ... I've commented here 100% CPU on all instances when http-fast-listen is enabled · Issue #188 · plone/plone.recipe.zope2instance · GitHub ... maybe there are more hints on this.

After some debugging sessions and hints (see the github issue 100% CPU on all instances when http-fast-listen is enabled · Issue #188 · plone/plone.recipe.zope2instance · GitHub) I ended up getting rid of waitress and trying pyruvate WSGI Server (@tschorr is the author) using this little recipe examples/plone52 · main · Thomas Schorr / pyruvate · GitLab which also works for the latest Plone 6/py3.11.