Maison >développement back-end >Golang >Pourquoi le serveur HTTP My Go échoue-t-il aux tests ApacheBench avec des erreurs « Connexion refusée » ou « Opération expirée » ?
Dépannage des problèmes de connectivité avec le serveur HTTP Go sous ApacheBench
Votre serveur HTTP Go rencontre des problèmes de connectivité lors des tests ApacheBench. ApacheBench renvoie des erreurs telles que « Connexion refusée » ou « Opération expirée », indiquant un problème avec la capacité du serveur à traiter les demandes entrantes.
Identification de la cause première : épuisement du port
Après enquête, il devient évident que le serveur manque de ports éphémères. macOS a une plage de ports éphémères par défaut de 49152 à 65535, ce qui est insuffisant pour gérer un volume élevé de requêtes simultanées sans keepalive.
Mécanisme d'épuisement des ports
Chaque HTTP La requête /1.0 sans keepalive consomme un port éphémère unique sur le serveur. Lorsque cette plage de ports est épuisée, le système d'exploitation met en file d'attente les requêtes pour les ports inutilisés.
Impact sur les performances
Une fois la file d'attente des ports remplie, le système d'exploitation limite davantage les ports entrants. relations. Par conséquent, les clients peuvent rencontrer des échecs de connexion ou des délais d'attente.
Atténuer le problème
Pour atténuer le problème, envisagez les options suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!