Apache грузит процессор на 100 windows

Найти проблемное место на сайте, которое побуждает грузить всю систему довольно непросто. Однако это не говорит о том, что это не возможно, вполне возможно, и мы в данном посту как раз рассмотрим одну из подобных ситуаций. Итак, мы знаем, что система висит, и грузит её процесс httpd. Этот процесс порождают скрипты, вызываемые на сайте. Наша задача определить узкое место на сайте, то, что грузит сервер, и устранить его соответственно. В Apache есть специальные модули, которые помогут нам в этом деле, именуются они как status_module и info_module. Для их использования нужно убедиться, что они включены в конфигурацию сервера Apache. По умолчанию они включены, так что, скорее всего вам не придется заниматься их установкой.

Найти проблемное место на сайте, которое побуждает грузить всю систему довольно непросто. Однако это не говорит о том, что это не возможно, вполне возможно, и мы в данном посту как раз рассмотрим одну из подобных ситуаций.
Итак, мы знаем, что система висит, и грузит её процесс httpd. Этот процесс порождают скрипты, вызываемые на сайте. Наша задача определить узкое место на сайте, то, что грузит сервер, и устранить его соответственно.
В Apache есть специальные модули, которые помогут нам в этом деле, именуются они как status_module и info_module. Для их использования нужно убедиться, что они включены в конфигурацию сервера Apache. По умолчанию они включены, так что, скорее всего вам не придется заниматься их установкой.

Открываем файл конфигурации веб-сервера, у меня система CentOS Linux, и файл конфигурации расположен тут:

/etc/httpd/conf/httpd.conf

Убеждаемся, что модули подключены, находим подобные строки:

LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so

После этого, после строки DocumentRoot, вписываем настройки, чтобы появилась возможность мониторинга нагрузки через браузер.

ExtendedStatus On
<Location /server-status>
	SetHandler server-status
	Order Deny,Allow
	Deny from all
	# IP адреса, которые могут просматривать данные
	Allow from 127.0.0.1
	Allow from 192.168.0.189
</Location>

Строка Location /server-status указывает путь, по которому будет доступна статистика, здесь стоит указать свой путь, из соображений безопасности. Так же важный момент это IP адреса, для которых будет доступна статистика. К этим параметрам тоже следует отнестись с вниманием, чтобы статистика не оказалась в открытом доступе.

После внесения изменений в файле конфигурации, нужно перезапустить сам сервера httpd. После этого можно попробовать открыть страницу со статистикой, она будет доступна по адресу:

http://ваш_сайт/sever-status/

Стоит обратить внимание на то, что если у вас имеется файл .htaccess в котором прописаны правила перенаправления, то он может перекрывать доступ к /server-status. Для этого вам так же будет необходимо исключить путь к статистике.

После открытия статистики видим страницу, которая начинается со строк «Apache Server Status for». Ниже будет таблица, в которой нас будут интересовать процессы грузящие систему. По колонке CPU можно определить проблемные процессы. Убираются проблемные процессы по PID (ID процесса), в таблице так же отмечена эта колонка.

Убираем проблемный процесс, посредством консоли:

# kill -s 1911

apache-server-status

После того как вы определили URL который грузит сервер, далее вам предстоит самостоятельно выяснить и устранить причины излишней нагрузки на процессор уже в коде вашего сайта. Вы можете так же воспользоваться другими хорошими инструментами, такими как Munin, довольно хорошая вещь для мониторинга сервера. Бывает и довольно часто подвисшие процессы в MySQL, что тоже не очень сказывается на работе сайта, для этих целей вы можете воспользоваться утилитой Mytop.

  • latteo

Наблюдаю странную проблему второй день. До этого все было в норме.
Все ядра процессора грузятся на 100%. Создается куча активных процессов apache2 -k start
Сижу и периодически рестартую апач, чтобы сервер не помирал.
Картина в htop такая:
2417306a1b7c4de391b275dc811f5750.jpg
Список модулей в принципе дефолтный:
3749af6acdac4426bcb37123b3d96bfd.jpg

Может быть DDOS?


  • Вопрос задан

    более трёх лет назад

  • 1865 просмотров

Кроме ddos, есть вариант криворукий разработчик скрипт какой нибуть сам себя зациклил. Если Сайт выключить, нагрузка сохраняется?
Переместите конфиг с сайтом куда нибуть, рестартаните и посмотрите нагрузку.
ddos можно проверить через iftop.
Так же может такое наблюдатся когда частота процессора ниже необходимой для работы сервера
посмотреть можно
cat /proc/cpuinfo
Проц может и мощный, но система перевела его в пассивный режим

Проблема решена.
Дело было в одном из модулей одного из сайтов. Он начал «разрастаться» путем ошибочного копирования страниц в карте сайте. Боты соответственно создали серьезную нагрузки при запросах к карте.

Пригласить эксперта


  • Показать ещё
    Загружается…

04 февр. 2023, в 13:03

5000 руб./за проект

04 февр. 2023, в 12:31

10000 руб./за проект

04 февр. 2023, в 11:38

1000 руб./за проект

Минуточку внимания

  1. 19.10.2010, 04:25


    #1

    KapaTicT вне форума


    Member


    По умолчанию apache2 грузит проц на 100%

    пару дней назад все работало нормально, тут апач начинает бесится и грузить процесор на 100%, стоит nginx когда его отключаю все нормализуется, т.е у пользователей нету доступа к сайтам, уже второй день сижу парю думаю в чем дело
    вот логи апача
    http://rghost.ru/2966664


  2. 19.10.2010, 04:32


    #2

    ls вне форума


    ISPsystem team

    Аватар для ls


    По умолчанию

    [QUOTE][Mon Oct 18 17:55:04 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
    [Mon Oct 18 17:55:06 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
    [Mon Oct 18 17:55:06 2010] [error] (12)Cannot allocate memory: fork: Unable to fork new process
    /QUOTE]
    DDOSят видимо какой-то сайт.
    логи сайтов смотрите


  3. 19.10.2010, 04:41


    #3

    KapaTicT вне форума


    Member


    По умолчанию

    netstat -na
    показала два ИП адреса один ИП ето ИП самого сервера и один
    89.108.114.130:62855
    вот в txt забросил
    http://rghost.ru/2966884
    если именно етот ИП досит то как можно его блокануть?

    Последний раз редактировалось KapaTicT; 19.10.2010 в 04:45.


  4. 19.10.2010, 04:50


    #4

    KapaTicT вне форума


    Member


    По умолчанию

    да етот ИП меня досил, наконецто, спасибо Вам что подказали такую команду, теперь сайт летает


0 / 0 / 0

Регистрация: 22.11.2017

Сообщений: 3

1

24.08.2010, 18:03. Показов 5750. Ответов 4


Может быть не совсем в тему! Проблема такая: установил Oracle 9i на бук домашний, вроде все нормально встало, после перезагрузки процесс Apache.exe грузит на 100% проц и в папке где сам Apache стоит, в папке logs файл error_log размер свой увеличивает бесконечно, до конца диск забивает своим размером!
Как быть, видимо не правильно установил? Подскажите как исправить это!!! Заранее благодарен.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Эксперт JavaЭксперт С++

8376 / 3598 / 419

Регистрация: 03.07.2009

Сообщений: 10,708

24.08.2010, 22:39

2

bezlikiy, а какое отношение Apache имеет к Oracle?



0



Администратор

82675 / 51248 / 244

Регистрация: 10.04.2006

Сообщений: 13,350

24.08.2010, 22:45

3

bezlikiy, так вы посмотрите, что пишется в error_log.



0



0 / 0 / 0

Регистрация: 22.11.2017

Сообщений: 3

24.08.2010, 23:33

4

ну вообще то это веб-сервер…
Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle!!!
ТАк вот вместе с Oracle 9 устанавливается и апач, который потом грузит проц и увеличивает размер «error_log», аж в 10 ГГб, это же не нормально))) Ставил Oracle на Win XP Pro SP3.



0



Эксперт JavaЭксперт С++

8376 / 3598 / 419

Регистрация: 03.07.2009

Сообщений: 10,708

25.08.2010, 09:55

5

bezlikiy, что-то криво сделали, у меня нормально он установился.
Сделайте то что написал mik-a-el.



0



Вот отрывки из /var/log/apache2/error.log

[Sun May 24 07:36:43 2015] [notice] mod_ruid2/0.9.7 enabled
[Sun May 24 07:36:43 2015] [notice] Apache/2.2.22 (Debian) mod_fcgid/2.3.6 PHP/5.4.4-14+deb7u9 mod_ssl/2.2.22 OpenSSL/1.0.1e configured — resuming normal operations
[Sun May 24 11:02:48 2015] [error] an unknown filter was not added: includes
[Sun May 24 11:02:56 2015] [error] an unknown filter was not added: includes
[Sun May 24 16:21:57 2015] [error] an unknown filter was not added: includes
[Sun May 24 16:31:08 2015] [error] an unknown filter was not added: includes
[Sun May 24 18:05:30 2015] [error] an unknown filter was not added: includes
[Sun May 24 19:16:40 2015] [error] an unknown filter was not added: includes
[Mon May 25 00:06:49 2015] [error] an unknown filter was not added: includes
[Mon May 25 04:38:39 2015] [error] an unknown filter was not added: includes
[Mon May 25 08:53:45 2015] [error] an unknown filter was not added: includes
[Mon May 25 10:37:52 2015] [warn] child process 26113 still did not exit, sending a SIGTERM
[Mon May 25 10:37:52 2015] [warn] child process 32298 still did not exit, sending a SIGTERM
[Mon May 25 10:37:52 2015] [warn] child process 15690 still did not exit, sending a SIGTERM
[Mon May 25 10:37:52 2015] [warn] child process 12945 still did not exit, sending a SIGTERM
[Mon May 25 10:37:52 2015] [warn] child process 6277 still did not exit, sending a SIGTERM
[Mon May 25 10:37:54 2015] [warn] child process 26113 still did not exit, sending a SIGTERM
[Mon May 25 10:37:54 2015] [warn] child process 32298 still did not exit, sending a SIGTERM
[Mon May 25 10:37:54 2015] [warn] child process 15690 still did not exit, sending a SIGTERM
[Mon May 25 10:37:54 2015] [warn] child process 12945 still did not exit, sending a SIGTERM
[Mon May 25 10:37:54 2015] [warn] child process 6277 still did not exit, sending a SIGTERM
[Mon May 25 10:37:56 2015] [warn] child process 26113 still did not exit, sending a SIGTERM
[Mon May 25 10:37:56 2015] [warn] child process 32298 still did not exit, sending a SIGTERM
[Mon May 25 10:37:56 2015] [warn] child process 15690 still did not exit, sending a SIGTERM
[Mon May 25 10:37:56 2015] [warn] child process 12945 still did not exit, sending a SIGTERM
[Mon May 25 10:37:56 2015] [warn] child process 6277 still did not exit, sending a SIGTERM
[Mon May 25 10:37:58 2015] [error] child process 26113 still did not exit, sending a SIGKILL
[Mon May 25 10:37:58 2015] [error] child process 32298 still did not exit, sending a SIGKILL
[Mon May 25 10:37:58 2015] [error] child process 15690 still did not exit, sending a SIGKILL
[Mon May 25 10:37:58 2015] [error] child process 12945 still did not exit, sending a SIGKILL
[Mon May 25 10:37:58 2015] [error] child process 6277 still did not exit, sending a SIGKILL
[Mon May 25 10:37:59 2015] [notice] caught SIGTERM, shutting down
[Mon May 25 10:38:00 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Mon May 25 10:38:00 2015] [notice] mod_ruid2/0.9.7 enabled
[Mon May 25 10:38:00 2015] [notice] Apache/2.2.22 (Debian) mod_fcgid/2.3.6 PHP/5.4.4-14+deb7u9 mod_ssl/2.2.22 OpenSSL/1.0.1e configured — resuming normal operations
[Mon May 25 12:15:48 2015] [error] an unknown filter was not added: includes
[Mon May 25 12:15:50 2015] [error] an unknown filter was not added: includes
[Mon May 25 12:15:50 2015] [error] an unknown filter was not added: includes
[Mon May 25 12:15:50 2015] [error] an unknown filter was not added: includes
[Mon May 25 12:31:53 2015] [error] an unknown filter was not added: includes
[Mon May 25 13:38:13 2015] [error] an unknown filter was not added: includes
[Mon May 25 14:25:46 2015] [error] an unknown filter was not added: includes
[Mon May 25 15:55:59 2015] [error] an unknown filter was not added: includes
[Mon May 25 18:19:24 2015] [error] an unknown filter was not added: includes
[Mon May 25 21:16:14 2015] [error] an unknown filter was not added: includes
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 —:—:— —:—:— —:—:— 0
100 15743 100 15743 0 0 76014 0 —:—:— —:—:— —:—:— 111k
—2015-05-25 21:40:22— http://212.48.75.38/pq1
Connecting to 212.48.75.38:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 15743 (15K) [text/plain]
Saving to: `pq1.1′

rm: cannot remove `/tmp/minify/0/45e9ac2aeb4a6ffea7eaed9e1fe6542d3fdeb40b.js’: Permission denied
rm: cannot remove `/tmp/minify/0/21ffe90a77d8ab1ecb6782f904360305f1bcb698.js’: Permission denied
rm: cannot remove `/tmp/minify/0/ccb345783ca65f6b81cd76ab667ff33fc4e29a18.js’: Permission denied
rm: cannot remove `/tmp/minify/0/db0b04223e609932de32108874376f33e39aae2a.js’: Permission denied
rm: cannot remove `/tmp/minify/0/e815bfcfcdeaebeae1bda528243bfcf7bee1bb8e.js’: Permission denied
rm: cannot remove `/tmp/minify/0/25413d17d81ed45c6d9c27e26df9dac172a27113.css’: Permission denied
rm: cannot remove `/tmp/minify/0/6103976ef890dc18dccec091f035cd7f836fac61.css’: Permission denied
rm: cannot remove `/tmp/minify/0/495e78626183fea14b7404cf551d81f2b489d0d5.js’: Permission denied
rm: cannot remove `/tmp/minify/0/abf0303aa5b99214da409abc272b46a1c907750e.css’: Permission denied
rm: cannot remove `/tmp/minify/0/59aee07edffbc4d1b90bf6de644612f53c367aa1.js’: Permission denied

gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49
gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x47 0x49

[Sat May 23 18:26:57 2015] [error] an unknown filter was not added: includes
[Sun May 24 01:12:34 2015] [error] an unknown filter was not added: includes
[Sun May 24 07:36:40 2015] [notice] Graceful restart requested, doing restart
[Sun May 24 07:36:40 2015] [error] (9)Bad file descriptor: apr_socket_accept: (client socket)

Вот файл /var/log/apache2/access.log

127.0.0.1 — — [19/May/2014:11:05:09 +0400] «GET / HTTP/1.1» 200 484 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:09 +0400] «GET /favicon.ico HTTP/1.1» 404 498 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:09 +0400] «GET /favicon.ico HTTP/1.1» 404 498 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:10 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:10 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:10 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:11 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:11 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:11 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:05:12 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:35 +0400] «GET / HTTP/1.1» 304 210 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:35 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:36 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:36 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:36 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:36 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:07:36 +0400] «GET / HTTP/1.1» 304 209 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:10:50 +0400] «GET / HTTP/1.1» 200 484 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»
127.0.0.1 — — [19/May/2014:11:10:50 +0400] «GET /favicon.ico HTTP/1.1» 404 498 «-» «Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140429 Firefox/24.0 Iceweasel/24.5.0»

morozovsk:
это что шутка? :) а где же тогда :)

Это не шутка.:)

Надо разрешить этот путь в конфиге апача, лучше запаролить и запретить всем кроме вашего провайдера (или локалхоста).

Вот пример для незапароленного локалхоста (и только для него).

Если так сделаете, то сможете смотреть с самого сервера, зайдя через ssh.

 <Location /server-status>

SetHandler server-status

Order Deny,Allow
Deny from all
Allow from localhost
</Location>

http://httpd.apache.org/docs/2.0/ru/mod/mod_status.html

Он выдаёт примерно такое (сейчас колонки немного смещаются при отобращении):

Scoreboard Key:

"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-9 25290 0/58/17117 _ 30.40 13 0 0.0 0.07 25.06 167.23.241.61 ******.ru GET /images/img12.jpg HTTP/1.1
0-9 25290 1/30/17962 K 30.69 3 89 0.0 0.08 24.99 194.67.28.13 ******.ru GET /index.php?action=12 HTTP/1.1
0-9 25290 0/31/17530 _ 30.25 16 0 0.0 0.09 23.44 167.23.241.61 ******.ru GET /data/dqata.html HTTP/1.1

System and Httpd Information

System:

# cat /proc/version

Linux version 3.10.0-514.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Dec 6 23:06:41 UTC 2016

Httpd Version:

# httpd -v

Server version: Apache/2.4.6 (CentOS)
Server built:   Nov 14 2016 18:04:44

Make MPM Prefork Configure

Get MPM In The Default

# sudo apachectl -t -D DUMP_MODULES |grep mpm

[Thu Jan 12 16:06:11.778080 2017] [so:warn] [pid 23727] AH01574: module wsgi_module is already loaded, skipping
 mpm_prefork_module (shared)

That means mpm_prefork_module is installed and enabled. You can change it to the mode of event, worker or prefork(default) in the file 00-mpm.conf, which file path is /etc/httpd/conf.modules.d.

The reference of Apache MPM is Apache MPM Common Directives

Add Personal Configure

# sudo cat >> /etc/httpd/conf/httpd.conf <<-'EOF'
<IfModule prefork.c>
    ServerLimit              20
    StartServers             15
    MinSpareServers           5
    MaxSpareServers          10
    MaxClients               15
    MaxRequestsPerChild      25
</IfModule>
EOF
  • My VM has 2GB memory and 2 Processors

Read details of this configure in the above-mentioned reference.

Restart Httpd

# sudo systemctl restart httpd.service

Inspect Status

# systemctl status httpd.service 

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2017-01-12 13:40:12 CST; 2h 48min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 16576 (httpd)
   Status: "Total requests: 3625; Current requests/sec: -70.2; Current traffic:   0 B/sec"
   Memory: 869.7M
   CGroup: /system.slice/httpd.service
           ├─16576 /usr/sbin/httpd -DFOREGROUND
           ├─24122 /usr/sbin/httpd -DFOREGROUND
           ├─24125 /usr/sbin/httpd -DFOREGROUND
           ├─24154 /usr/sbin/httpd -DFOREGROUND
           ├─24157 /usr/sbin/httpd -DFOREGROUND
           ├─24211 /usr/sbin/httpd -DFOREGROUND
           ├─24219 /usr/sbin/httpd -DFOREGROUND
           └─24236 /usr/sbin/httpd -DFOREGROUND

Jan 12 13:40:12 192-168-1-68.node systemd[1]: Starting The Apache HTTP Server...
Jan 12 13:40:12 192-168-1-68.node httpd[16576]: [Thu Jan 12 13:40:12.614941 2017] [so:warn] [pid 16576] AH01574: module wsgi_module is already loaded, skipping
Jan 12 13:40:12 192-168-1-68.node systemd[1]: Started The Apache HTTP Server.

or

# ps aux|grep httpd

root     16576  0.0  0.0 232232   504 ?        Ss   13:40   0:01 /usr/sbin/httpd -DFOREGROUND
apache   24296 10.9  4.8 542936 91500 ?        S    16:29   0:16 /usr/sbin/httpd -DFOREGROUND
apache   24310 10.6  4.7 542804 89752 ?        S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24343 11.2  6.5 542804 123944 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24344 11.1  6.5 542804 124084 ?       S    16:29   0:14 /usr/sbin/httpd -DFOREGROUND
apache   24345 11.6  6.7 542804 126616 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24347 11.0  6.6 542804 125764 ?       S    16:29   0:14 /usr/sbin/httpd -DFOREGROUND
apache   24377 12.0  6.7 542804 126396 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24378 12.4  6.7 542804 126448 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24408 12.3  6.6 542804 126032 ?       S    16:29   0:14 /usr/sbin/httpd -DFOREGROUND
apache   24450 18.6  5.4 511560 102520 ?       R    16:30   0:10 /usr/sbin/httpd -DFOREGROUND
apache   24458 19.4  4.7 498476 89548 ?        S    16:30   0:08 /usr/sbin/httpd -DFOREGROUND
apache   24466 21.4  4.5 495424 86416 ?        R    16:31   0:07 /usr/sbin/httpd -DFOREGROUND
apache   24484  0.5  0.3 236456  5760 ?        S    16:31   0:00 /usr/sbin/httpd -DFOREGROUND
root     24496  0.0  0.0 112652   964 pts/0    S+   16:31   0:00 grep --color=auto httpd

My apache servers get a request at 2 per second. Before, the numbers of httpd processes increased until the system halted. Aftering setting the MPM Prefork, it works fine.

System and Httpd Information

System:

# cat /proc/version

Linux version 3.10.0-514.2.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Dec 6 23:06:41 UTC 2016

Httpd Version:

# httpd -v

Server version: Apache/2.4.6 (CentOS)
Server built:   Nov 14 2016 18:04:44

Make MPM Prefork Configure

Get MPM In The Default

# sudo apachectl -t -D DUMP_MODULES |grep mpm

[Thu Jan 12 16:06:11.778080 2017] [so:warn] [pid 23727] AH01574: module wsgi_module is already loaded, skipping
 mpm_prefork_module (shared)

That means mpm_prefork_module is installed and enabled. You can change it to the mode of event, worker or prefork(default) in the file 00-mpm.conf, which file path is /etc/httpd/conf.modules.d.

The reference of Apache MPM is Apache MPM Common Directives

Add Personal Configure

# sudo cat >> /etc/httpd/conf/httpd.conf <<-'EOF'
<IfModule prefork.c>
    ServerLimit              20
    StartServers             15
    MinSpareServers           5
    MaxSpareServers          10
    MaxClients               15
    MaxRequestsPerChild      25
</IfModule>
EOF
  • My VM has 2GB memory and 2 Processors

Read details of this configure in the above-mentioned reference.

Restart Httpd

# sudo systemctl restart httpd.service

Inspect Status

# systemctl status httpd.service 

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2017-01-12 13:40:12 CST; 2h 48min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 16576 (httpd)
   Status: "Total requests: 3625; Current requests/sec: -70.2; Current traffic:   0 B/sec"
   Memory: 869.7M
   CGroup: /system.slice/httpd.service
           ├─16576 /usr/sbin/httpd -DFOREGROUND
           ├─24122 /usr/sbin/httpd -DFOREGROUND
           ├─24125 /usr/sbin/httpd -DFOREGROUND
           ├─24154 /usr/sbin/httpd -DFOREGROUND
           ├─24157 /usr/sbin/httpd -DFOREGROUND
           ├─24211 /usr/sbin/httpd -DFOREGROUND
           ├─24219 /usr/sbin/httpd -DFOREGROUND
           └─24236 /usr/sbin/httpd -DFOREGROUND

Jan 12 13:40:12 192-168-1-68.node systemd[1]: Starting The Apache HTTP Server...
Jan 12 13:40:12 192-168-1-68.node httpd[16576]: [Thu Jan 12 13:40:12.614941 2017] [so:warn] [pid 16576] AH01574: module wsgi_module is already loaded, skipping
Jan 12 13:40:12 192-168-1-68.node systemd[1]: Started The Apache HTTP Server.

or

# ps aux|grep httpd

root     16576  0.0  0.0 232232   504 ?        Ss   13:40   0:01 /usr/sbin/httpd -DFOREGROUND
apache   24296 10.9  4.8 542936 91500 ?        S    16:29   0:16 /usr/sbin/httpd -DFOREGROUND
apache   24310 10.6  4.7 542804 89752 ?        S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24343 11.2  6.5 542804 123944 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24344 11.1  6.5 542804 124084 ?       S    16:29   0:14 /usr/sbin/httpd -DFOREGROUND
apache   24345 11.6  6.7 542804 126616 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24347 11.0  6.6 542804 125764 ?       S    16:29   0:14 /usr/sbin/httpd -DFOREGROUND
apache   24377 12.0  6.7 542804 126396 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24378 12.4  6.7 542804 126448 ?       S    16:29   0:15 /usr/sbin/httpd -DFOREGROUND
apache   24408 12.3  6.6 542804 126032 ?       S    16:29   0:14 /usr/sbin/httpd -DFOREGROUND
apache   24450 18.6  5.4 511560 102520 ?       R    16:30   0:10 /usr/sbin/httpd -DFOREGROUND
apache   24458 19.4  4.7 498476 89548 ?        S    16:30   0:08 /usr/sbin/httpd -DFOREGROUND
apache   24466 21.4  4.5 495424 86416 ?        R    16:31   0:07 /usr/sbin/httpd -DFOREGROUND
apache   24484  0.5  0.3 236456  5760 ?        S    16:31   0:00 /usr/sbin/httpd -DFOREGROUND
root     24496  0.0  0.0 112652   964 pts/0    S+   16:31   0:00 grep --color=auto httpd

My apache servers get a request at 2 per second. Before, the numbers of httpd processes increased until the system halted. Aftering setting the MPM Prefork, it works fine.

Понравилась статья? Поделить с друзьями:
  • Apache php mysql windows server 2012
  • Apache openoffice скачать бесплатно на русском языке windows 10
  • Apache open office for windows 10
  • Apache mysql php phpmyadmin windows server
  • Apache 64 bit windows 1c msi