Nous gérons un site Web Drupal lourd qui effectue une modélisation financière. Nous semblons rencontrer une sorte de fuite de mémoire étant donné que les heures supplémentaires utilisées par Apache augmentent alors que le nombre de processus Apache reste stable:
Nous savons que le problème de mémoire vient d'apache / PHP car chaque fois que nous émettons un problème d' /etc/init.d/httpd reload
utilisation de la mémoire (voir capture d'écran ci-dessus et sorties CLI ci-dessous):
Avant le rechargement httpd
$ gratuit total des tampons partagés gratuits utilisés mis en cache Mem: 49447692 45926468 3521224 0 191100 22609728 - / + tampons / cache: 23125640 26322052 Échange: 2097144 536552 1560592
Après le rechargement httpd
$ gratuit total des tampons partagés gratuits utilisés mis en cache Mem: 49447692 28905752 20541940 0 191360 22598428 - / + tampons / cache: 6115964 43331728 Échange: 2097144 536552 1560592
Chaque thread apache se voit attribuer un PHP memory_limit
de 512 Mo, ce qui explique l'utilisation élevée de la mémoire, le faible volume de demandes et un délai max_execution_time
de 120 secondes qui devrait terminer les threads dont l'exécution prend plus de temps, et devrait donc empêcher la croissance constante de l'utilisation de la mémoire que nous sommes. voyant.
Q: Comment pourrions-nous rechercher la cause de cette fuite de mémoire?
Idéalement, je recherche des étapes de dépannage que je peux effectuer sur le système sans avoir à déranger l'équipe de développement.
Information additionnelle:
OS: RHEL 5.6
PHP: 5.3
Drupal: 6.x
MySQL: 5.6
Pour info, nous sommes conscients du problème de permutation que nous étudions séparément et n'a rien à voir avec la fuite de mémoire que nous avons observée avant le début de la permutation.
memcached
bibliothèque PHP . Sur la base de la page d'administration de memcache memcache.php
, tout ce que nous pouvons voir, c'est que nous avons alloué 5GB
à memcache, qui 3.3GB
est utilisé. Ce serait formidable si vous pouviez nous aider davantage ici.
memcached
démon lui-même est probablement très bien. C'est la bibliothèque PHP memcache qui pourrait ou non fuir la mémoire (et donc augmenter la consommation de mémoire des processus Apache). Mon problème était il y a environ 1-2 ans, donc les choses auraient pu être corrigées après cela. Quoi qu'il en soit, si memcached n'est pas obligatoire pour vous, essayez de le désactiver pendant un certain temps et voyez si l'utilisation de la mémoire Apache augmente toujours.
httpd
, l'utilisation de la mémoire continue de croître et la boîte se bloque finalement avec certains messages de noyau de mémoire insuffisante. Les performances sont bonnes (jusqu'à ce que l'utilisation de la mémoire approche de la limite de mémoire). Veuillez ignorer le problème de permutation.