Слишком много спящих Apache процессов при запуске CGI-скрипта - PullRequest
0 голосов
/ 28 апреля 2020

Моя система ( Raspbian GNU / Linux 10 (buster)) работает с некоторыми программами (разработанными мной), которые показывают результаты как HTML, поэтому я установил Apache 2 , чтобы удаленные пользователи могли одновременно работать ( CGI ) и просматривать результаты.

Все работало нормально до нескольких дней go, когда, я не знаю почему, загрузка ЦП начала повышаться слишком (примерно на 20,0 или даже больше) с неожиданными интервалами (периодически, может быть, минуты или часы между каждым повышением ЦП), и я не знаю, происходит ли такая перегрузка от моих программ.

Итак, я начал устранение неполадок с htop:

  1  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]   Tasks: 123, 139 thr; 4 running
  2  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]   Load average: 4.54 3.87 8.35
  3  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]   Uptime: 06:52:41
  4  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||  242M/926M]
  Swp[|||                                                                        3.00M/100.0M]

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
22628 www-data   20   0  235M  7400  2396 S  0.0  0.8  0:00.09 ¦  ¦  +- /usr/sbin/apache2 -k start
22627 www-data   20   0  235M  7400  2396 S  0.0  0.8  0:00.11 ¦  ¦  +- /usr/sbin/apache2 -k start
22626 www-data   20   0  235M  7400  2396 S  0.0  0.8  0:00.11 ¦  ¦  +- /usr/sbin/apache2 -k start
22625 www-data   20   0  235M  7400  2396 S  0.0  0.8  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
22624 www-data   20   0  235M  7400  2396 S  0.0  0.8  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
22623 www-data   20   0  235M  7400  2396 S  0.0  0.8  0:00.12 ¦  ¦  +- /usr/sbin/apache2 -k start
17533 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:03.13 ¦  +- /usr/sbin/apache2 -k start
17698 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.23 ¦  ¦  +- /usr/sbin/apache2 -k start
17697 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.08 ¦  ¦  +- /usr/sbin/apache2 -k start
17688 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.12 ¦  ¦  +- /usr/sbin/apache2 -k start
17687 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
17686 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.09 ¦  ¦  +- /usr/sbin/apache2 -k start
17639 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
17638 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.11 ¦  ¦  +- /usr/sbin/apache2 -k start
17637 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.09 ¦  ¦  +- /usr/sbin/apache2 -k start
17636 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.08 ¦  ¦  +- /usr/sbin/apache2 -k start
17635 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
17634 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.11 ¦  ¦  +- /usr/sbin/apache2 -k start
17633 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
17632 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.12 ¦  ¦  +- /usr/sbin/apache2 -k start
17631 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
17630 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.14 ¦  ¦  +- /usr/sbin/apache2 -k start
17629 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.12 ¦  ¦  +- /usr/sbin/apache2 -k start
17628 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
17627 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.12 ¦  ¦  +- /usr/sbin/apache2 -k start
17626 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.07 ¦  ¦  +- /usr/sbin/apache2 -k start
17625 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.13 ¦  ¦  +- /usr/sbin/apache2 -k start
17624 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.12 ¦  ¦  +- /usr/sbin/apache2 -k start
17623 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.11 ¦  ¦  +- /usr/sbin/apache2 -k start
17618 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.09 ¦  ¦  +- /usr/sbin/apache2 -k start
17585 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.11 ¦  ¦  +- /usr/sbin/apache2 -k start
17584 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.08 ¦  ¦  +- /usr/sbin/apache2 -k start
17583 www-data   20   0  237M  8828  2396 S  0.0  0.9  0:00.10 ¦  ¦  +- /usr/sbin/apache2 -k start
 3557 www-data   20   0  7716  2872  2036 S  0.0  0.3  0:42.68 ¦  +- /usr/sbin/apache2 -k start
  470 root       20   0 10964  3360  2796 S  0.0  0.4  0:02.29 +- wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
  467 root       20   0 10692  5556  5080 S  0.0  0.6  0:00.12 +- /usr/sbin/sshd -D
29598 root       20   0 12204  6000  5264 S  0.0  0.6  0:00.32 ¦  +- sshd: [accepted]
29608 luis       20   0 12204  3284  2500 S  0.0  0.3  0:00.04 ¦  ¦  +- sshd: luis@notty
29610 luis       20   0  2056  1332  1252 S  0.0  0.1  0:00.03 ¦  ¦     +- /usr/lib/openssh/sftp-server
25890 root       20   0 12204  6168  5392 S  0.0  0.7  0:00.85 ¦  +- sshd: luis [priv]
26014 luis       20   0 12204  3884  3132 S  1.1  0.4  1:23.57 ¦  ¦  +- sshd: luis@pts/3
26017 luis       20   0  8524  3704  2708 S  0.0  0.4  0:00.69 ¦  ¦     +- -bash
21281 luis       20   0  9156  4008  2336 R  7.4  0.4  5:10.98 ¦  ¦        +- htop
13430 root       20   0 12204  6192  5396 S  0.0  0.7  0:01.12 ¦  +- sshd: luis [priv]
14884 luis       20   0 12204  3864  3064 S  0.0  0.4  0:01.65 ¦     +- sshd: luis@pts/1
14908 luis       20   0  8648  2992  1948 S  0.0  0.3  0:01.14 ¦        +- -bash
10235 luis       20   0  8000  2300  2120 S  0.0  0.2  0:00.16 ¦           +- screen -r

Подобный htop экран в формате изображения для облегчения готовности:

enter image description here

Как можно заметить, существует несколько apache2 -k start процессов, которые были разветвлены, и мне было интересно, может ли это быть, в любом случае, проблемой.

На этом другом экране мы видим, что apache2 -k start разветвляет ожидаемый процесс (с именем Principal.cgi), запущенный удаленным пользователем через CGI. Также запускаются и другие программы, такие как ComprobacionPreviaDeFecha.sh или GenerarLog.sh; это ожидаемое поведение :

  1  [||||||||||||||||||||||||||||||||||||||||||||||||||                                56.5%]   Tasks: 90, 140 thr; 2 running
  2  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||             77.8%]   Load average: 3.21 4.48 5.53
  3  [||||||||||||||||||||||||||||||||||||||                                            42.9%]   Uptime: 07:50:18
  4  [||||||||||||||||||||||||||||||||||||||||||||||||||                                57.0%]
  Mem[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||     208M/926M]
  Swp[|||                                                                        3.00M/100.0M]

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
17583 www-data   20   0  237M  9816  2396 S  0.0  1.0  0:00.35 ¦  ¦  +- /usr/sbin/apache2 -k start
 3557 www-data   20   0  7716  2872  2036 S  0.0  0.3  0:53.83 ¦  +- /usr/sbin/apache2 -k start
11237 www-data   20   0  3196  2380  2204 S  0.0  0.3  0:00.02 ¦     +- bash /var/www/html/Pruebas/PruebaLog02/Principal.cgi StatusReport
11243 www-data   20   0  3196  2316  2140 S  0.0  0.2  0:00.03 ¦        +- bash /bin/ComprobacionPreviaDeFecha.sh StatusReport
11252 www-data   20   0  3196  2244  2060 S  0.0  0.2  0:00.04 ¦           +- bash /bin/GenerarLog.sh StatusReport
11280 www-data   20   0  3328  2436  2060 S  0.6  0.3  0:00.10 ¦              +- bash /bin/StatusReport.sh -o Resultado.html -cgi ../Principal.cgi?StatusReport
11511 www-data   20   0  7224  2324  1996 R 78.6  0.2  0:01.23 ¦                 +- LogManager -o Internet - Estado -u -l
11527 www-data   20   0  1940   360   308 S  0.0  0.0  0:00.00 ¦                    +- sh -c tac /var/log/LogManager/Logs/Principal.log
11533 www-data   20   0  1884   320   268 S  8.3  0.0  0:00.13 ¦                       +- tac /var/log/LogManager/Logs/Principal.log
  470 root       20   0 10964  3360  2796 S  0.0  0.4  0:02.61 +- wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
  467 root       20   0 10692  5556  5080 S  0.0  0.6  0:00.12 +- /usr/sbin/sshd -D

Подобный htop экран в формате изображения для облегчения готовности:

enter image description here

Мой вопрос: стоит ли мне беспокоиться о том, что чрезмерное число apache2 -k start процессов? Не должны ли они все исчезнуть через некоторое время? Может ли это вызвать какие-то пики процессора? Или, может быть, это нормальное поведение Apache 2?

Дополнительные данные :

  • Существует 4 (или так кажется) основных apache2 -k start процесса кажется, что они разветвляются на остальных (см. первое изображение выше).
  • Как видно, подозрительные процессы запускаются пользователем www-data. Это (удаленный) пользователь, которого моя система назначает для запуска сценариев CGI.
  • Все эти несколько процессов apache2 -k start, похоже, находятся в состоянии sleeping (обратите внимание на S на изображениях).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...