Hi! I'm building a tool that needs to concurrently send request to multiple hosts (for fingerprinting purposes).
I'm using
github.com/valyala/fasthttp for the client but it works the same with net/http.
The main program basically starts n workers and those will take endpoints to scan from a common channel.
It's working fine but as I try to increment the number of workers at some point i'll basically DOSing the machine it runs on which prevents some/all requests to be sent, and even impact any other service running in the machine (k8s cluster in fact).
Any Idea on how I can detect this kind of network bottleneck within my program ?
I'd like to be able to maximise speed (number of workers) without destroying the network. I can't really rely on the hosts responses to detect if the network is flooded as a DNS not found or request timeout can happen legitimately on some hosts (the program can scan non existent / very slow hosts).
Thank you!
PS: I'm pretty new to go and I'm a first time poster here, so please understand my lack of knowledge if any :)