Если у вас есть один сервер, я думаю, что главный ключ, помимо всего уже упомянутого, заключается в том, чтобы не экономить на его спецификациях. Попытка получить слишком много, чтобы бежать слишком мало - это всего лишь рецепт катастрофы.
Это также хорошая идея, чтобы monit или God контролировали ваши тонкие экземпляры, я начал с God, но он очень плохо просочился в Ruby 1.8.6, поэтому я перестал использовать его в пользу monit. Я считаю, что Monit написан на C и имеет небольшой объем памяти, поэтому я бы порекомендовал его.
Если все, что вам нужно, чтобы nginx и тонко играли хорошо, кажется, вам нужно рассмотреть все в одном решении, таком как Passenger или LiteSpeed. У меня очень мало опыта работы с ними, поэтому я не могу предложить им никаких финансовых рекомендаций.