我编写了一个包含多个 rpc 服务的 grpc 服务器。有些是一元的,有些是服务器端流式传输。
它连接到 grpc kubernetes 服务器,所以我使用 python kubernetes 客户端来查询服务器
目前我遇到了一些性能问题,因为我认为如果有多个请求进来,它会缓冲每个工作人员在它可以服务传入请求之前完成。
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()
我的问题是:
我怎样才能提高我的表现?在 threadpoolexecutor 中添加更多 max_workers 会有所帮助吗?
如何诊断问题并找出导致速度下降的原因?
我正在考虑在这种情况下响应的大小是否重要,因为我正在将字节串流式传输到客户端。有没有办法测量响应的大小或者在 python grpc 中是否重要?
我想知道您如何诊断您的 python grpc 服务器,以便您知道哪里需要改进?