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.