Define best default values for Puma in Omnibus
Now that we have experimental support for Puma I think it would be good to define what we should have for eventual defaults when this hits GA. It will probably take some testing to figure out the best settings.
I recently attended a RoR performance workshop put on by Nate Berkopec and he gave some anecdotal guidance on number of processes and threads that he has found to be best in production. He recommends:
- Up to 1.25x number of CPU cores for processes
- 3-5 threads per worker
After this point, from his experience, there are diminishing returns. He also notes that there is such a thing as too many threads.
@stanhu Since you worked on the Omnibus support I think you might be interested in this conversation. Maybe you've also done some testing to learn what might be appropriate? I see we have 16 max threads set as the default.
Also, should min and max threads be equal for production? I assume there's some small performance hit to spinning up another thread?