PHP-FPM prendre trop de mémoire

J'utilise Nginx+PHP-FPM avec php 5.3.6 et c'était bien le travail pendant des semaines.
Soudain, chaque PHP-FPM enfant a commencé à prendre trop de mémoire. Dans les premières semaines de chaque PHP-FPM enfant utilisé pour prendre des 3MB maintenant quelques enfants prennent de 700 mo.
Quelqu'un peut sur ce guide?

This script I used to get memory usage by child pid 
 http://www.pixelbeat.org/scripts/ps_mem.py.

It could be verified by 'top' method too

top output::
------------------------------
------------------------------
28419 daemon    20   0  844m 757m 4200 S    0  6.4   0:14.27 php-fpm                                                          

16788 daemon    20   0  700m 614m 4632 S    0  5.2   0:28.34 php-fpm                                                          

29450 daemon    20   0  669m 581m 3548 S    0  4.9   0:08.31 php-fpm                                                          

17881 daemon    20   0  642m 556m 4108 S    0  4.7   0:14.83 php-fpm                                                          

19048 daemon    20   0  642m 555m 4108 S    0  4.7   0:08.86 php-fpm 
11956 daemon    20   0 97612  10m 5476 S    4  0.1   0:39.57 php-fpm                                                          
11993 daemon    20   0 97560  10m 5188 S    4  0.1   0:39.18 php-fpm                                                          
11925 daemon    20   0 97328  10m 5144 D    3  0.1   0:38.68 php-fpm                                                          
11953 daemon    20   0 97748  10m 5172 S    4  0.1   0:38.51 php-fpm   

php-fpm.conf:

/etc/php-fpm/php-fpm.conf
listen = 127.0.0.1:9000
user = daemon
group = daemon

pm = dynamic
pm.max_children = 2000
pm.start_servers = 50
pm.min_spare_servers = 40
pm.max_spare_servers = 90
pm.max_requests = 10000

Suivants sont les plus debug entrées:

pmap::

pmap 28419
0000000000b52000     96K rw---    [ anon ]
0000000001a49000   1668K rw---    [ anon ]
0000000001bea000    208K rw---    [ anon ]
0000000001c1e000 770476K rw---    [ anon ]

strace::

strace -p 28419
Process 28419 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>) = 0
recvfrom(4, 0x1bda1d0, 8196, 64, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}], 1, 5000)  = 0 (Timeout)
recvfrom(4, 0x1bda1d0, 8196, 64, 0, 0)  = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}], 1, 5000^C <unfinished ...>
peut-être un trop ignorants commentaire - une chance de scripts PHP commencé à manger trop de mémoire - par le chargement d'un trop grand nombre de données, par exemple?
Votre site est-il occupé? Quel est le nombre de requêtes par minute? Cela pourrait certains de fuite de mémoire dans l'une de vos bibliothèques php, ce qui est courant en php. 🙂
Avez-vous vérifié votre slowlog? Il est défini dans votre php-fpm fichier de configuration.
En fonction de votre réglage: pm.min_spare_servers = 40, vous devriez avoir au moins 40 ralenti php processus de sortie supérieur. C'est trop gros! Pourriez-vous dresser la liste de tous les php-fpm info? Par exemple, exécuter la commande 'ps aux |grep php-fpm |grep -v grep'

OriginalL'auteur amolrajoba | 2013-03-12