Понимать настройки Apache для веб-страницы с большим количеством запросов - PullRequest
0 голосов
/ 27 августа 2018

У меня есть сайт WordPress, который имеет около 200 запросов на домашней странице, включая js, css, изображения и т. Д. Я использую настройку apache по умолчанию для сервера minSpare, равную 5, максимальную запасную часть равную 10, MaxRequestWorkers 150, Макс. Дочерний элемент на запрос 0.

Мне нужно понять, что это за настройки и какими должны быть мои идеальные настройки, учитывая 10 одновременных пользователей на домашней странице. Я работаю на инстансе среды T2 в AWS. База данных находится на RDS. В среднем на процесс apache требуется около 120 МБ оперативной памяти. Я знаю, я должен использовать cdn, но мне нужно понять поведение apache с моим текущим положением.

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

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

Вы не заявили, каковы ваши цели - снизить эксплуатационные расходы, повысить производительность или увеличить емкость.

Вероятно, проблема в том, что у вас более 200 запросов на одной странице (есть некоторые крайние случаи, когда это оказывает минимальное влияние). Вероятно, есть много возможностей для повышения производительности путем настройки характеристик MPM, которые вы перечислили, но 1) это только некоторые из 30+ параметров, которые оказывают существенное влияние на производительность, и 2) правильные настройки зависят от трафика шаблон. Кстати, «Максимальное количество дочерних элементов на запрос» не является конфигурацией Apache.

с учетом 10 одновременных пользователей на домашней странице

Это не значимый показатель. Какое время загрузки страницы? Время рендеринга? Каков уровень параллелизма запросов от одного клиента? Из всех клиентов? Каково среднее время ответа на запрос? ТТФБ? Средняя загрузка системы? Использование процессора? Как это связано с количеством активных процессов httpd? Это процессы или потоки? Какова нагрузка ввода-вывода? (пожалуйста, не отвечайте - я считаю, что вам нужно изучить вопросы, прежде чем вы получите разумные ответы).

В среднем на процесс apache требуется около 120 МБ ОЗУ

Это лот . Как вы его измерили ?. Если бы у вас действительно было 10 клиентов HTTP / 1.1, пытающихся загрузить страницу одновременно, ваши процессы Apache потребляли бы (10x6x120) / 1024 = 7 ГБ памяти (а у вас только 4). Но я подозреваю, что это не совсем так.

Вам необходимо:

1) Провести дополнительные исследования

2) Разработать конкретную задачу

3) Определите, какие метрики в настоящее время доступны и актуальны

4) добавить больше инструментов, соответствующих вашей цели

5) Получить базовые данные

6) попробуйте изменить вещи

7) измерить воздействие

8) повтор

0 голосов
/ 11 сентября 2018

Я использую настройку Apache по умолчанию для сервера minSpare в качестве 5, максимальное резервирование в качестве 10, MaxRequestWorkers 150, максимальное дочернее число на запрос 0. Мне нужно понять, что это за настройки и какие должны быть мои идеальные настройки, учитывая 10 одновременныхпользователи на домашней странице.

  • minSpare Server - это минимальное количество серверов, ожидающих входящих запросов.Сервер minSpare не должен настраиваться, если ваш сайт не очень занят.Когда доступно меньше серверов ожидания, будет создано больше (от 1 в секунду до 2 ^ n в секунду (n), максимум до 32 в секунду).Здесь можно установить значение 5.
  • maxSpare Server - как указано выше, только максимум.Так же это не должно нуждаться в настройке.Когда будет доступно больше ожидающих серверов, они будут убиты.Настройка по умолчанию с 10 должна соответствовать вашим требованиям.
  • MaxRequestWorkers - это ограничение процессов (и клиентских подключений), которые ваш сервер может выполнять одновременно.256 должно быть хорошим числом для этого параметра в большинстве случаев.Этого должно быть достаточно для одновременной обработки 200 запросов.
  • с " Макс. Дочерний на запрос " Я думаю, вы имеете в виду MaxConnectionsPerChild (MaxRequestsPerChild - это старое имя) -Это «устанавливает ограничение на количество соединений, которые будет обрабатывать отдельный процесс дочернего сервера».Если это установлено в 0, процесс никогда не умрет.Например, вы можете установить значение 500, чтобы предотвратить утечку памяти.

Вся эта информация взята из официальной документации Apache Http Server.

Также я рекомендую рассмотреть то, что сказал symcbean.Это всего лишь 4 параметра, которые можно использовать для настройки, так как вы не предоставили много информации.Тем не менее, я надеюсь, что мой ответ поможет вам немного.

0 голосов
/ 08 сентября 2018

Загрузка 200+ ресурсов - это плохо для вашего сайта и для SEO Google. Я предлагаю вам решить эту проблему следующими способами:

  1. Ленивая загрузка изображений
  2. Объедините несколько файлов CSS в один или несколько для производства, но для разработки вы можете оставить столько же файлов, сколько у вас есть сейчас.
  3. Также пункт 2 можно использовать для файлов JS. отложенная загрузка также является хорошим вариантом.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...