2

У меня 20 капель на DO. У меня есть задача rake, которая создает изображения. Изображения преобразуются с помощью paperclip/imagemagick. Я добавил paperclip_delayed, который использует delayed_job, и в качестве фонового работника я добавил Sidekiq.Sidekiq - Процессы или потоки? Что наиболее эффективно?

Так что с sidekiq я могу добавить дополнительных работников или установить несколько потоков.

Что лучше с точки зрения производительности? Лучше ли иметь небольшое количество процессов и добавлять много потоков или наоборот? Или это не имеет значения до тех пор, пока я не перешагнум количество ядер?

ответ

3

«Рабочий» - это туманный термин: используйте процесс или нить.

С обработкой изображений, ваш ограничивающий фактор, скорее всего, диск ввода-вывода, если у вас нет фантастических SSD на этой капле. Потоки ограничивают вас одним ядром, если процедуры обработки изображений не обходятся примерно на mini_magick. Если это так, должен быть достаточно одного процесса с 25 потоками.