Долгое ожидание первой страницы (не только главной)

1 23
Алеандр
На сайте с 08.12.2010
Offline
207
#21
WebDataSearch #:
Пошёл в обратную, поставил 3, и всё вернулось к адекватным показателям.

Сделаю предположение, что у вас неверно настроена конфигурация prefork модуля, в частности - серьезно ограничено количество стартовых серверов апача и количество их дочерних процессов, которое, в свою очередь, не соответствует памяти, выделенной сервером.

Грубо говоря, например, если разрешено иметь 10 инстансов апача, то когда вы упираетесь в это значение на сервере, то остальные входящие юзеры ждут, пока предыдущие юзеры отключатся. Уменьшая keepalive вы принудительно быстрее завершаете висящих юзеров и ваш коннект получает свободное окошко в виде разрешенного инстанса апача.

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

В таком случае - простое решение: проверить настройку prefork, увеличить количество стартовых серверов и разрешить большее количество запущенных инстансов апача. Если же количество допустимых инстансов уже на пределе свободной памяти сервера - поднимать оперативку сервера и поднимать разрешенное количество инстансов.

ЗЫ: перечитал тему, Евгений выше все тоже самое и сказал. Копайте в эту сторону, раз изменение keepalive так существенно влияет на работу сайта.

WD
На сайте с 29.12.2017
Offline
32
#22

Всем добрый день. 


Так выглядит top днём при:

KeepAliveTimeout 20

<IfModule mpm_prefork_module>

StartServers          100

MinSpareServers       100

MaxSpareServers      200

MaxClients          256

MaxRequestsPerChild   0

</IfModule>

Это параметры подобранные опытным путём для прежнего быстродействия при  KeepAliveTimeout 20

KeepAliveTimeout 3 выручил при:

<IfModule mpm_prefork_module>

StartServers          5

MinSpareServers       5

MaxSpareServers      10

MaxClients          150

MaxRequestsPerChild   0

</IfModule>

На VPS 6 ядер. При нынешних параметрах выросло количество тасков, но визуально на производительность не повлияло, посмотрю как это оценят роботы гугла.

Изначально ОС ставилась давно на сервер с 1 ядром и 512 мб оперативы, далее ядра и оператива наращивались без внесения изменений в конфиг апача.

WD
На сайте с 29.12.2017
Offline
32
#23
Евгений Крупченко #:

Видите же что mysql на 200% грузит процессор. Надо понять чем именно. Например почему при доступных 16гб памяти, mysql занимает только 2? Если базы небольшие и этого достаточно, то ладно, но подозреваю что это не так и надо что-то менять.

Все базы на myisam-таблицах. Они выбраны ради быстрых SELECT в сравнении с InnoDB. На них нежелательно выделять более 25% памяти сервера, так как в ней только ключи, данные файловая система ОС кеширует сама. Та память что под них отдана используеться на 70%. Соотношение чтения ключей с запросами на чтение хорошее, тут всё норм. Запросы летают.

Евгений Крупченко #:

Дальше, что еще за php процессы от root'а? Это точно нужно чтоб так было?

Есть скрипты работающие с файловой системой сервера и требующие много времени, их лучше запускать под рутом с большими правами, чем те что работают на юзера.

lealhost
На сайте с 07.06.2014
Offline
136
#24

Смотрите журналы Apache. Желательно по ключевому слову "reached".

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#25

И что за сайт? Какая CMS? Что в apache status показывает? Настройки апатча тут вообще последнее, что надо смотреть.


Все базы на myisam-таблицах. Они выбраны ради быстрых SELECT в сравнении с InnoDB.

Лет 7 назад, да я бы поверил. На дворе 2021 год, хватит в сказки верить.
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
suffix
На сайте с 26.08.2010
Offline
339
#26
LEOnidUKG #:
Лет 7 назад, да я бы поверил. На дворе 2021 год, хватит в сказки верить.

Если сервер mysql (mariadb) старый то это и правда так. Что мешает свежую версию поставить это другой вопрос.

Клуб любителей хрюш (https://www.babai.ru)
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#27
suffix #:

Если сервер mysql (mariadb) старый то это и правда так. Что мешает свежую версию поставить это другой вопрос.

Это из области, а бы кабы, да если. ТС про другое говорит, явно не про версии.

И ладно речь не про базу, там что-то другое. Я бы начал с тестирования статичных файлов и всякого phpinfo(); как оно открывается при многократном тестировании, есть ли зависания. 

Дмитрий Лаговчин
На сайте с 04.04.2021
Offline
3
#28
Если ТС уверен, что дело не во внешних скриптах, то первым делом нужно смотреть в сторону SQL. Не сложно же посмотреть какой запрос тормозит и дальше разматывать рекурсивно)
1 23

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