2017-09-29 6 views
1

Le nombre total de sockets signalés lors de l'utilisation n'est pas reflété dans les commandes netstat ou ss. Co-relation m'aidera à résoudre un problème de fuite de socket.L'utilisation du socket réseau n'est pas reflétée dans netstat

Voici ce que j'ai:

ss -s

Produit

Total: 4676 (kernel 12714) 
TCP: 6298 (estab 323, closed 5201, orphaned 1, synrecv 0, timewait 1996/0), ports 0 

Transport Total  IP  IPv6 
*  12714  -   - 
RAW 0   0   0 
UDP 25  14  11 
TCP 1097  15  1082 
INET   1122  29  1093 
FRAG   0   0   0 

netstat | wc -l

Produit

3319 

cat/proc/net/sockstat

Produit

sockets: used 4677 
TCP: inuse 15 orphan 1 tw 1997 alloc 4303 mem 3899 
UDP: inuse 14 mem 8 
UDPLITE: inuse 0 
RAW: inuse 0 
FRAG: inuse 0 memory 0 

Tous ont été exécutés en même temps.

Je suis incapable de savoir ce que ces prises supplémentaires tel que rapporté par cat/proc/net/sockstat & ss -s (Total: 4676 ou 4677) qui ne se reflète pas par -an ou ss -a (Total: 3319). Il y a une fuite de douille que j'essaye d'identifier qui est la différence entre les deux, et cette différence augmente chaque jour. Je connais le processus causant la fuite et bien sûr la solution consiste à simplement redémarrer le processus (ce que je fais pour l'instant). Comment puis-je identifier les informations IP/connexion/socket réelles des fuites de socket afin que je puisse dire au développement exactement quel appel IP dans leur programme est susceptible de fuites connexions socket? La commande netstat -an semble ignorer les connexions "supplémentaires" présentes dans la sortie. Ou peut-être qu'il me manque quelque chose d'autre. Une fois que je redémarre le processus, je peux voir une énorme récupération dans l'utilisation du socket, puis la croissance continue commence à nouveau lorsque le système est utilisé. S'il vous plaît aider spécifiquement ou s'il y a une autre façon d'identifier les douilles qui fuient.

Répondre

0

La réponse peut être trouvée lorsque vous exécutez ss -an et netstat -an et comparez le résultat. Toutes les sockets ordinaires (tcp, udp, unix) sont présentes dans les deux sorties, mais la sortie ss contient des lignes supplémentaires avec des sockets netlink et des sockets packet. Ce sont les lignes avec nl, p_raw et p_dgr.

+0

Hey Merci d'avoir répondu. Cependant, je courais: 'ss -an | awk '{print $ 2}' | sort | uniq -c' et ' ss -an | awk '{print $ 1}' | sort | uniq -c' et 'ss -s' Le total qui vient en ss -s ne rattacher à aucune combinaison de chiffres dans les deux commandes au-dessus. Je n'ai toujours aucune idée de ce que le nombre total signifie dans ss -s – Senthil