diff --git a/grpc_client_pool.md b/grpc_client_pool.md index 045440e..aead7f5 100644 --- a/grpc_client_pool.md +++ b/grpc_client_pool.md @@ -18,7 +18,7 @@ ### golang grpc client锁竞争问题? -我在以前的文章中有描述过,golang标准库net/http由于单个连接池的限制会引起吞吐不足的问题。怎么个不足?就是cpu吃不满。这个是跟grpc有同样的表现,grpc在48个cup core的硬件环境下,在单客连接并发200的时候,只能跑到600%左右。再高的并发数只是增加了cpu消耗,grpc qps是没有提升。 +我在以前的文章中有描述过,golang标准库net/http由于单个连接池的限制会引起吞吐不足的问题。怎么个不足?就是cpu吃不满。这个是跟grpc有同样的表现,grpc在48个cpu core的硬件环境下,在单客连接并发200的时候,只能跑到600%左右。再高的并发数只是增加了cpu消耗,grpc qps是没有提升。 为什么net/http的吞吐性能不足? 主要有两个点. @@ -132,4 +132,4 @@ multi client: 100, qps is 359081 grpc复用http2协议是个好事,这样能让grpc有高度的兼容性,但是相比thrift来说性能是差点意思。毕竟grpc相对于thrift来说,需要unpack两次数据包,一次是header,一次是protobuf body。但话又说回来,相比性能,grpc有更活跃的社区支持和兼容性。 -像istio的envoy sidecar本就支持http2,那么自然就很容易支持grpc。而像小米为了解决kubernets istio的联合,改了不少istio的控制面板代码来支持thrift协议。 \ No newline at end of file +像istio的envoy sidecar本就支持http2,那么自然就很容易支持grpc。而像小米为了解决kubernets istio的联合,改了不少istio的控制面板代码来支持thrift协议。