2 votes

Les processus Nginx/php-fpm tombent en sommeil ininterrompu

J'ai eu un avertissement critique de nagios sur un serveur, et quand j'ai vérifié ps -aux j'ai découvert que tous les nginx (php-fpm) sont en veille ininterrompue.

www-data  1330  0.4  0.3 299992 108560 ?       D    16:06   0:16 php-fpm: pool www
www-data  1338  0.4  0.2 254728 92728 ?        D    16:06   0:16 php-fpm: pool www
www-data  1346  0.4  0.3 293544 100272 ?       D    16:06   0:17 php-fpm: pool www
www-data  1356  0.7  0.3 302504 101532 ?       D    16:06   0:29 php-fpm: pool www
www-data  1357  0.3  0.2 270672 85952 ?        D    16:06   0:13 php-fpm: pool www
....

et j'étais coincé avec ça et je ne pouvais même pas redémarrer nginx. et finalement j'ai redémarré le serveur pour résoudre le problème !
bien que j'ai ceci dans /etc/php5/fpm/php.ini

emergency\_restart\_threshold=10
emergency\_restart\_interval=1m
process\_control\_timeout=10s

ce qui signifie que php5-fpm est censé redémarrer dans de tels cas, mais il ne l'a pas fait !
une idée de ce qui pourrait causer le passage de ces processus en état de veille ininterrompue et comment éviter un tel cas à l'avenir ?
Merci pour votre aide

1 votes

Ce problème est généralement causé par l'attente d'une entrée/sortie à partir d'un périphérique indisponible, comme un montage NFS cassé. Quel type de stockage est monté sur la machine ?

0 votes

C'est LVM... je n'utilise pas NFS pour servir web.... NFS sur ce serveur est uniquement pour la sauvegarde

1voto

Michael Hampton Points 232226

Alors que D dans top signifie sommeil ininterrompu, je trouve que c'est plus facile de penser à D pour Disk. Le processus attend que le noyau lui fournisse quelque chose, et 95% du temps, il s'agit de la lecture d'un disque.

Le fait que le sommeil soit ininterrompu est la raison pour laquelle php-fpm ne peut pas se redémarrer.

Dans ce cas, vous devez vérifier vos disques, tout d'abord avec fsck -f /dev/mapper/VG-LV en mode mono-utilisateur (s'il s'agit d'un serveur dédié ou d'un VPS distant, vous devrez utiliser une console KVM distante pour cela), puis lisez les données SMART avec smartctl -a /dev/sd? (s'ils ne sont pas dans un réseau RAID matériel ; s'il s'agit d'un RAID matériel, utilisez l'outil fourni par le fournisseur) pour voir si l'un de vos disques ne serait pas en train de se détériorer.

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