On Mon, Jun 15, 2020 at 8:43 AM Antoine Pitrou <anto...@python.org> wrote: > > > Le 15/06/2020 à 15:36, Wes McKinney a écrit : > > > > When you have only a single server, all the gRPC traffic goes through > > a common port and is handled by a common server, so if both client and > > server are roughly IO bound you aren't going to get better performance > > by hitting the server with multiple clients simultaneously, only worse > > because the packets from different client requests are intermingled in > > the TCP traffic on that port. I'm not a networking expert but this is > > my best understanding of what is going on. > > Yibo Cai's experiment disproves that explanation, though. > > When I run a single client against the test server, I get ~4 GB/s. When > I run 6 standalone clients against the *same* test server, I get ~8 GB/s > aggregate. So there's something else going on that limits scalability > when the benchmark executable runs all clients by itself (perhaps gRPC > clients in a single process share some underlying structure or execution > threads? I don't know). >
I see, thanks. OK then clearly something else is going on. > > I hope someone will implement the "multiple test servers" TODO in the > > benchmark. > > I think that's a bad idea *in any case*, as running multiple servers on > different ports is not a realistic expectation from users. > > Regards > > Antoine.