Wir haben einen Java-Server, der unter Linux an einem bestimmten Port ausgeführt wird und dauerhafte Verbindungen für Tausende und Abertausende von Benutzern akzeptiert. In letzter Zeit können unsere Kunden keine Verbindung mit einem Timeout-Fehler herstellen. Wir vermuten, dass der Datenverkehr zu hoch wird, aber unser Java-Protokoll zeigt tatsächlich, dass nicht viele pro Sekunde verbunden sind.
Wir vermuten, dass es sein könnte, dass zu viele gleichzeitig versuchen und sie im Grunde genommen auf Betriebssystemebene gelöscht werden und daher das Java-Programm nie wirklich die Chance bekommt, die Verbindung zu akzeptieren? Gibt es eine Art von Linux-Protokoll, das zeigt, dass jemand versucht, einen Socket zu treffen?
iptables -I INPUT -p tcp --dport some_port -m state --state NEW
. Beachten Sie, dass Sie-j LOG
die Systemprotokolldatei nicht mit vielen nicht benötigten Daten überfluten, wenn Sie die Details der einzelnen Verbindungsversuche nicht berücksichtigen.