Votre message ne contient pas suffisamment d'informations pour expliquer pourquoi votre programme ne fonctionne pas comme prévu, mais je pense que cette question mérite à elle seule une réponse :
Lors de votre premier test, vous avez fait une seule requête (-n 1
). Lors de votre deuxième test, vous avez effectué 100 requêtes en vol simultanément (-c 100 -n 100
).
Vous mentionnez que votre programme communique avec une base de données externe, votre programme doit attendre que cette ressource réponde. Comprenez-vous comment votre base de données fonctionne lorsque vous lui envoyez 1 000 requêtes simultanément ? Vous n'en avez fait aucune mention. Go peut certainement gérer plusieurs centaines de requêtes simultanées par seconde sans transpirer, mais cela dépend de ce que vous faites et de la façon dont vous le faites. Si votre programme ne peut pas traiter les requêtes aussi rapidement qu'elles arrivent, elles s'accumuleront, entraînant une latence élevée.
Aucun de ces tests dont vous nous avez parlé n'est utile pour comprendre comment votre serveur fonctionne dans des circonstances "normales" - ce qui, selon vous, serait "des milliers de requêtes par jour" (ce qui n'est pas très spécifique, mais je suppose que cela signifie, "quelques secondes"). Ensuite, il serait beaucoup plus intéressant de regarder -c 4 -n 1000
, ou quelque chose qui exerce le serveur sur une plus longue période de temps, avec un certain nombre de requêtes simultanées qui ressemble plus à ce que vous vous attendez à obtenir.