2 votes

TIME_WAIT Info (réduire)

J'ai une application ajax qui fait une requête toutes les 3 secondes, la page demandée met l'en-tête à (header("Connection : Keep-Alive, close") ;) puis exécute une requête de base de données et renvoie les dernières données.

La valeur de TIME_WAIT est de 60 secondes, donc même si je ferme la connexion dans la page demandée (c'est-à-dire "Connection : Keep-Alive, close"), la connexion semble être présente pendant les 60 secondes suivantes (cela se produit pour chaque requête Ajax que je fais), donc pendant 1 minute 20 requêtes sont faites et le TIME_WAIT total pour cette IP semble être d'environ 20.

Est-il possible de réduire le TIME_WAIT à 15 secondes par exemple, afin de réduire le TIME_WAITS global ou est-il possible de forcer la fermeture de la connexion après chaque requête Ajax ?

Toute aide sera appréciée

Remerciements

2voto

ooshro Points 10764

Vous pouvez utiliser le paramètre du noyau net.ipv4.tcp_fin_timeout :

# sysctl net.ipv4.tcp_fin_timeout=15

Modifier /etc/sysctl.conf, ajouter à la fin

net.ipv4.tcp_fin_timeout = 15

puis courir :

# sysctl -p

1voto

Simon Richter Points 3161

Connection: keep-alive, close n'est pas valide pour HTTP 1.1, car il y a exactement un seul jeton de connexion est autorisé, je m'attendrais donc à ce que cet en-tête soit ignoré et que le keep-alive soit néanmoins actif ; dans HTTP 1.0, la balise "Connection" a une signification complètement différente.

Il ne devrait pas y avoir de différence technique entre une connexion "recyclée" ou non, et vous devriez laisser ce choix au navigateur. Jouer avec les délais de FIN n'est presque jamais une bonne idée.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X