Phusion Passenger установлен по умолчанию oom_adj - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю в компании, которая запускает приложение ruby, которое зависит от httpd + passenger.

  • ОС: Centos 7.4
  • Версия для пассажиров: 5.2.0-1.el7.x86_64
  • Httpd версия: 2.4.6-67.el7

Я заметил, что в случае утечки памяти в приложении ruby ​​менеджер OOM в Linux никогда не убьет процесс пассажира, который использует всю память, потому что процесс Passenger Core изменяет значение oom_adj на -17 (что отключает) с процессы убийства разветвляются из него.

Я подтвердил, что httpd работает с oom_adj == 0, но Passenger Core, который разветвляется от httpd, работает с oom_adj == -17. Я уже несколько раз читал документы по конфигурации для пассажиров и не могу найти опцию конфигурации, которая позволяет мне изменить значение обратно на 0.

Ядро Passenger работает с преднамеренным значением oom_adj -17, или я обнаружил ошибку?

Также есть ли способ настроить Phusion Passenger для работы с требуемым значением oom_adj?

sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-04-24 21:37:12 UTC; 26s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 31269 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 31280 (httpd)
   Status: "Total requests: 4; Current requests/sec: 0.3; Current traffic: 1.2KB/sec"
   CGroup: /system.slice/httpd.service
           ├─31280 /usr/sbin/httpd -DFOREGROUND
           ├─31307 Passenger watchdog
           ├─31310 Passenger core
           ├─31330 /usr/sbin/httpd -DFOREGROUND
           ├─31331 /usr/sbin/httpd -DFOREGROUND
           ├─31332 /usr/sbin/httpd -DFOREGROUND
           ├─31333 /usr/sbin/httpd -DFOREGROUND
           ├─31334 /usr/sbin/httpd -DFOREGROUND
           ├─31345 Passenger AppPreloader: /srv/websites/{{ domain }}/current
           ├─31415 /usr/sbin/httpd -DFOREGROUND
           ├─31434 Passenger RubyApp: /srv/websites/{{ domain }}/current (production)
           ├─31444 Passenger RubyApp: /srv/websites/{{ domain }}/current (production)
           ├─31458 Passenger RubyApp: /srv/websites/{{ domain }}/current (production)
           └─31515 Passenger RubyApp: /srv/websites/{{ domain }}/current (production)
           
cat /proc/31280/oom_adj 
0
cat /proc/31310/oom_adj 
-17
cat /proc/31434/oom_adj 
-17
...