Вы упомянули PHP. Насколько важный это Вам, чтобы иметь последний самый большой PHP? Если необходимо остаться на новейшей из разработки PHP, необходимо использовать дистрибутив с быстрым циклом выпуска, или необходимо признать, что Вы будете бэкпортировать или создавать свои собственные двоичные файлы PHP. Для некоторых людей, которые действительно продвигают край, оставаясь с абсолютной новейшей версией PHP, очень важно.
Вы готовы признать, что Вам, вероятно, придется сделать полное обновление о каждых шести месяцах?
Вам нужна коммерческая поддержка?
Действительно ли Вы более знакомы с каким-либо вышеупомянутым?
Вы ожидаете, что Вам когда-либо будут нужны двоичные пакеты от поставщиков как Oracle?
Ответы на эти вопросы должны быстро сузить Ваш список.
MaxClients в apache 2 - это максимальное количество одновременных запросов, которые будут обслуживаться всеми процессами apache. С prefork mpm это также максимальное количество процессов apache, которые будут выполняться одновременно, и максимальное количество открытых входящих сетевых подключений к вашему веб-серверу.
Вся суть KeepAlive состоит в том, чтобы уменьшить накладные расходы на инициирование новых TCP-соединений для каждого HTTP-запроса при доступе к сайту, поскольку каждая новая страница потенциально может потребовать десятков документов (исходный html, css, javascript, изображения и т. Д.). Конечный результат - страницы, которые загружаются быстрее.
MaxKeepAliveTimeout указывает, как долго веб-служба будет ждать дополнительного запроса hHT от бездействующего клиента, прежде чем закрыть соединение, позволяя ему обслуживать новые входящие соединения.
В вашем случае, если у вас есть 150 клиентов, отправляющих маяк одновременно с включенным KeepAlive, то да, пройдет еще 5 секунд, прежде чем другие пользователи смогут подключиться. Предполагая, что требуется отправлять маяк каждые 15 секунд, это 450 макс. пользователей.
Решения:
вы можете уменьшить MaxKeepAliveTimeout до 2 секунд, при его увеличении отдача уменьшается. Максимальное преимущество - при начальной загрузке страницы, и между этими запросами практически нет задержки.
вы можете полностью отключить KeepAlive, увеличив время загрузки всех ваших страниц, предполагая, что большинство пользователей проводят большую часть времени в игре.
KeepAlive должен быть включен как на стороне клиента, так и на стороне сервера. Предполагая, что вы контролируете свой javascript на стороне клиента, можно отключить поддержку активности на стороне клиента для определенного запроса, используя:
Точно так же вы можете отключить Keepalive для определенных HTTP-запросов на стороне сервера, манипулируя заголовком ответа Connection.
Надеюсь, это поможет!
Вся концепция того, как работает механизм поддержания активности Apache2, очень хорошо описана в этой статье Настройка Apache
Вам необходимо найти баланс между значениями MaxClients и KeepAliveTimeout , чтобы использовать эту функцию. Либо увеличьте первую в соответствии с доступной памятью на сервере, либо уменьшите вторую.