Váš příspěvek nemá dostatek informací, aby se zabýval tím, proč váš program nefunguje tak, jak očekáváte, ale myslím, že tato otázka sama o sobě stojí za odpověď:
Ve svém prvním testu jste provedli jeden jediný požadavek (-n 1
). Ve druhém testu jste provedli 100 požadavků za letu současně (-c 100 -n 100
).
Uvádíte, že váš program komunikuje s externí databází, váš program musí čekat, až tento zdroj zareaguje. Rozumíte tomu, jak funguje vaše databáze, když do ní odešlete 1 000 požadavků současně? O tom jste se nezmínil. Go určitě zvládne mnoho stovek souběžných požadavků za sekundu, aniž by se zapotil, ale záleží na tom, co děláte a jak to děláte. Pokud váš program nemůže dokončit požadavky tak rychle, jak přicházejí, budou se hromadit, což povede k vysoké latenci.
Žádný z těchto testů, o kterých jste nám řekl, není užitečný k pochopení toho, jak váš server funguje za „normálních“ okolností – o kterých jste řekl, že by to byly „tisíce požadavků za den“ (což není příliš konkrétní, ale budu to mít na mysli, "několik sekund"). Pak by bylo mnohem zajímavější podívat se na -c 4 -n 1000
, nebo něco, co server zatěžuje po delší dobu, s množstvím souběžných požadavků, což je spíše to, co očekáváte.