Je reçois un tas d'erreurs apache que j'ai du mal à retracer. Elles se produisent sur un système RHEL qui exécute un site Web Drupal à très fort volume.
\[Mon Sep 14 12:48:44 2009\] \[info\] \[client xx.xx.xxx.xx\] (70007)The timeout specified has expired: core\_output\_filter: writing data to the network
\[Mon Sep 14 12:50:19 2009\] \[info\] \[client xx.xxx.xx.xx\] (104)Connection reset by peer: core\_output\_filter: writing data to the network
\[Mon Sep 14 12:51:28 2009\] \[info\] \[client xx.xxx.xx.xx\] (32)Broken pipe: core\_output\_filter: writing data to the network
Occasionnellement (toutes les 24 à 36 heures), il y aura un pic de charge et le site ne répondra plus du tout. La charge moyenne passe d'un niveau normal de 1-1,5 à 200. La plupart des processus httpd en cours d'exécution affichent 'D' - deadlocked - et la seule façon de ramener le serveur en mode "interactif" est de saluer avec trois doigts ou d'attendre jusqu'à ce que vous obteniez un message d'invite et un message de confirmation. killall -9 httpd
.
Évidemment, le site ne peut pas être mis hors service pour que je puisse faire un tas de travail de strace. J'ai vérifié la configuration d'Apache et (encore) pour autant que je puisse dire, EnableMMAP et EnableSendFile sont désactivés. Les fichiers sont sur un montage NFS v3, mais ni le serveur NFS, ni le serveur mysql, ni rien d'autre ne rapporte d'erreurs. Rien d'approprié dans le journal système ou dmesg. La charge du site est également trop élevée pour pouvoir rapprocher les requêtes individuelles des erreurs qui en résultent.
À ce stade, je pense à une erreur matérielle de réseau et je préférerais mettre le site en ligne sur une deuxième machine. Quelqu'un a-t-il une idée avant que je fasse cela ?