Как выяснить, какого количества RAM каждый поток перед ветвлением требует для максимальной производительности Wordpress на маленьком экземпляре EC2

Когда Вы используете 127.0.0.1 или localhost, ПК 'знает', что Вы говорите об этом, и он не должен делать никаких поисков. Когда Вы используете 192.168.0.190, ПК, вероятно, отсылает это к маршрутизатору или прокси или чему-то, куда он возвратится к ПК.

Мое предположение - то, что это не возвращается.

Сделайте a TELNET 192.168.0.190 1521 и посмотрите, получаете ли Вы соединение. Если Вы не делаете, то это не проблема базы данных Oracle, а сетевая. В этом случае необходимо описать настройку сети более подробно (это домашняя установка, корпоративная LAN, IP DHCP / статический IP...),

2
задан 17 February 2015 в 02:41
2 ответа

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

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

Из httpd.conf:

prefork MPM

  • StartServers: количество серверных процессов для запуска
  • MinSpareServers: минимальное количество серверных процессов, которые сохраняются Spare
  • MaxSpareServers: максимальное количество процессов сервера, которые хранятся в резерве
  • ServerLimit: максимальное значение для MaxClients в течение срока службы сервера
  • MaxClients: максимальное количество серверных процессов, разрешенных для запуска
  • MaxRequestsPerChild: максимальное количество запросов, которые обслуживает серверный процесс

В показанной вами конфигурации будет постоянно выполняться 10 процессов: вы запускаете 10 процессов (StartServers), и у вас есть максимум 10 разрешенных вами серверных процессов (MaxClients). В этом случае MinSpareServers и MaxSpareServers не должны вступать в игру. После того, как серверный процесс обработал 4000 запросов, он будет завершен и на его месте будет создан новый (чтобы попытаться ограничить утечки памяти и т. Д.)

Таким образом, предполагается, что все остальное на вашем сервере будет использовать примерно 80 МБ памяти - остается 530 МБ. Разделите это на средний размер процесса (53 МБ), чтобы получить 10.

Я бы предположил, что это предположение немного неверно. Если вы используете что-то еще (например, MySQL) на сервере, вам обязательно нужно оставить больше памяти в резерве. Кроме того, здесь нет места для вариаций. Для оценки я бы оставил не менее 120 МБ для операционной системы и других служб, а затем уменьшил бы остаток на 10% для вариаций. Итак, максимум процессов apache около 8

<IfModule prefork.c>
 StartServers       2
 MinSpareServers    1
 MaxSpareServers   3
 MaxClients       8
 MaxRequestsPerChild  1000
</IfModule>

Итак, с вышеизложенным - максимум процессов 8. Мы только запускаем 2. Нам бы хотелось, чтобы в любой момент времени было хотя бы одно бездействие, но не более трех. Кроме того, поскольку память является проблемой, MaxRequestsPerChild был уменьшен.

Теперь я предпочитаю вычислять число, фактически запустив сервер на некоторое время, затем остановив apache и посмотрев, сколько памяти использует остальная часть системы. Вычтите это число из общей суммы, возьмите 90% и разделите на средний размер процесса apache. Это дает более реалистичное значение, особенно для более сложных настроек.

Следует отметить, что в случае с ограниченным объемом памяти Nginx, вероятно, предпочтительнее Apache в качестве веб-сервера. Кроме того, вам определенно понадобится немного места для подкачки на t1.micro (хотя вы не должны часто его использовать).

5
ответ дан 3 December 2019 в 09:21

Установка MinSpareServers того же значения, что и MaxSpareServers, не имеет особого смысла - это, скорее, сводит на нет цель поддержки гистерезиса для управления спросом.

Я не вижу «настройки» apache 'в сообщении, на которое вы ссылаетесь. То, что я вижу, похоже, не дает никакого объяснения того, как автор измерил площадь веб-сервера. См. этот вопрос и ответы на .

KeepAliveTimeout, равное 5, кажется смехотворно высоким - и этому тоже не дается никаких объяснений.

Я не вижу логики установки maxKeepAliveRequests на «около двух». -thirds of MaxClients »

Предполагая, что процесс в среднем составляет 53 МБ (что мне кажется довольно большим) и 613 МБ свободной памяти, я бы начал с чего-то вроде:

keepAliveTimeout 1
maxKeepAliveRequests 15

<IfModule prefork.c>
   StartServers       5
   MinSpareServers    2
   MaxSpareServers    4
   MaxClients        10
   MaxRequestsPerChild  4000
</IfModule>

Но если вы '

1
ответ дан 3 December 2019 в 09:21

Теги

Похожие вопросы