tcp_tw_reuse vs tcp_tw_recycle : pour l'utiliser (ou les deux)?

J'ai un site web et d'application qui utilisent un nombre important de connexions. Il a normalement environ 3 000 connexions statique ouvrir, et peuvent recevoir n'importe où à partir de 5 000 à 50 000 tentatives de connexion en quelques secondes, laps de temps.

J'ai eu le problème de l'exécution des ports à ouvrir de nouvelles connexions en raison de TIME_WAIT statut de sockets. Même avec tcp_fin_timeout réglé à une valeur faible (1 à 5), cela semble juste être la cause de trop de frais généraux/de ralentissement, et il serait encore de temps en temps être incapable d'ouvrir un nouveau socket.

J'ai regardé tcp_tw_reuse et tcp_tw_recycle, mais je ne suis pas sûr de ce qui devrait être le choix préféré, ou si vous utilisez les deux d'entre eux est une option.

  • Avez-vous essayé option de socket SO_REUSEADDR déjà?
  • Quel est le résultat de cat /proc/sys/net/ipv4/ip_local_port_range? si pas de 1024 à 65535, vous pouvez le changer avec echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range