rdma support polling mode#2920
Conversation
2a5dbe9 to
85cab8a
Compare
85cab8a to
ddc1d5b
Compare
ddc1d5b to
c715949
Compare
0184757 to
6bb5d08
Compare
|
@Tuvie 有空看看 |
87db342 to
4ec6954
Compare
4ec6954 to
cbf674a
Compare
cbf674a to
df04aa4
Compare
|
请问有办法给 rdma 的 poller 做绑核么? 绑核后,预期效果会更好吧? |
|
我来同步一下我这边使用 rdma + polling 的测试结果。 注意:服务端我给了 16 个 poller, 因此服务端 cpu 使用率是 1600% |
250c4ad to
b282a32
Compare
|
LGTM |
szy441687879
left a comment
There was a problem hiding this comment.
我们正在用这个commit加上spdk尝试实现存储的run to complete模型,发现有几个问题,辛苦帮忙看一下
|
你们具体怎么用的呢,每个分组一块盘吗?每个盘一个worker? |
可以在bRPC群里面找我,加个微信,这样聊更方便些。 |
每个盘一个worker |
342710f to
caa1fe9
Compare
caa1fe9 to
41d7ec7
Compare
|
感谢@yanglimingcn,我们使用这个cr在高性能存储场景实现了run-to-completion模型(with spdk),对比事件模式在延时方面确实有了显著的改善。 在4k写入,1w qps的情况下 可以看到polling-mode在高性能存储场景可以给业务带来20us+延时的收益 |
bool InitPollingModeWithTag(bthread_tag_t tag, |
@yanglimingcn 请问 bRPC 群怎么加? |
你发我一下你的微信号,我邀请你进入。可以发邮箱liming.yang139.com |
What problem does this PR solve?
Issue Number:
#1434 #2344 #1650
Problem Summary:
RDMA支持Polling模式,使用bRPC的rdma测试工具能看到延迟明显降低。如果希望做到run-to-completion模型,需要把使用rdma的Server线程数设置成2(epoll bthread独占一个线程,另一个线程给rdma poller bthread和所有请求的bthread。),如果需要调用spdk/io_uring等异步驱动,需要设置rdma::SetPollingModeCallback, 并且设置rdma_poller_yield为true。
What is changed and the side effects?
Changed:
Side effects:
Performance effects(性能影响):
Breaking backward compatibility(向后兼容性):
Check List: