I have asked this question in SO
https://stackoverflow.com/questions/60181972/python-grpc-server-performance-bottleneck
but i just would like to try my luck in here as well...
I have written a grpc server that contains multiple rpc services. Some are
unary and some are server side streaming.
It connects to a grpc kubernetes server so I am using the python kubernetes
client to query the server
Currently I am having some performance problems as I think if there are
multiple request coming in that it buffers for every worker to finish up
before it can serve the incoming request.
def startServer():
global server
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
servicer_grpc.add_Servicer_to_server(Servicer(), server)
server.add_insecure_port('[::]:' + str(port))
server.start()
My questions are:
1.
How can I improve my performance? Will adding more max_workers in the
threadpoolexecutor helps?
2.
How can I diagnose the problem and isolate which is causing the slowdown?
3.
I am thinking if the size of the response matters in this case as I am
streaming bytestring to the client. Is there a way to measure the size of
the response or does it matter in python grpc?
I would like to know how do you diagnose your python grpc server so that
you would know where to improve?
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/c305b3f7-f047-4d6a-b90b-eaa1bc2ae926%40googlegroups.com.