brpc icon indicating copy to clipboard operation
brpc copied to clipboard

rdma分支存在内存泄漏问题

Open bystorm opened this issue 3 years ago • 2 comments

Describe the bug (描述bug) 大压力跑内存一直增加 To Reproduce (复现方法)

使用response/request attachement方式传递数据。 Expected behavior (期望行为)

内存不增长 Versions (各种版本) OS: centos7 Compiler:g+o8 brpc: rdma分支 protobuf:

Additional context/screenshots (更多上下文/截图) 106974.1 100.0% 100.0% 106974.1 100 0.0 0.0% 100.0% 1.5 0.0% brpc::PProfService::symbol 0.0 0.0% 100.0% 76.8 0.1% brpc::ProcessInputMessage 0.0 0.0% 100.0% 0.5 0.0% brpc::ProtobufsService::Init 0.0 0.0% 100.0% 0.5 0.0% brpc::ProtobufsService::ProtobufsService 0.0 0.0% 100.0% 2.0 0.0% brpc::QueueMessage 0.0 0.0% 100.0% 0.5 0.0% brpc::Server::AddBuiltinServices 0.0 0.0% 100.0% 1086.3 1.0% brpc::Server::Start 0.0 0.0% 100.0% 1086.3 1.0% brpc::Server::StartInternal 0.0 0.0% 100.0% 3.7 0.0% brpc::Socket::Create 0.0 0.0% 100.0% 2.4 0.0% brpc::Socket::DoRead 0.0 0.0% 100.0% 27024.6 25.3% brpc::Socket::DoWrite 0.0 0.0% 100.0% 27024.6 25.3% brpc::Socket::KeepWrite 0.0 0.0% 100.0% 8.7 0.0% brpc::Socket::ProcessEvent 0.0 0.0% 100.0% 75762.8 70.8% brpc::Socket::StartWrite 0.0 0.0% 100.0% 75764.6 70.8% brpc::Socket::Write 0.0 0.0% 100.0% 1.6 0.0% brpc::SocketMap::Insert 0.0 0.0% 100.0% 0.5 0.0% brpc::StringToProtocolType 0.0 0.0% 100.0% 2.2 0.0% brpc::internal::FunctionClosure3 0.0 0.0% 100.0% 75763.8 70.8% brpc::internal::FunctionClosure7 0.0 0.0% 100.0% 0.5 0.0% brpc::policy::ParseRpcMessage 0.0 0.0% 100.0% 1.5 0.0% brpc::policy::ProcessHttpRequest 0.0 0.0% 100.0% 73.1 0.1% brpc::policy::ProcessRpcRequest 0.0 0.0% 100.0% 2.2 0.0% brpc::policy::ProcessRpcResponse 0.0 0.0% 100.0% 75763.8 70.8% brpc::policy::SendRpcResponse 0.0 0.0% 100.0% 1.5 0.0% brpc::pprof::CallMethod 0.0 0.0% 100.0% 1024.8 1.0% brpc::rdma::ExtendBlockPool 0.0 0.0% 100.0% 32.0 0.0% brpc::rdma::GlobalCQInit 0.0 0.0% 100.0% 1082.6 1.0% brpc::rdma::GlobalRdmaInitializeOrDie 0.0 0.0% 100.0% 1082.6 1.0% brpc::rdma::GlobalRdmaInitializeOrDieImpl 0.0 0.0% 100.0% 1024.8 1.0% brpc::rdma::InitBlockPool 0.0

bystorm avatar Oct 08 '22 03:10 bystorm

感觉是CutFromIOBufferList泄漏的

bystorm avatar Oct 08 '22 03:10 bystorm

请问使用的rdma分支是 https://github.com/apache/incubator-brpc/tree/rdma 还是 https://github.com/apache/incubator-brpc/pull/1836

wwbmmm avatar Oct 14 '22 08:10 wwbmmm

请问使用的rdma分支是 https://github.com/apache/incubator-brpc/tree/rdma 还是 #1836

rdma 分支,目前看似乎是由于 rdma发送消息后,没有回调。不排除是驱动问题还是系统问题。从逻辑上看brpc实现似乎是没问题的。 你们有遇到过网卡驱动问题吗

bystorm avatar Oct 26 '22 03:10 bystorm

用的什么工具测试的rdma 分享一下 谢谢

HehuaTang avatar Oct 26 '22 04:10 HehuaTang

rdma 分支,目前看似乎是由于 rdma发送消息后,没有回调。不排除是驱动问题还是系统问题。从逻辑上看brpc实现似乎是没问题的。 你们有遇到过网卡驱动问题吗

rdma分支已不再维护,目前rdma功能已合入master,请使用master分支

wwbmmm avatar Oct 26 '22 05:10 wwbmmm

不是工具,就是项目中使用brpc。

bystorm avatar Oct 28 '22 03:10 bystorm

新版的支持polling 和bind cpu吗

bystorm avatar Oct 28 '22 03:10 bystorm

新版的支持polling 和bind cpu吗

不支持

wwbmmm avatar Oct 28 '22 03:10 wwbmmm

我们当时测试,4k数据非polling模式延时27us polling模式只有12us。有没有计划支持polling模式。

bystorm avatar Oct 28 '22 04:10 bystorm

具体是什么类型的polling需求呢?polling也有些副作用。我还在考虑应该怎么去实现更好

Tuvie avatar Oct 28 '22 07:10 Tuvie

具体是什么类型的polling需求呢?polling也有些副作用。我还在考虑应该怎么去实现更好

现在有一种场景一般都是基于spdk 架构的追求极致时延与极致吞吐的存储产品。最终目标希望所有流程都在一个线程完成,发起和收割都在一个线程完成是最好的。

bystorm avatar Nov 01 '22 02:11 bystorm

现在有一种场景一般都是基于spdk 架构的追求极致时延与极致吞吐的存储产品。最终目标希望所有流程都在一个线程完成,发起和收割都在一个线程完成是最好的。

spdk的逻辑本身在spdk thread里面,和brpc的bthread融合方面需要一个更好的设计。我猜这个场景是更希望bypass bthread么

Tuvie avatar Nov 03 '22 04:11 Tuvie

rdma分支已不再维护,请使用master分支 这个先close了,如果master有问题,可以再提issue

wwbmmm avatar Nov 23 '22 06:11 wwbmmm