Reputation: 257
Heroku recently announced that cedar-10 will no longer be supported after this year in November. Switching to cedar-14 led to an increase in memory consumption until I experienced R14 "Memory Quota exceeded" errors and had to restart heroku. The same problem with increase in memory usage occured with unicorn before I started using unicorn_worker_killer gem. Is there a known issue with cedar-14 and unicorn/unicorn_worker_killer? I didn't find anything.
Upvotes: 7
Views: 342
Reputation: 10307
Here is a nice link for your 'problem' : http://blog.codeship.com/debugging-a-memory-leak-on-heroku/
It describe perfectly the continous increase in memory over time. The same 'problem' happen with Puma, there is also a Puma Worker Killer Gem
One thing to note is that you can tune your garbage collector Configuration to be more agressive. Just be careful, you can mess pretty everything with a single bad configuration.
There is -at the moment- no magic solution for this problem. We encounter it too in production, however the memory usage sometimes stabilize, just below the limit where swapping start.
As an immediate action, we choose to reduce the number of workers per dyno, reducing it to 2, and increasing the number of dyno dynamically with HireFire.
You have a loot of tools that can help, here is a list we use each days to track expensive queries / allocations :
Good luck, it's not a simple problem to solve and I don't think that there is a universal true solution for it right now.
Upvotes: 2