Тормозит апач

V2
На сайте с 05.01.2012
Offline
120
2198

Здравствуйте!

Время от времени подвисает апач, приблизительно раз в несколько минут. Поставил мод статус, в момент зависания вижу такую картину.

Начинается так

потом так (в этот момент сайты уже не грузятся)

потом как-то так (какой-то переходной вариант, бывает

и без него, просто процессы W исчезают)

и потом переходит в нормальный режим

В момент зависания процессор не загружен. Смотрю обращения к базе мусула (список соединений), там тоже ничего критического, ничего не висит.

Куда копать, откуда такое может быть?

Вроде еще куча свободных процессов апача и ожидающих соединения, почему тогда уже тормоза начинаются?

Эти W соединения висят в разное время к разным сайтам на сервере, нет такого, что они допустим к одному и тому-же сайту всегда зависают.

Настройки из файла httpd.conf, подбирал экспериментально, вроде так меньше всего тормозит

KeepAlive on

KeepAliveTimeout 10

MaxKeepAliveRequests 100000

MaxRequestsPerChild 0

ThreadsPerChild 1000

Что еще можно покрутить и как узнать из-за чего эти зависания?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#1
Vitaly2012:
ThreadsPerChild 1000

o_O не многовато, или у вас там 1024 ядерный камень

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
V2
На сайте с 05.01.2012
Offline
120
#2

i7-6700, 3.4Ггц, 32Гб оперативы, SSD диск.

Сколько посоветуете ставить ThreadsPerChild ?

Вот например на втором сверху скрине написано

134 requests currently being processed, 866 idle workers

Это означает, что из этих 1000 ThreadsPerChild число выполняющихся потоков 134, а свободных 866.

Процессор при этом совсем не загружен, потоки свободные есть, почему зависание?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#3

А как вы меряете загрузку процессора? Эти "свободные" потоки должны весь процессорный ресурс на переключения контекста расходовать. Оставьте для начала настройки по умолчанию, их почти всегда достаточно (обычно рассчитано на 300 одновременных клиентов).

V2
На сайте с 05.01.2012
Offline
120
#4

Так на виндовсе 7 все стоит, в диспетчере задач видно загрузку. Я уже не помню сколько было по умолчанию.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5

http://httpd.apache.org/docs/2.4/platform/windows.html

The recommended default is ThreadsPerChild 150

В вашем случае также добавьте в конфиг апача:

AcceptFilter http none

AcceptFilter https none

V2
На сайте с 05.01.2012
Offline
120
#6

Спасибо, завтра попробую - отпишусь.

V2
На сайте с 05.01.2012
Offline
120
#7

Как буд-то бы лучше стало. Страницы вроде как чуть помедленнее грузятся, но стабильно как-то. За полчаса одно подвисание было, но несущественное.

Раньше незначительные подвисания были часто, а значительные (как на скринах выше), по нескольку раз в день.

Сейчас значительного подвисания я не дождался, следил правда не долго.

Еще понаблюдаю - отпишусь.

Поискал эти строчки AcceptFilter http none, AcceptFilter https none и увидел еще

вот тут http://www.cyberforum.ru/apache/thread1017614.html эти строчки рекомендуют

EnableMMAP off

EnableSendfile off

сразу их и добавил.

Оптимизайка, как считаешь их нужно ставить или нет?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#8

Vitaly2012, под windows это не будет работать, т.к. mmap и sendfile это linux-specific

L
На сайте с 10.02.2015
Offline
260
#9

Так ТС их в off и выставил :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий