Question : Apache - problème de raccordement de TCP de Tomcat - CLOSE_WAIT/FIN_WAIT_2

Bonjour, le
We courent Apache 6.0.20 sur la plate-forme du Solaris 10. J'obtiens une erreur si je cours l'exemple de tomcat pour à long terme. J'ai noté que ce problème partent si je remets en marche Apache. Le problème est les états CLOSE_WAIT et FIN_WAIT_2 de TCP/IP étant créés chaque fois que l'utilisateur se relie et se déconnecte. Si ceci continue à se produire alors plus d'utilisateurs ne pourraient se relier ; Je dois rebondir Apache using l'arrêt d'apache2/bin/apachectl/début (il résoudra des problèmes de TCP/IP). J'apprécie si vous pourriez m'aider à résoudre cet issue.

admin@webserver : netstat - | grep 9034
*.9034 *.* 0 0 49152 0 LISTEN
127.0.0.1 .64130 127.0.0.1 .9034 49152 0 49152 0 CLOSE_WAIT
127.0.0.1 .9034 127.0.0.1 .64130 49152 0 49152 0 FIN_WAIT_2
127.0.0.1 .64131 127.0.0.1 .9034 49152 0 49152 0 CLOSE_WAIT
127.0.0.1 .9034 127.0.0.1 .64131 49152 0 49152 0 FIN_WAIT_2
127.0.0.1 .64132 127.0.0.1 .9034 49152 0 49152 0 CLOSE_WAIT
127.0.0.1 .9034 127.0.0.1 .64132 49152 0 49152 0 FIN_WAIT_2
admin@webserver : netstat - | grep 9044
*.9044 *.* 0 0 49152 0 LISTEN
127.0.0.1 .64127 127.0.0.1 .9044 49439 0 49152 0 CLOSE_WAIT
127.0.0.1 .9044 127.0.0.1 .64127 49152 0 49439 0 FIN_WAIT_2
127.0.0.1 .64128 127.0.0.1 .9044 49152 0 49152 0 CLOSE_WAIT
127.0.0.1 .9044 127.0.0.1 .64128 49152 0 49152 0 FIN_WAIT_2
127.0.0.1 .64129 127.0.0.1 .9044 49152 0 49152 0 CLOSE_WAIT
127.0.0.1 .9044 127.0.0.1 .64129 49152 0 49152 0 FIN_WAIT_2
class= de

Réponse : Apache - problème de raccordement de TCP de Tomcat - CLOSE_WAIT/FIN_WAIT_2

Les raccordements dans CLOSE_WAIT sont généralement un problème d'application. J'ai vu beaucoup d'applications d'intergiciel qui ont agi l'un sur l'autre avec les applications Web de causer CLOSE_WAIT. Noter que les raccordements FIN_WAIT_2 sont juste l'autre côté d'un raccordement qui est dans CLOSE_WAIT.

CLOSE_WAIT est causé quand un côté du raccordement a fermé son fin du raccordement de TCP, mais l'autre but est encore ouvert. Sur les systèmes basés sur Unix, la douille n'est pas fermée jusqu'à ce que le dernier processus qui la fait s'ouvrir la ferme. Cela signifie que l'un ou l'autre l'application qui le possède ne lit pas la douille (et ne sait pas ainsi que l'autre extrémité l'a fermée) ou juste ne la ferme pas, ou il y a un autre processus avec cette même douille ouverte.

C'est pourquoi nous voyons ce problème avec l'intergiciel. Il tend à y avoir beaucoup de raccordements entrants toute l'heure, et les différents fils acceptent les raccordements et puis bifurquent outre d'un nouveau processus pour le manipuler. Si entre l'acceptation et la fourchette, un autre raccordement est accepté, quand la fourchette se produit le deuxième processus a maintenant les deux douilles ouvertes, mais connaît seulement environ un. Cela signifie que le premier processus ne peut pas fermer sa douille jusqu'à ce que le deuxième processus sorte. Si le deuxième processus est vécue très longue, alors le raccordement colle dans CLOSE_WAIT.

J'ai également vu un cas où il y avait une condition de compétitivité dans le serveur elle-même et les douilles se sont accumulées là.

Parfois l'intergiciel ou les serveurs d'application compte que l'application est censée fermer toutes les douilles inutilisées. Parfois c'est juste un bogue à un des trois niveaux.

Ce que vous devriez faire est d'identifier quel processus a la douille ouverte. Vous pouvez employer les pfiles appelez (/proc cd ; pfiles *) trouver les processus a impliqué. Essayer alors de figurer dehors si c'est un processus qui a légitimement eu la douille et ne la ferme pas, ou si c'est un processus qui ne devrait pas l'avoir eu du tout. Ceci te donnera une idée ce qui continue.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us