> Про кластерный Apache, к сожалению, слышу впервые.Кластер может быть собран по-разному. В моем случае наиболее популярна связка Apache+glusterfs+NDBD
> - тем не менее факт, prefork тоже вешается
Вешается воркер, может быть терминирован по времени простоя. На spawning новых процессов это никак не влияет. Если прекращается spawning - значит повис процесс диспетчера, и это уже тревожный сигнал, не связанный с PHP.
> - откуда в worker PHP-процессы? (думаю что PHP под worker иначе как
В контексте обсуждения без разницы - процесс или "тред" (который тоже процесс, в идеологии Linux). Естественно, речь идет о модуле.
> - нет, не так, форканье новых процессов на запрос с подгрузкой PHP-интерпретатора
> также увеличивает загрузку ЦПУ, по сравнению с созданием новых потоков
Это всего лишь fork(), ничего никуда не подгружается - модуль уже в памяти. В случае обработки скрипта дополнительно тратится некоторое время на инициализацию интерпретатора, но в условиях, где не более 1000 запросов в секунду, это - семечки. К слову говоря, то же самое время тратится и в worker на инициализацию интерпретатора в контексте треда.
> использованием уже загруженной в ОП so-шки.
so'шка, кстати, в prefork тоже общая. Она при вызове fork() наследуется от диспетчера в новый процесс.
Кстати говоря, у worker есть существенные проблемы, в т.ч. со стабильностью и с распределением памяти, просто Вы, видимо, с ними не столкнулись. Есть такая вещь, как размер стека на поток... и вот с ней-то связано 99% проблем с масштабируемостью и стабильностью worker.
Ну и у меня как-то так получается, что worker неприменим вообще - ибо надо исполнять несколько вхостов от разных пользователей. Я использую mpm_itk - а это двойной fork() на запрос. Нагрузка мало отличается от классического prefork.