Если php делает запросы к базе, то процессов нужно больше чем ядер. Но
2к это уже много. 50 .. 300 должно быть достаточно.
Хум хау. Я считаю что по количеству процов вполне хватает. Если все
процессы заняты - значит активно работает база. Если база конечно не
мускуль. Дополнительные процессы выедают память, которую более
эффективно пустить на кеш диска или отдать базе.
Вам уже сказали - это зависит от ворклоада. Если, например, приложение
ждет лока - то оно не жрет цпу, а память сейчас дешевая, не говоря уже
о том, что базу лучше держать отдельно от веба. В таком случае даже
сотня-другая воркеров вполне себе гуд.
Надо смотреть чем эти php процессы занимаются, раз даже с 2k растет
listen queue.
При съедаемой памяти из рассчёта по 30M на процесс 2k процессов съедят
60G памяти. Если на машине этой памяти нет, то именно из-за количества
процессов оно и умирает.
Ну 2000 это действительно бредятина - система будет больше ресурсов
тратить на switching, и каждому процессу будет совсем мало времени
оставаться.