Назад | Перейти на главную страницу

Определение максимального количества потоков Rails и размера пула базы данных с помощью Puma и NGINX

Я заметил, что размер пула по умолчанию для приложения Rails 5, использующего Puma, равен:

<%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

Это означает, что вы можете установить максимальное количество потоков в качестве переменной среды или по умолчанию будет 5 подключений к базе данных.

Я видел некоторые приложения, которые используют около 600 в качестве ограничения для пула соединений, что заставляет меня думать, что оно действительно не связано с потоками, но, похоже, оно используется для поддержания производительности на зеленом уровне.

Какова логика определения максимального количества потоков, связано ли это с архитектурой процессора?

Полностью ли пул подключений к базе данных зависит от потоков, или я могу сохранить некоторую гибкость при большой загрузке пользователей (около 20 000)?