Как запустить 50 тыс. Заданий в секунду с редуктором

В соответствии с Сайт Gearman

«16-ядерная машина Intel способна обрабатывать до 50 000 заданий в секунду».

У меня есть балансировщик нагрузки, который перемещает трафик на 4 разных компьютерах. Каждая машина имеет 8 ядер. Я хочу иметь возможность запускать 13 тыс. Заданий на машину в секунду (это определенно больше, чем 50 тыс. Заданий).

Каждая работа занимает от 0,02 до 0,8 мс.

Сколько рабочих мне нужно открыть для этого типа производительности?

Какие шаги мне нужно предпринять, чтобы открыть такое количество работников?

3

Решение

В зависимости от того, какую обработку вы выполняете, это потребует небольших экспериментов и нагрузочного тестирования. Перед началом убедитесь, что у вас есть способ перезагрузить сервер без SSH, так как вы можете легко привязать процессор. Выполните следующие действия, чтобы найти оптимальное количество работников:

  1. Начните с добавления количества рабочих, равного количеству ядер минус один. Если у вас 8 ядер, начните с 7 работников (надеюсь, что ядро ​​будет свободным для таких вещей, как SSH).
  2. Бежать top и наблюдать за средней нагрузкой. Средняя нагрузка не должна превышать количество ядер. Для 8 ядер средняя загрузка 7 или выше указывает на то, что у вас слишком много рабочих. Более низкая средняя загрузка означает, что вы можете попробовать добавить другого работника.
  3. Если вы добавили другого работника на шаге 2, снова просмотрите среднее значение нагрузки. Также обратите внимание на увеличение использования оперативной памяти.
  4. Если вы повторите описанные выше шаги, в конечном итоге у вас закончится загрузка ЦП или ОЗУ.

Выполняя параллельную обработку, имейте в виду, что вы можете столкнуться с проблемой уменьшения отдачи. Прочитать о Закон Амдаля для дополнительной информации.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]