Назад | Перейти на главную страницу

Настройка использования памяти Apache

Я работал над проверкой своего веб-сервера, и у меня возникли некоторые проблемы. Прежде всего, используя top, я заметил, что Apache использует много памяти, что не удивительно, но 130-150M на процесс кажутся высокими даже для apache. Я запускаю 2.2 worker MPM, используя mod_fcgid для php. У меня создалось впечатление, что переход по этому пути снизит потребление памяти, но, похоже, это не сильно изменилось, когда я переключился с Prefork и mod_php. Что мне здесь не хватает? Я читал, что хорошо настроенный apache должен использовать около 15-25 МБ на процесс. Я далеко?

Вот список модулей, собранных с моей версией apache:

Скомпилировано в модулях:

  core.c
  mod_authn_file.c
  mod_authn_default.c
  mod_authz_host.c
  mod_authz_groupfile.c
  mod_authz_user.c
  mod_authz_default.c
  mod_auth_basic.c
  mod_cache.c
  mod_mem_cache.c
  mod_include.c
  mod_filter.c
  mod_deflate.c
  mod_log_config.c
  mod_logio.c
  mod_env.c
  mod_expires.c
  mod_headers.c
  mod_unique_id.c
  mod_setenvif.c
  mod_version.c
  mod_proxy.c
  mod_proxy_connect.c
  mod_proxy_ftp.c
  mod_proxy_http.c
  mod_proxy_scgi.c
  mod_proxy_ajp.c
  mod_proxy_balancer.c
  mod_ssl.c
  worker.c
  http_core.c
  mod_mime.c
  mod_status.c
  mod_autoindex.c
  mod_asis.c
  mod_info.c
  mod_suexec.c
  mod_cgid.c
  mod_negotiation.c
  mod_dir.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_so.c

Есть ли какие-либо из них, особенно большие и непонятные. Я создал общую версию, используя простую настройку apache на сервере. Думаю, там есть жир, который нужно обрезать.

Другой вопрос: есть ли общая память между процессами? Для каждого процесса использование более 130 МБ кажется подозрительным. Есть ли способ ограничить объем используемой памяти? Настройки кеша?

У Apache есть документация по этому поводу, но она находится в странном месте.

Видеть http://wiki.apache.org/httpd/DoS , который объясняет некоторые из того, что вы видите:

Обратите внимание, что использование памяти, сообщаемое такими инструментами, как ps (1) и top (1), включает общую память, поэтому они сообщают очевидные цифры, которые намного превышают фактическое использование apache для каждого процесса.

Итак, ваша проблема с "верхней памятью" - это своего рода иллюзия.

Это виртуальный память, а не физическая память. Виртуальная память обычно не считается дефицитным ресурсом. Попытка уменьшить потребление виртуальной памяти Apache будет пустой тратой времени. Если у вас нет реальной проблемы с реальными симптомами, решать нечего.