I have a weird issue, that could easily be simple ignorance on my part.

I have a 4vcpu droplet with docker installed. One of the docker containers runs Redis (the bog-standard docker image).

I only use it for a single pub/sub channel at the moment.

I publish from another docker container, and have x number of subscribers, each in their own docker containers.

x is the problem.

I can add up to 4 subscribers and everything works beautifully.

As soon as I add a 5th or more, subscribers start to unsubscribe. It’s not necessarily the last one added, but when I add a 5th, one decides to stop working. If I add code to force it to start monitoring again - it does, but it behaves badly - sometimes missing messages entirely, only to pick them up in what looks like a batch later.

Note: there is ONE message being published per minute - so it’s not like anything’s being hammered here. Both DO monitoring and external monitoring show cpu usage under 20% (often under 10%).

I have no previous experience with redis. Does listening for messages effectively consume a vcpu? Is it a vcpu limit I’m hitting? I’m tempted to resize to a 6vcpu droplet to test out this theory.

Submit an answer

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!