I am having some trouble in figuring out how many maximum connections are possible from ActionCable to our Redis instance.
I am investigating this because we get this
ERR max number of clients reached error on Heroku whenever connections on Redis cross over 40.
I saw that ActionCable has around 11 or even 15 connections sometimes when I do
CLIENT LIST on Redis CLI.
This is our configuration:
- Heroku Web Dynos - 4
- Puma Workers - 2 (per dyno)
- Puma Threads - 5 (per Puma worker)
I also tried changing
config.action_cable.worker_size to 1 and reducing the Puma Threads to just 1. Even then I see around 9 connections from ActionCable to Redis.
Note that all of these ActionCable connections have a relatively small “age” and it’s not like some connection stays persistent even if I restart the dynos.
So my question is - how many maximum Redis connections can we expect from Action Cable?