web-dev-qa-db-fra.com

Qu'est-ce qui est dans Apache 2 une erreur "Sigwinch attrapé"?

Mon serveur (Ubuntu 8.04) Lampe exécutée drupal 6, lorsqu'il y a un trafic élevé, il arrête de servir pages. Un redémarrage d'Apache2 ne fonctionnera pas, je dois donc redémarrer le service.

J'ai trouvé ce message dans l'erreur Apache2.Log

[Avis] attrapé Sigwinch, éteignant gracieusement

De plus, je remarque que l'ID de processus de l'Apache2 était d'environ 12 000 lorsque Apache cesse de répondre.

Mettre à jour

Le sigwinch attrapé, comme vous le soulignez, est un avis de redémarrage du service Apache. J'ai joué avec les clients max et continue à rester vivant. Je fixe les maxclients trop bas pour que je reçois un "serveur atteint maxclients définit, envisager d'augmenter l'erreur" Erreur MaxClients ", mais corrigé cela.

En ce qui concerne la PID, mon installation a module de préfours installée, donc après maxrequestperchild est atteinte, il recycle le processus d'enfant. C'est pourquoi le PID augmente périodiquement. Je n'ai toujours pas compris pourquoi après un moment où Apache cesse de répondre.

En-temps, il essaiera de lever le maxrequestperchild afin que le PID ne puisse pas atteindre pid max que je suis rapide. La limite actuelle est de 32768 (qui est standard pour les nouvelles installations Debian et Ubuntu).

Voici plus du journal:

[Vendredi 24 01:48:56 2009] [Remarque] attrapé Sigwinch, éteignant gracieusement

[Vendredi 24 01:50:07 2009] [Avis] Apache/2.2.8 (Ubuntu) PHP/5.2.4-UMUNTU5.3 Avec Suhosin-Patch configuré - Reprise des opérations normales

[VEN AVR 24 17:13:35 2009] [Erreur] [Client 195.70.62.131] Client envoyé http/1.1 Demande sans nom d'hôte (voir RFC2616 Section 14.23): /w00tw00t.at.isc.sans.dfind :)

[Ven 24 avril 17:36:00 2009] [Erreur] [Client 212.188.33.4] Client envoyé http/1.1 Demande sans nom d'hôte (voir RFC2616 Section 14.23): /w00tw00t.at.isc.sans.dfind :)

[SAT APR 25 20:05:07 2009] [Erreur] [Client 84.243.2222.12] URI invalide dans la demande Obtenez http/1.1 http/1.1

[SAT APR 25 20:05:12 2009] [Erreur] [Client 84.243.2222.12] Script introuvable ou incapable de STAT:/USR/LIB/CGI-BIN/TWIKI

[SAT 5 20:05:12 2009] [Erreur] [Client 84.243.2222.12] Script introuvable ou incapable de stat:/USR/LIB/CGI-BIN/WIKI

[SAT APR 25 20:05:12 2009] [ERREUR] [CLIENT] [CLIENT 84.243.2222.12] Script introuvable ou incapable de STAT:/USR/LIB/CGI-BIN/WIKIS

[SAT APR 25 21:46:46 2009] [Erreur] [Client 211.68.23.167] URI non valide dans la demande Obtenez http/1.1 http/1.1

[Sun Apr 26 06:13:47 2009] [Erreur] [Client 86.39.154.89] Client a envoyé HTTP/1.1 Demande sans nom d'hôte (voir RFC2616 Section 14.23): /w00tw00t.at.isc.sans.dfind :)

[Sun 26 avril 06:53:07 2009] [Avis] Redémarrage gracieux demandé, faisant le redémarrage

24
Geries

Eh bien, Sigwinch est utilisé dans certaines situations lors du démarrage et de l'arrêt Apache sur Ubuntu. Si je fais Sudo Apache2ctl graceful-stop Sur mon serveur Ubuntu 8.10, je l'obtiens dans mon journal:

[Fri Apr 24 22:41:15 2009] [notice] caught SIGWINCH, shutting down gracefully

Comme je m'en souviens, Sigwinch est également utilisé par certains services qui doivent redémarrer Apache lors de la rotation des journaux, des emplois nocturnes, etc.

Cela n'explique pas le problème que vous avez actuellement, mais je pense que cela pourrait être quelque chose d'autre en cours d'exécution sur votre serveur qui redémarre Apache - ou cela pourrait ne pas être lié à votre problème.

Essayez de publier davantage de fichier logfile si vous le pouvez, ce sera beaucoup plus facile d'analyser :)

11
mikl

[~ # ~] sigwinch [~ # ~]

En fait, @stefano a raison: Sigwinch signifie que le signal Windows change et est envoyé automatiquement lorsqu'un terminal détecte une modification de sa taille de Windows pour permettre une redessinée.

Sigwinch pour Apache2

Mais malheureusement Apache2 processus abuser mal ce signal (dans la manière dont ils détournent sa première signification), mais pour leur défense, ils ne semblent pas avoir le choix et devaient recourir à cela en raison d'un manque de signal (voir Rapport de bogue ). L'une de leur hypothèse est que Apache2 Le processus est toujours en arrière-plan. @MIKL est donc parfaitement parfaitement juste.

Alors, quoi vérifier?

  • toute raison automatique de redémarrer gracieusement apache2 (Services Cron, APT-Obtenir des installations de services connexes ...)
  • sinon, dirigez-vous Apache2 au premier plan dans une OPEN TTY? Si oui, ce n'est pas recommandé (hélas), et vous toucherez probablement facilement cet arrêt de Sigwinch Graceful, assez facilement lorsque vous redimensionnez votre terminal de contrôle.
24
vaab

euh? Si je me souviens bien, Sigwinch est un signal envoyé à une application de terminal lorsque la taille de la fenêtre du terminal change (afin que l'application puisse se redimensionner). Généralement utilisé par les applications NCurses.

C'est très étrange. Cette information vous donne-t-elle des indices supplémentaires?

18
Stefano Borini

Sur Apache, Sigwinch est le signal stop gracieux . Notez que cela est différent de SIGUSR1, qui est le signal redémarrage gracieux .

Malheureusement, nous avons besoin de plus d'informations pour vous dire pourquoi Apache s'arrête gracieusement.

6
Powerlord