с apache, разумно ли уменьшать MaxClients, когда KeepAlive выключен? в настоящее время для MaxClients установлено значение 150, что по умолчанию для mpm-worker.
Спасибо!
Используйте MaxClients, чтобы остановить обмен местами на вашем сервере ... Я обычно так и поступаю.
Я пытаюсь приблизительно выяснить, насколько велик каждый процесс apache, а затем выясняю, сколько я могу разумно уместить в памяти - это моя настройка MaxClients.
Если на ваш сайт поступает больше запросов, чем MaxClients, вы не должны в конечном итоге менять местами. Дополнительные клиенты будут находиться в очереди сокетов, пока не станет доступен рабочий. Если это займет слишком много времени, сервер отключится. Если очередь слишком длинная, они получат отказ в соединении.
Если у вас установлено слишком высокое значение MaxClients, ваш веб-сервер начнет работать с перегрузкой и свопингом. Когда это произойдет, обработка каждого запроса займет больше времени, и вы в конечном итоге усугубите проблему.
В вашей настройке nginx обрабатывает все подключения конечных пользователей, а Apache в основном является сервером приложений. Пока у вас достаточно потоков для обработки запросов, все будет в порядке. Количество потоков должно вырасти только до 150, если вам нужно так много, иначе они будут запускаться на StartServer 5 с MinSpareServers 5, если вы сохранили значение по умолчанию. Поскольку это четырехъядерный компьютер, то, вероятно, вам больше всего понадобится 32 или около того потоков, хотя это зависит от того, сколько задержки или блокировки происходит, пока Apache ожидает на вашем сервере.
В общем, я бы, вероятно, оставил MaxClients в покое и убедился, что StartServers был 25 (или что-то еще, что поддерживало бы вашу нормальную нагрузку), а не 5, чтобы ваш сервер был готов обрабатывать производственный трафик, как только он появится. Затем я бы предупреждал о потоках, превышающих 50 или о том, что кажется «слишком высоким» для вашей обычной нагрузки, поскольку это может указывать на низкую производительность бэкэнд или атаки на ваш сайт.
Изменить: не уверен, почему я предположил, что у вас есть потоки, но то же самое и с процессами.
Если у вас нет проблем, я не вижу причин для снижения MaxClients. Во всяком случае, вы обычно повышаете его со значения по умолчанию, если получаете большой трафик.
Задайте для MaxClients значение чуть ниже уровня, при котором на вашем компьютере закончится ОЗУ (при условии, что это выделенный веб-сервер).
Если вы не ожидаете большого трафика, убедитесь, что ваша система мониторинга проверяет количество запущенных apache. Если он становится высоким, попробуйте понять, почему.
Keep Alives обычно должен быть включен и установлен на очень короткий тайм-аут для типичных сайтов с высокой посещаемостью.