Sidekiq медленный только на разработке машины - PullRequest
0 голосов
/ 27 сентября 2018

Я запускаю 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
...