我一直在阅读有关 RoCE 的内容,它谈到了将一台服务器中的内存之间的数据零拷贝直接传输到另一台服务器中的应用程序的内存。大多数文章都指出这是在没有 CPU 参与的情况下完成的。我不明白这是如何实现的。数据如何在不经过 CPU 处理的情况下从适配器传到 RAM?它如何知道应用程序的数据在 RAM 中的位置?
Liang Mury
Asked:
2021-02-21 00:22:49 +0800 CST
我知道环回将通过内核网络堆栈直到到达 IP 层,包括系统调用开销和一些内存复制开销。DPDK 和 RDMA 使用不同的技术来避免这些。
所以假设我有两台机器通过 dpdk/rdma 连接,然后我进行网络延迟测试,这会比一台机器上的环回更快吗?我ping localhost
对 CPU E5-2630 v4 @ 2.20GHz 进行了快速测试,平均为 0.010ms。
我在使用 vstart.sh 测试我的 ceph 集群时提出了这个问题,我想最小化网络延迟,以便仔细分析 osd 相关代码如何影响延迟。