Вопрос: MinSpareThreads MaxClients, рассмотрите вопрос о настройке MaxClients


Вчера у меня была проблема с моим проектом. Его нельзя было даже открыть из браузера. Проблема была решена после перезапуска apache. После этого я проверил журналы apache и обнаружил последующие строки.

[error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting

Может кто-нибудь объяснить, в чем смысл этого сообщения? Это может вызвать такую ​​проблему.

Должен ли я действительно увеличивать MaxClients или было бы лучше понять, в чем причина сервер для доступа к MaxClients.


6
2018-03-29 15:20


Источник




Ответы:


У Apache есть предел количества параллельных соединений, с которыми он может справиться. Этот предел устанавливается с помощью MaxClients. Когда сервер достигает такого количества одновременных соединений, любое последующее соединение не может быть обработано до тех пор, пока одно из существующих соединений не будет закрыто.

У вас также есть параметр MinSpareThreads, который сообщает серверу, сколько потоков должно быть запущено, ожидая нового соединения. Предположим, что ваш сервер настроен так:

 MaxClients 100
 MinSpareThreads 5

Затем сервер будет пытаться всегда иметь 5 потоков и ждать соединения. Но как только вы одновременно подключитесь к 95 пользователям, у вас будет только место еще на 5, поэтому, как только следующий клиент подключится, сервер больше не сможет создавать более свободные потоки, поэтому сообщение в журнале сообщает вам, что это приблизившись к настройке MaxClients.

Всегда полезно понять, почему сервер достигает MaxClients. Его значение должно быть достаточно высоким, чтобы обеспечить нормальную нагрузку + разумный всплеск трафика, но достаточно низкий, даже если кто-то пытается использовать DOS на вашем веб-сервере, apache не будет использовать всю вашу память и процессор, обслуживая слишком много клиентов. Чтобы узнать оптимальное значение, вам нужно выполнить нагрузочное тестирование.


4
2018-03-29 16:28