Сценарий Apache для низкой установки памяти

Для чего Вы нуждаетесь в AD? Если Ваши просто веб-приложения хостинга, нет никакой настоящей причины для необходимости в AD. Если действительно необходимо будет использовать AD, то Вам, вероятно, будет нужна лицензия процессора аутентификации, которая является намного более дорогой плюс полная копия Windows Server, не веб-выпуск.

При необходимости в доступе к средствам, AD обеспечивает, или доступ к вещам как Exchange или Sharepoint, то у Вас есть потребность использовать AD. Просто используйте SQL или учетные записи локального пользователя и сохраните стоимость.

1
задан 3 November 2011 в 00:18
2 ответа

Я не знаю ни одного такого сценария для Apache, вероятно, потому что, по сравнению с MySQL, есть только несколько вещей которые влияют на Apache ' s использование памяти:

  1. MaxClients: Чем больше клиентов, тем больше используется памяти.
  2. Моды: Точно так же, чем больше модов / расширений установлено, тем больше требуется памяти.
  3. Динамические скрипты: Запуск динамических скриптов, таких как PHP, может увеличиваться использование памяти в зависимости от настроек вашего Apache. Например, предположим, что у вас есть 10 небольших файлов PHP и один редко используемый большой / файл с интенсивным использованием памяти. В конце концов, все клиенты Apache будут запускать этот большой PHP-скрипт и использовать больше памяти.
  4. Время компиляции: Я мало играл с настройками времени компиляции Apache, но я не удивился бы, если бы там можно было найти некоторую экономию памяти.

Некоторые конкретные вещи, которые вы можете попробовать, перечислены ниже. Попробуйте сначала измерить эффект и протестировать на своей платформе разработки, если это возможно, и / или постепенно внедряйте любые изменения на рабочем сайте.

  1. Держите MaxClients как можно ниже. На сайте с малым объемом трафика вам, вероятно, удастся использовать числа ниже 10. Вы также можете оставить другие параметры, связанные с , такими, как MaxSpareServers , на низком уровне.
  2. Сравните предварительный и рабочий режимы Apache. чтобы увидеть, есть ли существенная разница в использовании памяти.
  3. Удалите все моды / расширения, которые вы фактически не используете. Это может быть сложнее, чем кажется, поскольку не всегда легко определить, какие из них вы используете.
  4. Используйте низкое значение (100-1000) для MaxRequestsPerChild , если вы используете какие-либо динамические сценарии или наблюдают, как экземпляры Apache со временем замедляют рост использования памяти. Это предотвращает использование слишком большого объема памяти скриптами, страдающими от недостатка памяти или утечки.
  5. Изучите оптимизацию памяти во время компиляции, только если вам это действительно нужно, или имеете большой прошлый опыт компиляции Apache. Лично я бы изучил альтернативные серверы перед этим шагом.
1
ответ дан 4 December 2019 в 01:21

Почему бы не взглянуть на веб-сервер с небольшим объемом памяти: NGINX? Он известен тем, что использует мало памяти и рекомендуется для сайтов, работающих на VPS.

В любом случае, 400 МБ - это немного для веб-сервера в наши дни, и вы можете подумать о замене коробки! Apache2 съедает много памяти. Он должен быть настроен, а параметры конфигурации сбивают с толку.

Отредактируйте свои конфигурации apache, обычно в /etc/apache2/apache2.conf

. В настройках mpm_prefork_module установите StartServers на 1, MinSpares на 1 или 0 и MaxSpares примерно на 3. Например, 10 запущенных процессов перегрузят сервер размером 512 МБ (минимум по умолчанию для Apache2 составляет 256 МБ, но с этим ничего нельзя сделать!). Для уменьшения занимаемой площади / небольшого трафика на сервере вы можете попробовать что-то вроде этого:

<IfModule mpm_prefork_module>
     StartServers          2
     MinSpareServers       2
     MaxSpareServers       3
     MaxClients          150
     MaxRequestsPerChild   500
</IfModule>

Измените вышеуказанные настройки при тестировании нагрузки трафика, чтобы увидеть, могут ли новые настройки справиться с этим.

Вы можете настроить Apache KeepAlive на меньшее значение (2 ~ 5 в моем случае), кто может ожидать меньше серверных процессов, ожидающих соединений бездействующих клиентов, которые могут не запрашивать больше контента.

 KeepAlive On
 KeepAliveTimeout 2
 MaxKeepAliveRequests 80

Уменьшите количество времени, в течение которого сервер будет ждать перед неудачей запроса:

 Timeout 45

Вы также можете прочитать это: http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

Но опять же, эта настройка предназначена для очень небольшого трафика , и NGINX может еще много на том же оборудовании ..

10 запущенных процессов перегрузят сервер размером 512 МБ (минимум по умолчанию для Apache2 составляет 256 МБ, но с этим ничего не поделать!). Для уменьшения занимаемой площади / небольшого трафика на сервере вы можете попробовать что-то вроде этого:

<IfModule mpm_prefork_module>
     StartServers          2
     MinSpareServers       2
     MaxSpareServers       3
     MaxClients          150
     MaxRequestsPerChild   500
</IfModule>

Измените вышеуказанные настройки при тестировании нагрузки трафика, чтобы увидеть, могут ли новые настройки справиться с этим.

Вы можете настроить Apache KeepAlive на меньшее значение (2 ~ 5 в моем случае), кто может ожидать меньше серверных процессов, ожидающих соединений бездействующих клиентов, которые могут не запрашивать больше контента.

 KeepAlive On
 KeepAliveTimeout 2
 MaxKeepAliveRequests 80

Уменьшите количество времени, в течение которого сервер будет ждать перед неудачей запроса:

 Timeout 45

Вы также можете прочитать это: http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

Но опять же, эта настройка предназначена для очень небольшого трафика , и NGINX может еще много на том же оборудовании ..

10 запущенных процессов перегрузят сервер размером 512 МБ (минимум по умолчанию для Apache2 составляет 256 МБ, но с этим ничего не поделать!). Для уменьшения занимаемой площади / небольшого трафика на сервере вы можете попробовать что-то вроде этого:

<IfModule mpm_prefork_module>
     StartServers          2
     MinSpareServers       2
     MaxSpareServers       3
     MaxClients          150
     MaxRequestsPerChild   500
</IfModule>

Измените вышеуказанные настройки при тестировании нагрузки трафика, чтобы увидеть, могут ли новые настройки справиться с этим.

Вы можете настроить Apache KeepAlive на меньшее значение (2 ~ 5 в моем случае), кто может ожидать меньше серверных процессов, ожидающих соединений бездействующих клиентов, которые могут не запрашивать больше контента.

 KeepAlive On
 KeepAliveTimeout 2
 MaxKeepAliveRequests 80

Уменьшите количество времени, в течение которого сервер будет ждать перед неудачей запроса:

 Timeout 45

Вы также можете прочитать это: http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

Но опять же, эта настройка предназначена для очень небольшого трафика , и NGINX может еще много на том же оборудовании ..

(минимум по умолчанию для Apache2 - 256 МБ, но с этим ничего не поделать!). Для уменьшения занимаемой площади / небольшого трафика на сервере вы можете попробовать что-то вроде этого:

<IfModule mpm_prefork_module>
     StartServers          2
     MinSpareServers       2
     MaxSpareServers       3
     MaxClients          150
     MaxRequestsPerChild   500
</IfModule>

Измените вышеуказанные настройки при тестировании нагрузки трафика, чтобы увидеть, могут ли новые настройки справиться с этим.

Вы можете настроить Apache KeepAlive на меньшее значение (2 ~ 5 в моем случае), кто может ожидать меньше серверных процессов, ожидающих соединений бездействующих клиентов, которые могут не запрашивать больше контента.

 KeepAlive On
 KeepAliveTimeout 2
 MaxKeepAliveRequests 80

Уменьшите количество времени, в течение которого сервер будет ждать перед неудачей запроса:

 Timeout 45

Вы также можете прочитать это: http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

Но опять же, эта настройка предназначена для очень небольшого трафика , и NGINX может еще много на том же оборудовании ..

(минимум по умолчанию для Apache2 - 256 МБ, но с этим ничего не поделать!). Для уменьшения занимаемой площади / небольшого трафика на сервере вы можете попробовать что-то вроде этого:

<IfModule mpm_prefork_module>
     StartServers          2
     MinSpareServers       2
     MaxSpareServers       3
     MaxClients          150
     MaxRequestsPerChild   500
</IfModule>

Измените вышеуказанные настройки при тестировании нагрузки трафика, чтобы увидеть, могут ли новые настройки справиться с этим.

Вы можете настроить Apache KeepAlive на меньшее значение (2 ~ 5 в моем случае), кто может ожидать меньше серверных процессов, ожидающих соединений бездействующих клиентов, которые могут не запрашивать больше контента.

 KeepAlive On
 KeepAliveTimeout 2
 MaxKeepAliveRequests 80

Уменьшите количество времени, в течение которого сервер будет ждать перед неудачей запроса:

 Timeout 45

Вы также можете прочитать это: http://httpd.apache.org/docs/2.0/misc/perf-tuning.html

Но опять же, эта настройка предназначена для очень небольшого трафика , и NGINX может еще много на том же оборудовании ..

0
ответ дан 4 December 2019 в 01:21

Теги

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