Выбор ответа Senior Производительность: OPcache и FPM обновлено
Подбор pm.max_children
Вопрос
Сервер с 8 ГБ, под PHP-FPM можно отдать 6 ГБ, воркер в среднем потребляет 60 МБ. Какое значение pm.max_children разумно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Около 100: 6000 МБ / 60 МБ. Максимальное число воркеров ограничивается памятью: при превышении сервер уйдёт в своп или OOM killer начнёт убивать процессы.
Варианты ответа
- Около 100: 6000 МБ / 60 МБправильный ответ
- Около 8, по числу ядер
- 1000, чтобы точно хватило
pm.max_childrenне влияет на память
Разбор
Максимальное число воркеров ограничивается памятью: при превышении сервер уйдёт в своп или OOM killer начнёт убивать процессы. Оценка: доступная память, делённая на средний (лучше с запасом, 95-й перцентиль) размер воркера. Число ядер ограничивает CPU-нагрузку, но PHP-воркеры большую часть времени ждут базу и сеть, поэтому их обычно больше, чем ядер. Ещё учитывают нагрузку на базу: 100 воркеров это до 100 соединений.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.