Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
linux:apache:apache_oom
Различия
Показаны различия между двумя версиями страницы.
linux:apache:apache_oom [2019/01/22 16:39] – создано - внешнее изменение 127.0.0.1 | linux:apache:apache_oom [2023/11/03 19:07] (текущий) – dx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Ошибка httpd prefork invoked oom killer или почему падает Apache? ====== | ||
+ | Ссылки по теме настроек Apache | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * http:// | ||
+ | |||
+ | <callout type=" | ||
+ | |||
+ | TL;DR не использовать дефолтные настройки Apache (MaxClients 256 на сервере с 1 ГБ RAM прямой путь к OOM). Совет [[linux: | ||
+ | |||
+ | Итак, начинаем с подсчёта потребления памяти одним процессом Apache. В этом нам поможет [[linux: | ||
+ | |||
+ | < | ||
+ | # ps_mem | ||
+ | | ||
+ | 2.0 MiB + 97.0 KiB = 2.1 MiB | ||
+ | 14.5 MiB + 6.7 MiB = 21.2 MiB nginx (5) | ||
+ | 7.2 MiB + 26.4 MiB = 33.6 MiB httpd (44) | ||
+ | 327.9 MiB + 271.5 KiB = 328.2 MiB | ||
+ | --------------------------------- | ||
+ | 577.0 MiB | ||
+ | ================================= | ||
+ | </ | ||
+ | |||
+ | Не забываем, | ||
+ | |||
+ | У нас 44 процесса Apache, общее потребление памяти 328 МБ, а один процесс занимает 26 МБ ([[linux: | ||
+ | |||
+ | Округлим 26 МБ до 32 для удобства восприятия. В итоге формула получается такая: Объём RAM минус резерв для MySQL минус резерв для других процессов и всё это делим на память одного процесса Apache. | ||
+ | |||
+ | То есть: (4096 - 1024 - 512) / 32 = 80 | ||
+ | |||
+ | MaxClients и ServerLimit можем поставить равным 80. Естественно эта формула очень условная и надо учитывать особенности конкретной системы. | ||
+ | |||
+ | Есть также замечательные скрипты, | ||
+ | |||
+ | Первый скрипт работает с Apache 2.2. Второй для Apache 2.4 | ||
+ | |||
+ | **Важное замечание** по опции [[http:// | ||
+ | |||
+ | //Setting MaxRequestsPerChild to a non-zero limit solves some memory-leakage problems caused by sloppy programming practices and bugs, whereby a child process consumes a little more memory after each request. In such cases, and where the directive is left unbounded, after a certain number of requests the children will use up all the available memory and the server will die from memory starvation.// | ||
+ | |||
+ | И еще [[https:// | ||
+ | |||
+ | * StartServers: | ||
+ | * MinSpareServers: | ||
+ | * MaxSpareServers: | ||
+ | * MaxRequestWorkers = MaxClients | ||
+ | * MaxConnectionsPerChild= 10000 (To avoid problem with memory leaks in WordPress plugin themes and apps) | ||
+ | |||
+ | При существенной нагрузке в ''/ | ||
+ | |||
+ | Еще важный момент. В CentOS 6 настройки находятся в ''/ | ||
+ | |||
+ | И последнее замечание - если вы поменяли '' | ||
+ | |||
+ | < | ||
+ | |||
+ | или | ||
+ | |||
+ | < | ||
+ | |||
+ | Впрочем, | ||
+ | |||
+ | EOM | ||
+ | |||
+ | {{tag> |