1 500 nouvelles connexions par seconde : épuisement des ports

Calculez l'occupation de la plage de ports à 1 500 nouvelles connexions par seconde avec un TIME_WAIT de 60 secondes.

Connexions actives
450
Sockets en attente (TIME_WAIT)
90 000
Ports éphémères consommés
90 450 sur 28 232
Occupation de la plage
320,4 %
Débit maximal de nouvelles connexions
468,2 par seconde

Valable pour un client qui ouvre toutes ses connexions vers une même adresse et un même port. Réutiliser les connexions (keep-alive) réduit fortement la consommation.

Le cas en détail

À ce rythme, le nombre de sockets en attente dépasse la plage de ports disponible : de nouvelles connexions échouent. C'est un incident classique des clients qui n'utilisent pas de connexions persistantes.

À retenir : La solution durable est de réutiliser les connexions, non d'agrandir la plage.

L'exemple chiffré

Valeurs utilisées dans ce cas (des hypothèses d'exemple, pas des mesures) :

  • Nouvelles connexions par seconde : 1500
  • Durée moyenne d'une connexion en ms : 300
  • Délai TIME_WAIT en secondes : 60
  • Taille de la plage de ports éphémères : 28232
Connexions actives
450
Sockets en attente (TIME_WAIT)
90 000
Ports éphémères consommés
90 450 sur 28 232
Occupation de la plage
320,4 %
Débit maximal de nouvelles connexions
468,2 par seconde

Valable pour un client qui ouvre toutes ses connexions vers une même adresse et un même port. Réutiliser les connexions (keep-alive) réduit fortement la consommation.

Modifiez les champs ci-dessus pour adapter le calcul à votre situation : le résultat se met à jour tout de suite.

Comment ça se calcule

Les connexions actives valent le débit de nouvelles connexions multiplié par leur durée en secondes. Les sockets en attente valent ce même débit multiplié par le délai TIME_WAIT. Leur somme, rapportée à la taille de la plage de ports, donne l'occupation. Le débit maximal est la plage divisée par la somme des deux durées.

Les résultats sont fournis à titre indicatif, sans valeur d'engagement ni de conseil professionnel.

Pour aller plus loin