Разве работники сельдерея не должны быть близки к использованию 100% загрузки ЦП?
Только если вы загрузите их для загрузки 100% ЦП :)
Мои задачи выполняются в php, в основном блокировка io
Если ваши задачи в основном выполняют IO-вызовы, то это, скорее всего, причина, по которой процессор не загружен. Т.е. когда процесс / theads в основном бездействуют после выполнения вызова io и ожидания его завершения.
Крайне важно провести тестирование вашей конфигурации. На практике это может выглядеть следующим образом:
- выбор начального уровня для параллелизма (то есть по умолчанию)
- Тест производительности / использование ресурсов
- Увеличение уровня параллелизма
- Тест производительности / использование ресурсов
- Продолжайте до тех пор, пока увеличение параллелизма больше не даст никакой выгоды
Если ваши рабочие задачи связаны с вводом-выводом, это идеальный случай для eventlet. Так как это позволит вам запускать множество задач, связанных с вводом-выводом, на одном процессоре. Т.е. рассмотрим случай, когда ваша машина имеет 64 ядра. Вы легко сможете выполнить несколько таких задач для задач, связанных с вводом-выводом, но в какой-то момент большинство ресурсов пойдут на учет процессов, накладные расходы и переключение контекста.
С помощью eventlet один процессор может обрабатывать сотни или тысячииз числа работающих одновременно:
Пул предварительной обработки может использовать несколько процессов, но их количество часто ограничивается несколькими процессами на процессор. С помощью Eventlet вы можете эффективно создавать сотни или тысячи зеленых нитей. В неофициальном тесте с системой центра подачи пул Eventlet мог извлекать и обрабатывать сотни каналов каждую секунду, в то время как пул prefork потратил 14 секунд на обработку 100 каналов. Обратите внимание, что это одно из приложений, в которых особенно хорош асинхронный ввод-вывод (асинхронные HTTP-запросы). Вам может потребоваться сочетание как работников Eventlet, так и работников prefork, а также маршрутизация задач в соответствии с совместимостью или с тем, что лучше всего работает.