Out of Memory und Segfault Fehler

mintess

Member
Hi zusammen,

bin echt ratlos mittlerweile.
Eine ISPConfig Multiserver Installation auf Debian Jessie mit PHP5-FPM Version 5.6.15
Die Module memcached und opcache sind aus:

Ich bekomme non-stop Fehler im Apache error.log:
Code:
[Sun Nov 08 16:33:20 2015] [notice] child pid 6370 exit signal Segmentation fault (11)
[Sun Nov 08 16:33:22 2015] [notice] child pid 6371 exit signal Segmentation fault (11)
[Sun Nov 08 16:36:23 2015] [notice] child pid 1979 exit signal Segmentation fault (11)
[FATAL] failed to allocate memory
[Sun Nov 08 16:38:52 2015] [notice] child pid 6602 exit signal Segmentation fault (11)
[Sun Nov 08 16:39:17 2015] [notice] child pid 6676 exit signal Segmentation fault (11)
[Sun Nov 08 16:39:25 2015] [notice] child pid 6674 exit signal Segmentation fault (11)
[Sun Nov 08 16:40:31 2015] [notice] child pid 6745 exit signal Segmentation fault (11)
[Sun Nov 08 16:40:32 2015] [notice] child pid 6746 exit signal Segmentation fault (11)
...

Und in den Logs der einzelnen Webseiten:
Code:
[Sun Nov 08 16:54:01 2015] [error] [client xx.xx.xx.xx] FastCGI: server "/var/www/clients/clientx/webx/cgi-bin/php5-fcgi-*-80-xxxx.xx" stderr: PHP message: PHP Fatal error:  Out of memory (allocated 2883584) (tried to allocate 248 bytes) in /var/www/clients/clientx/webx/web/x/x.php on line 18, referer: http://x
[Sun Nov 08 16:54:01 2015] [error] [client xx.xx.xx.xx] FastCGI: server "/var/www/clients/clientx/webx/cgi-bin/php5-fcgi-*-80-xxxx.xx" stderr: PHP message: PHP Fatal error:  Out of memory (allocated 3932160) (tried to allocate 3072 bytes) in /var/www/clients/clientx/webx/web/x/x/x.php on line 70, referer: http://x
[Sun Nov 08 16:54:01 2015] [error] [client xx.xx.xx.xx] FastCGI: server "/var/www/clients/clientx/webx/cgi-bin/php5-fcgi-*-80-xxxx.xx" stderr: PHP message: PHP Fatal error:  Out of memory (allocated 5767168) (tried to allocate 12288 bytes) in /var/www/clients/clientx/webx/web/x/x/x.php on line 63, referer: http://x
[Sun Nov 08 16:54:02 2015] [error] [client xx.xx.xx.xx] FastCGI: server "/var/www/clients/clientx/webx/cgi-bin/php5-fcgi-*-80-xxxx.xx" stderr: PHP message: PHP Fatal error:  Out of memory (allocated 13893632) (tried to allocate 196608 bytes) in /var/www/clients/clientx/webx/web/x/x/x.php on line 413, referer: https://www.google.de/

php5-fpm.log
Code:
[08-Nov-2015 16:40:46] WARNING: [pool webX] child 6425 exited with code 1 after 353.583436 seconds from start
[08-Nov-2015 16:40:46] NOTICE: [pool webX] child 6803 started
[08-Nov-2015 16:41:06] WARNING: [pool webY] child 6818 exited with code 1 after 0.011682 seconds from start
[08-Nov-2015 16:41:06] NOTICE: [pool webY] child 6820 started
[08-Nov-2015 16:41:44] WARNING: [pool webX] child 6803 exited on signal 11 (SIGSEGV) after 57.552552 seconds from start
[08-Nov-2015 16:41:44] NOTICE: [pool webX] child 6834 started
[08-Nov-2015 17:04:39] WARNING: [pool webX] child 8655 exited on signal 11 (SIGSEGV) after 46.441342 seconds from start
[08-Nov-2015 17:04:39] NOTICE: [pool webX] child 8674 started
[08-Nov-2015 17:05:50] WARNING: [pool webX] child 8725 exited on signal 11 (SIGSEGV) after 32.048775 seconds from start
[08-Nov-2015 17:05:50] NOTICE: [pool webX] child 8729 started
[08-Nov-2015 17:07:00] WARNING: [pool webX] child 8729 exited on signal 11 (SIGSEGV) after 70.605484 seconds from start
[08-Nov-2015 17:07:00] NOTICE: [pool webX] child 8756 started


Aber Speicher ist genug da:
Code:
  total  used  free  shared  buffers  cached
Mem:  9,8G  9,3G  500M  0B  620M  6,9G

Generelle FPM Einstellung (/etc/php5/fpm/php-fpm.conf):
Code:
error_log = /var/log/php5-fpm.log
emergency_restart_threshold = 20
emergency_restart_interval = 1m
process_control_timeout = 1m
events.mechanism = epoll

Pool-Einstellungen (/etc/php5/fpm/pool.d/webX.conf):
Code:
pm = ondemand
pm.max_children = 10
pm.process_idle_timeout = 10s;
pm.max_requests = 200

PHP.ini (/etc/php5/fpm/php.ini):
Code:
memory_limit = 64M
max_input_time = 60
max_execution_time = 30
opcache.enable=0

Irgendwo fehlt Speicher, aber wo? Welche Config Datei übersehe ich?
 

florian030

Well-Known Member
Für die jeweilige Webseite ist offenbar das PHP memory limit zu klein. Du kannst ja mal eine info.php anlegen und aufrufen.
 

mintess

Member
Hi,
danke fürs drüber gucken.

Das merkwürdige ist, diese memory Allocation Fehler laufen über sämtliche Web error.logs drüber, sporadisch über verschiedene Seiten und mit verschiedenen zugewiesenen memory_limits.
Habe auch einem web mal memory_limit = 512M zugewiesen -> gleicher Effekt.
Die meisten anderen liegen bei 64M

Wenn ich das richtig interpretiere ist der Speicher nicht wirklich voll:
Code:
             total       used       free     shared    buffers     cached
Mem:         10027       9382        645          0        582       7026
-/+ buffers/cache:       1773       8254
Swap:          559          3        556

Und "top" sagt dazu:
Code:
 MEM: 9927M  Used: 1760M  Buffers: 584M  Cache: 7102M

Aber "top" meldet mir auch 35 Apache Prozesse analog diesem:
Code:
USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
www-data 20 0 627M 107M 2740 S 0.0 1.1 0:00.36 /usr/sbin/apache2 -k start

dazu kommen dann noch die php Prozesse:
Code:
USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
webX 20 0 307M 26208 5632 S 0.0 0.3 0:01.59 php-fpm pool webX

Interpretiere ich das richtig das sich jeder Apache Prozess 107M reserviert, und jeder PHP Prozess 0,03MB?
35x107 wären bereits 3,8GB Ram nur überwiegend schlummernde Apache Prozesse, wo kann man das denn einstellen?
 
Zuletzt bearbeitet:

Werbung

Top