Long story short, Celluloid versions 0.17+ have a memory leak.
The Reason behind this is that completed Celluloid threads are never cleaned up.
We have discovered that our Sidekiq process is leaking memory when we have a lot of tasks that were failed because of exceptions. Unfortunately, having a lot of failed tasks is specific for our application — we do have a lot of small queued jobs to work with social network APIs and other external services.
You can reproduce the problem with this: https://gist.github.com/gazay/3aa78e515ab05cb79f76
Dead jobs rss alive/total 1: 15MB (Fibers: 4/4, Threads: 3/3) 1000: 52MB (Fibers: 1003/2002, Threads: 3/1002)
Initial issue is described here: celluloid/celluloid#670
The fix is is included in Celluloid 0.17.2 that was released on September 30th, 2015.