Что делать, чтобы уменьшить потребление оперативной памяти apache?

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение sunny1983 »

Что делать, чтобы уменьшить потребление оперативной памяти apache? Стоит ли отключать некоторые включённые по умолчанию модули и прописывать какие директивы в httpd.conf? Я отключил cgi_module и cgid_module, сайтов, требующих cgi, у меня всё равно нет. Но вот запускаю я htop и вижу, что у меня висят в памяти 5 процессов httpd, каждый из которых жрёт около 25000 оперативной памяти и 500M виртуальной и это при нулевой нагрузке. Зачем так? Мне казалось сколько клиентов подключены к серверу столько и процессов должно быть, ну ещё должны быть резервные процессы запущены, чтобы как только подключится новый клиент, чтобы сайт у него тут же грузился без ожидания пока запустится новый процесс. О мультипроцессинговых моделях слово, заметил что по умолчанию стоит worker, если версия apache старая то itk, а какая модель лучше: itk, worker, prefork или event? Так сайтов у меня сейчас 5, захожу на них только я, но один будет раскручиваться, планируется нагрузка 10-50 хитов в минуту. И вообще достаточно ли VDS с 512 Мбайт памяти для развёртывания на нём LAMP или нужно минимум гигабайт? А так я, прочитав некоторые статьи в Интернете и руководствуясь собственными измышлениями, прописал некоторые директивы для worker, насколько так правильно?

Код: Выделить всё

KeepAlive On
KeepAliveTimeout 30
StartServers 1
MinSpareServers 1
MaxSpareServers 4
Serverlimit 4
MaxClients 4
MaxRequestsPerChild 30
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4762
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение SLEDopit »

Такое ощущение, что вы не совсем понимаете как читать вывод htop.

VIRT -- это не память, которую процесс занимает, а сумма всех ресурсов, которые нужны процессу. Грубо говоря, количество необходимой памяти, если бы кроме этого процесса на сервере ничего не было.

25000, я так понимаю, имеется в виду RES, т.е. реально занимаемое место в kb. Получается ваш apache процесс потребляет 25Mb памяти в системе. Вполне нормальное значение (но оно меняется от общего количества памяти в системе, если я правильно помню, у меня на некоторых системах по 10Mb висит, а на некоторых с такой же конфигурацией по 50Mb).
sunny1983 писал:
12.04.2018 08:22
вообще достаточно ли VDS с 512 Мбайт памяти для развёртывания на нём LAMP или нужно минимум гигабайт?
Это зависит от вашего приложения и нагрузки. Если это домашняя страничка, куда заходит полтора человека в неделю, то вполне. Если это нагруженный портал, то явно не хватит.

зы. Вместо LAMP можно попробовать nginx + php-fpm + mysql. Такая связка бывает менее требовательна к ресурсам.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение sunny1983 »

А то, что MemFree из /proc/meminfo равен нулю это же ненормально?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18650
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение Bizdelnick »

sunny1983 писал:
12.04.2018 10:58
А то, что MemFree из /proc/meminfo равен нулю это же ненормально?
Нормально.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение Vascom »

sunny1983 писал:
12.04.2018 10:58
А то, что MemFree из /proc/meminfo равен нулю это же ненормально?
Нормально. Надо смотреть на MemAvailable или на available в выводе free -h.
Спасибо сказали:

azsx
Сообщения: 3665
ОС: calculate linux, debian, ubuntu

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение azsx »

планируется нагрузка 10-50 хитов в минуту
Про память я могу сказать только эмпирические сведения, не доказывая их никс командами, поэтому не буду. Отмечу важные два момента.
1. Умножайте вашу ожидаемую нагрузку от живых людей на два. Очень много парсинга, как от поисковых систем, так и от всевозможных спам ботов. Чем выше ресурсы по алексу, тем больше парсят. Можно заморочится и банить всяких негодяев, но по мне так сизифов труд.
2. Правильно вашу фразу написать так: "планируется пиковая нагрузка до 2 хитов в секунду". То есть у вас не будет равномерно 10-50 хитов в минуту. У вас может быть 1-2 хита в минуту, а потом с 13 до 14 по мск ежесекундно по 2-3 хита. Важнее, чтобы сервер выдержал пиковую нагрузку, а вовсе не какой то придуманный средний показатель.
Спасибо сказали:

Аватара пользователя
lone_wolf
Сообщения: 204

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение lone_wolf »

Что такое "10-50 хитов"?

З.ы. Извиняюсь за офтоп.
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4762
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение SLEDopit »

Ну слушайте, уже давно придумали ab, wrk и прочие http_load. Вполне можно перед запуском посмотреть как конфигурация реагирует на нагрузку.
lone_wolf писал:
13.04.2018 08:38
Что такое "10-50 хитов"?
10-50 запросов страницы (т..е запросов к серверу будет больше, т.к. всякая статика, + возможно дополнительные всякие данные отдельно js'ом подтягиваются)
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

azsx
Сообщения: 3665
ОС: calculate linux, debian, ubuntu

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение azsx »

всё таки для меня эти термины из мира сео (статистики), а там хит -- это полная загрузка страницы (url) клиентом; хост -- это уникальный ip клиента за сутки. То есть:
wget -O 1.html ya.ru & wget -O 2.html ya.ru
это 2 хита и один хост. Как я по дилетански называю "2 хита в 1 секунду".
То есть site1.ru/index.html на друпал, при отдаче страницы делает 70 запросов к БД и открывает 50 файлов на сайте для чтения и 5 для записи. А второй сайт на dle site2.ru/index.html и при отдаче страницы открывает 3 файла на чтение и делает 2 запроса к БД. И в обоих случаях клиент получил всего 1 страницу, значит всего 1 хит.
Спасибо сказали:

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение sunny1983 »

SLEDopit писал(а):
13.04.2018 09:33
Ну слушайте, уже давно придумали ab, wrk и прочие http_load. Вполне можно перед запуском посмотреть как конфигурация реагирует на нагрузку.
Э... а можно вот тут поподробнее? Я эту тему совсем не знаю.
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4762
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение SLEDopit »

sunny1983 писал:
14.04.2018 10:56
Э... а можно вот тут поподробнее? Я эту тему совсем не знаю.
Вышеупомянутые утилиты -- это программы для нагрузочного тестирования сайтов. Вы можете поднять тестовую копию вашего сайта на сервере и натравить на него предполагаемое число "посетителей" в лице ab или wrk и посмотреть как конфигурация будет себя вести.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

Аватара пользователя
sunny1983
Сообщения: 355
ОС: GNU/Linux 4.x (Fedora, Debian)

Re: Что делать, чтобы уменьшить потребление оперативной памяти apache?

Сообщение sunny1983 »

SLEDopit писал(а):
16.04.2018 01:35
Вышеупомянутые утилиты -- это программы для нагрузочного тестирования сайтов. Вы можете поднять тестовую копию вашего сайта на сервере и натравить на него предполагаемое число "посетителей" в лице ab или wrk и посмотреть как конфигурация будет себя вести.
Попробую
SLEDopit писал(а):
12.04.2018 10:28
Получается ваш apache процесс потребляет 25Mb памяти в системе. Вполне нормальное значение (но оно меняется от общего количества памяти в системе, если я правильно помню, у меня на некоторых системах по 10Mb висит, а на некоторых с такой же конфигурацией по 50Mb).
Но процессов несколько. Возможно ли при помощи директив уменьшить их количество?
Спасибо сказали: