Я запускаю sidekiq 5.2.2 на Rails 5.2.1 со следующими настройками в файле sidekiq.yml:
---
retries: 1
:concurrency: 25
staging:
:concurrency: 25
production:
:concurrency: 25
:queues:
- critical
- default
- low
Мой работник добавляет учетные записи, когда создается бухгалтерская книга, так что я не могут задержать интерфейс.Когда я создаю бухгалтерскую книгу на промежуточном сервере или производственном sidekiq, он сразу же начинает действовать.Нагрузка на эти машины очень низкая (0,05).Однако, когда я запускаю тот же тест на моей машине для разработки, я получаю смешанные результаты:
| version | concurrency | Cold | 1st | 2nd | 3rd | Warm |
| | (threads) | | Run | Run | Run | AVG |
|---------+-------------+------+------+------+------+------|
| 5.1.3 | 25 | 0.01 | 0.25 | 3:34 | 0:38 | 1:32 |
| 5.2.2 | 10 | 3:43 | | 0:30 | | |
Нагрузка на мою коробку разработки составляет 6, как минимум.В этой машине для разработки происходит многое.Он имеет 16 процессоров, поэтому эта нагрузка не влияет на работу машины.
Что заставляет sidekiq так сильно колебаться с начинающими работниками на машине для разработки?Может ли это быть загрузка?
Обновление
database.yml
development:
adapter: postgresql
encoding: unicode
database: app_development_<%= ENV['USER'] %>
pool: 5
username: <%= ENV['DATABASE_USER'] %>
password: <%= ENV['PAIS_DATABASE_PASSWORD'] %>
настройки puma.rb
threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
threads threads_count, threads_count
port ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { "development" }
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
plugin :tmp_restart
Procfile: Начало sidekiq с помощью мастера
rails: bundle exec puma -p $RAILS_PORT
worker: bundle exec sidekiq