One of the maintainers states:
The only time you should run more than 1 worker per core is if you are running with 1 thread in the threadpool (e.g. threads 1,1)
Heroku is a special case. As their chart says, you are not actually getting 1 vCPU - it is “n/a”. That’s because eco/basic/standard dynos on Heroku are actually cpu-timesliced across 8 vCPUs (not guaranteed, this is just how it is implemented last time I checked). So on Heroku, their advice makes sense, because there is actually more than 1 logical core available.
For the Standard compute tier on Render - would we be configuring Puma to run as one worker on a single core or more because we’re on shared vCPU?