gpt4 book ai didi

grpc - 如何最大化 grpc 吞吐量?

转载 作者:行者123 更新时间:2023-12-04 02:38:54 26 4
gpt4 key购买 nike

在 100Gb 网络上,我创建了一个服务器来监听 4 个端口,grpc 客户端可以达到 3GB+/s 的吞吐量。然而,当服务器监听一个端口时,grpc 客户端达到了 1GB/s 的吞吐量,即使我设置了


args.SetInt(GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES, 1024*1024*1024);
args.SetInt(GRPC_ARG_MAX_CONCURRENT_STREAMS, 10);

似乎grpc客户端只能同时使用一个连接到一个端口服务。我对吗?

正确的做法是什么?

我的代码在这里:

客户:https://github.com/gongweibao/tests/blob/develop/grpc_test/client.cc
服务器:https://github.com/gongweibao/tests/blob/develop/grpc_test/server.cc

最佳答案

如果没有更多数据(如火焰图等),很难准确地说出您的程序在哪里遇到瓶颈。

看到当您将 gRPC 服务器更改为监听一个端口时会发生这种情况,我可以猜测减速的位置。看起来您在继续循环( 1 )的顶部请求服务器端调用。我建议采用不同的模式;请求一些固定数量的调用(在 100 次内),然后在处理程序循环结束时,重新请求调用,以便服务器始终“准备好”接收许多传入的 RPC。

这种模式的示例可以在我们的 QPS 驱动程序代码中找到(经过微调、高度优化的基准测试应用程序)( 2 )。

TF 也是这样做的(3)。

此外,我在阅读您的代码时只是进行了一些小的抽查。您可能会考虑调整某些地方以获得更好的数字。例如,您可能只想在此处分配一次 (4),以避免对每个 RPC 的重复 malloc 调用进行基准测试。另外,为什么要在这里对字节缓冲区进行自定义序列化(5)?这可能会错过特定于原型(prototype)的优化。

关于grpc - 如何最大化 grpc 吞吐量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50301690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com