web-dev-qa-db-fra.com

Comment obtenir un journal réseau Linux?

Nous avons un serveur Java fonctionnant sous linux sur un port spécifique qui accepte des connexions persistantes pour des milliers et des milliers d'utilisateurs. Récemment, nos clients n'ont pas pu se connecter avec une erreur de temporisation. Nous suspectons le trafic devient trop élevé mais notre journal Java montre en fait que peu de personnes sont connectées par seconde.

Nous soupçonnons que cela pourrait être que trop de personnes essaient en même temps et qu'elles sont fondamentalement abandonnées au niveau du système d'exploitation et donc le programme Java n'a jamais vraiment la chance d'accepter la connexion? une sorte de connexion dans Linux qui peut montrer à quelqu'un qui essaie de frapper un socket?

14
erotsppa

iptables -I INPUT -p tcp --dport some_port -j LOG puis
tail -f /var/log/messages
Ensuite, pour voir combien de données ont été touchées par cette règle: iptables -L -n -v
Ou vous pouvez exécuter tcpdump et grep les ports.

8
James L

Quand j'ai des problèmes de réseau vraiment désagréables, j'ai tendance à se déclencher wirehark . Pour moi, il n'y a pas de meilleur outil de diagnostic de réseau quand je dois passer aux détails. Et ne vous inquiétez pas si vous ne pouvez pas l'installer sur la boîte source ou de destination; tu peux courir tcpdump -w pour écrire les données des paquets dans un fichier au début et/ou au point de terminaison, et alimenter le fichier en wirehark sur une autre boîte à votre convenance.

3
MadHatter
watch -n1 -d "netstat -an | grep ESTABLISHED | wc -l"

affiche les connexions actuellement établies.

Comparez cela avec vos paramètres ulimit actifs, et bien sûr avec le nombre maximal de connexions que votre application Java peut gérer.

0
sjas

Ce serait bien de voir précisément ce que vos threads Java obtiennent au niveau du socket. En même temps, vous voudriez corréler cela avec les informations du réseau du système d'exploitation. Jetez un œil à AppFirst. Ils peuvent faire ce genre de chose.

0
IAPaddler