Twój post nie zawiera wystarczających informacji, aby wyjaśnić, dlaczego program nie działa zgodnie z oczekiwaniami, ale myślę, że samo to pytanie jest warte odpowiedzi:
W pierwszym teście wykonałeś jedno żądanie (-n 1
). W drugim teście wykonałeś jednocześnie 100 żądań w locie (-c 100 -n 100
).
Wspominasz, że twój program komunikuje się z zewnętrzną bazą danych, twój program musi czekać na odpowiedź tego zasobu. Czy rozumiesz, jak działa Twoja baza danych, gdy wysyłasz do niej 1000 żądań jednocześnie? Nie wspomniałeś o tym. Go z pewnością poradzi sobie z setkami jednoczesnych żądań na sekundę bez wysiłku, ale to zależy od tego, co i jak robisz. Jeśli Twój program nie może realizować żądań tak szybko, jak przychodzą, będą się one nawarstwiać, co prowadzi do dużego opóźnienia.
Żaden z tych testów, o których nam wspomniałeś, nie jest przydatny do zrozumienia, jak Twój serwer działa w „normalnych” okolicznościach – które według Ciebie będą „tysiące żądań dziennie” (co nie jest bardzo szczegółowe, ale rozumiem, "kilka sekund"). Wtedy o wiele ciekawiej byłoby spojrzeć na -c 4 -n 1000
, lub coś, co powoduje, że serwer działa przez dłuższy czas, z wieloma równoczesnymi żądaniami, które są bardziej zbliżone do tego, czego oczekujesz.