- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Пошёл в обратную, поставил 3, и всё вернулось к адекватным показателям.
Сделаю предположение, что у вас неверно настроена конфигурация prefork модуля, в частности - серьезно ограничено количество стартовых серверов апача и количество их дочерних процессов, которое, в свою очередь, не соответствует памяти, выделенной сервером.
Грубо говоря, например, если разрешено иметь 10 инстансов апача, то когда вы упираетесь в это значение на сервере, то остальные входящие юзеры ждут, пока предыдущие юзеры отключатся. Уменьшая keepalive вы принудительно быстрее завершаете висящих юзеров и ваш коннект получает свободное окошко в виде разрешенного инстанса апача.
Увеличивая этот параметр - вы окончательно забиваете ресурс висящими сессиями юзеров, даже когда они уже ушли, происходят отвалы по таймауту для новых и сбросы новых входящих, потому что сервер еще ждет с открытым соединением тех, кто уже ушел.
В таком случае - простое решение: проверить настройку prefork, увеличить количество стартовых серверов и разрешить большее количество запущенных инстансов апача. Если же количество допустимых инстансов уже на пределе свободной памяти сервера - поднимать оперативку сервера и поднимать разрешенное количество инстансов.
ЗЫ: перечитал тему, Евгений выше все тоже самое и сказал. Копайте в эту сторону, раз изменение keepalive так существенно влияет на работу сайта.
Всем добрый день.
Так выглядит 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 мб оперативы, далее ядра и оператива наращивались без внесения изменений в конфиг апача.
Видите же что mysql на 200% грузит процессор. Надо понять чем именно. Например почему при доступных 16гб памяти, mysql занимает только 2? Если базы небольшие и этого достаточно, то ладно, но подозреваю что это не так и надо что-то менять.
Все базы на myisam-таблицах. Они выбраны ради быстрых SELECT в сравнении с InnoDB. На них нежелательно выделять более 25% памяти сервера, так как в ней только ключи, данные файловая система ОС кеширует сама. Та память что под них отдана используеться на 70%. Соотношение чтения ключей с запросами на чтение хорошее, тут всё норм. Запросы летают.
Дальше, что еще за php процессы от root'а? Это точно нужно чтоб так было?
Есть скрипты работающие с файловой системой сервера и требующие много времени, их лучше запускать под рутом с большими правами, чем те что работают на юзера.
Смотрите журналы Apache. Желательно по ключевому слову "reached".
И что за сайт? Какая CMS? Что в apache status показывает? Настройки апатча тут вообще последнее, что надо смотреть.
Все базы на myisam-таблицах. Они выбраны ради быстрых SELECT в сравнении с InnoDB.
Лет 7 назад, да я бы поверил. На дворе 2021 год, хватит в сказки верить.
Если сервер mysql (mariadb) старый то это и правда так. Что мешает свежую версию поставить это другой вопрос.
Если сервер mysql (mariadb) старый то это и правда так. Что мешает свежую версию поставить это другой вопрос.
Это из области, а бы кабы, да если. ТС про другое говорит, явно не про версии.
И ладно речь не про базу, там что-то другое. Я бы начал с тестирования статичных файлов и всякого phpinfo(); как оно открывается при многократном тестировании, есть ли зависания.