Jonathan
Jonathan

Reputation: 16349

Should I use thin or unicorn on Heroku Cedar

I recently 'upgraded' my app to the cedar platform on Heroku. By default, I am using thin as a web server. But I have always been tempted to use unicorn for concurrency and having my dyno dollar go father. But I worry there are some gotchas in using something other than Thin.

Does anyone have real-life experience with this decision?


Notes:

I want to know reasons why everyone shouldn't do this

Upvotes: 47

Views: 10463

Answers (4)

ChrisPhoenix
ChrisPhoenix

Reputation: 1090

If you use Thin, and your code doesn't clear requests very quickly, then you're in trouble - since Heroku uses random routing, requests will stack up on a blocked dyno even if there are free dynos. Using Unicorn seems better, if you can handle the memory hit, because it's less likely that all of your forks will get slow requests at the same time. It doesn't solve Heroku's random-routing problem, but it should help a lot.

Links and explanations in this answer:

https://stackoverflow.com/a/19965981/1233555

Upvotes: 0

Emmanuel
Emmanuel

Reputation: 254

Heroku has just written a post about using Unicorn : https://blog.heroku.com/archives/2013/2/27/unicorn_rails

I'll try it now, it seems like it's the way to go, both for performance and cost saving.

Upvotes: 6

Jonathan
Jonathan

Reputation: 16349

Update -- 3 months later.

I have been using unicorn in production for 3 months, and I have been very pleased. I use 4 unicorn workers per dyno.

One thing you do need to keep an eye out for is memory consumption and leakage. In effect instead of having 512MB of memory per dyno -- you have that divided by the number of heroku workers. But keeping that in mind -- it has been a great cost saver

Upvotes: 28

John Beynon
John Beynon

Reputation: 37507

No reason not to do it - I use Unicorn on Heroku with much success.

Upvotes: 7

Related Questions