6 votes

PHP/APC erreur fatale, apc_mmap: échec de l'appel mmap

Je vois des pics intermittents d'utilisation du processeur à 100%, plutôt corrélés à ces entrées de journal :

[27-Feb-2012 13:29:29] Erreur fatale de PHP: Démarrage de PHP : apc_mmap: échec du mmap: dans Inconnu à la ligne 0
[27-Feb-2012 13:29:30] Erreur fatale de PHP: Démarrage de PHP : apc_mmap: échec du mmap: dans Inconnu à la ligne 0
[27-Feb-2012 13:29:31] Erreur fatale de PHP: Démarrage de PHP : apc_mmap: échec du mmap: dans Inconnu à la ligne 0
[27-Feb-2012 13:29:31] Erreur fatale de PHP: Démarrage de PHP : apc_mmap: échec du mmap: dans Inconnu à la ligne 0

phpinfo() indique qu'APC est configuré, et autant que je puisse le dire, cette erreur ne provoque pas d'erreurs 500 visibles sur le site en direct, qui est une installation WordPress qui reçoit environ 600k vues par mois. Google n'a pas été utile jusqu'à présent, et j'espérais que quelqu'un ici aurait un aperçu de ce qui cause cela et comment le corriger. Curieusement, cette erreur n'apparaît que dans /usr/local/apache2/logs/error_log et non dans error_log pour le site configuré via cpanel.

0 votes

J'ai rencontré ce problème lorsque j'ai réglé APC à 4 Go sur un système 32 bits. Lorsqu'il approchait de la limite, PHP segfaultait et apache ne se rétablissait pas correctement. Ma solution a été de le baisser de quelques mégaoctets afin qu'il n'atteigne pas la limite magique de 4 Go.

0 votes

Belle déduction. Dans ce cas, la boîte en question n'avait que deux gigas de mémoire. Nous sommes passés d'un VPS à une machine dédiée et le problème a disparu. Ce n'est pas autant une solution que je le voudrais, mais c'est un résultat.

0 votes

Par curiosité, quelle valeur avez-vous définie pour shm_size sur la box 2 Go qui posait problème?

6voto

Mikko Rantalainen Points 778

Si cela ne provoque pas d'erreurs visibles sur le site, cela doit se produire si tôt pendant la création du processus enfant apache qu'aucune requête n'a été transférée à l'enfant avant l'erreur. La recherche de l'erreur suggère (http://www.litespeedtech.com/support/forum/showthread.php?t=4242) que votre configuration APC est incorrecte et vous devez vérifier les paramètres de configuration suivants :

apc.enabled = 1
apc.shm_size = 48 ;; Mo, assurez-vous que cela est autorisé par le système
apc.include_once_override = 1 ;; tester les deux valeurs
apc.mmap_file_mask = /tmp/apc.XXXXXX ;; vérifier le masque si vous utilisez un stockage basé sur des fichiers

Je suppose qu'un processus APC demande plus de mémoire SHM mmap'ed que le noyau ou la configuration du système ne sont prêts à fournir.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X