- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте!
Время от времени подвисает апач, приблизительно раз в несколько минут. Поставил мод статус, в момент зависания вижу такую картину.
Начинается так
потом так (в этот момент сайты уже не грузятся)
потом как-то так (какой-то переходной вариант, бывает
и без него, просто процессы W исчезают)
и потом переходит в нормальный режим
В момент зависания процессор не загружен. Смотрю обращения к базе мусула (список соединений), там тоже ничего критического, ничего не висит.
Куда копать, откуда такое может быть?
Вроде еще куча свободных процессов апача и ожидающих соединения, почему тогда уже тормоза начинаются?
Эти W соединения висят в разное время к разным сайтам на сервере, нет такого, что они допустим к одному и тому-же сайту всегда зависают.
Настройки из файла httpd.conf, подбирал экспериментально, вроде так меньше всего тормозит
KeepAlive on
KeepAliveTimeout 10
MaxKeepAliveRequests 100000
MaxRequestsPerChild 0
ThreadsPerChild 1000
Что еще можно покрутить и как узнать из-за чего эти зависания?
ThreadsPerChild 1000
o_O не многовато, или у вас там 1024 ядерный камень
i7-6700, 3.4Ггц, 32Гб оперативы, SSD диск.
Сколько посоветуете ставить ThreadsPerChild ?
Вот например на втором сверху скрине написано
134 requests currently being processed, 866 idle workers
Это означает, что из этих 1000 ThreadsPerChild число выполняющихся потоков 134, а свободных 866.
Процессор при этом совсем не загружен, потоки свободные есть, почему зависание?
А как вы меряете загрузку процессора? Эти "свободные" потоки должны весь процессорный ресурс на переключения контекста расходовать. Оставьте для начала настройки по умолчанию, их почти всегда достаточно (обычно рассчитано на 300 одновременных клиентов).
Так на виндовсе 7 все стоит, в диспетчере задач видно загрузку. Я уже не помню сколько было по умолчанию.
http://httpd.apache.org/docs/2.4/platform/windows.html
The recommended default is ThreadsPerChild 150
В вашем случае также добавьте в конфиг апача:
AcceptFilter http none
AcceptFilter https none
Спасибо, завтра попробую - отпишусь.
Как буд-то бы лучше стало. Страницы вроде как чуть помедленнее грузятся, но стабильно как-то. За полчаса одно подвисание было, но несущественное.
Раньше незначительные подвисания были часто, а значительные (как на скринах выше), по нескольку раз в день.
Сейчас значительного подвисания я не дождался, следил правда не долго.
Еще понаблюдаю - отпишусь.
Поискал эти строчки AcceptFilter http none, AcceptFilter https none и увидел еще
вот тут http://www.cyberforum.ru/apache/thread1017614.html эти строчки рекомендуют
EnableMMAP off
EnableSendfile off
сразу их и добавил.
Оптимизайка, как считаешь их нужно ставить или нет?
Vitaly2012, под windows это не будет работать, т.к. mmap и sendfile это linux-specific
Так ТС их в off и выставил :)