3 ms·
If anyone from Gitlab happens to read this, how is ActionCable working out for you on gitlab.com? If you're not from Gitlab but use ActionCable at moderate scal
by nickjj 6y ago
If anyone from Gitlab happens to read this, how is ActionCable working out for you on gitlab.com? If you're not from Gitlab but use ActionCable at moderate scale feel free to share your story too!
I casually read a few PRs and issues from a year ago where you discussed introducing ActionCable but it looks like a full blown report hasn't been written up on how it panned out, but I do see it being referenced in your HTML.
Concerns were mainly around memory usage, such as it growing to pretty huge sizes even with idle connections. I know there were lots of horror stories of major memory usage early on. The memory growth climbed very quickly with active connections, but I wonder now with Rails 6.1+ if those issues have been ironed out.
- sytse 6y agoLast thing I heard we're no longer worried about memory usage. We where thinking about using AnyCable to address memory concerns but that is off the table at the moment because it isn't an issue anymore.
- nickjj 6y agoThanks. Are you no longer concerned because memory usage dropped significantly? How's the overall latency? I remember seeing some benchmarks where ActionCable was using like 1-2gb of memory for around a thousand active connections with 95% percentile latency in the multi-second range to broadcast a message. I do see AnyCable makes huge improvements here and I love the idea of it but also not too sure how backwards compatible it is with Hotwire / Turbo Streams. I've always thought Rails was good / fast enough but the ActionCable stuff worries me a little because a single low end VPS could happily handle a very solid amount of traffic (tens of thousands of daily page views, etc.) but once you start factoring in websocket connections that changes everything. Suddenly pages that have completed the request / response cycle are still on the hook to keep a ws connection open even if they're not doing anything that causes a state change.