Действительно нужен пул соединений с БД для рельсов единорога? - PullRequest
7 голосов
/ 29 декабря 2011

Я не могу найти документ, описывающий эффект пула соединений с базой данных для единорог .

Единорог разветвляется на несколько рабочих процессов.Я настроил prefork, и крайне важно не делить соединения с базой данных между работниками, поэтому я сбрасываю соединения с БД после fork.

В моем приложении rails есть 8 работников на сервер, а размер пула в database.yml равен 5, тогда явидел 45 подключений к mysql.

Каждый рабочий однопоточный, который обрабатывает 1 запрос за раз.SQL-запросы должны быть блокирующими.Кажется, остальные 4 соединения бесполезны?Можно ли установить размер пула в 1 для лучшей производительности?

1 Ответ

7 голосов
/ 30 декабря 2011

Поскольку каждый работник может обслуживать только 1 запрос за раз, каждый работник может также использовать только одно соединение за раз, и при этом больше ничего не получается.Если вы установите размер пула в 1, каждый рабочий Unicorn должен открыть одно соединение.Скорее всего, вы не получите заметного увеличения производительности, но сэкономите ресурсы, уменьшив количество открытых соединений.

...