项目简介
本项目是基于RDMA(Remote Direct Memory Access)的分布式通信框架,目标是提供高性能的节点间通信解决方案。借助合理的内存管理与负载均衡策略,能大幅提升通信效率和可靠性。
项目的主要特性和功能
- 多线程和多进程支持:支持多线程和多进程环境下的RDMA通信,具备异步发送机制,发送消息后可立即返回,无需等待结果。
- 组发送机制:支持将多个连续消息通过一个post send发出,提高吞吐率,目前仅支持SharedRdmaClient。
- 请求响应模式:支持两种请求响应模式,即通过另一条链路或原链路发送响应数据,适用于不同长度响应数据场景。
- 无锁状态机转换:利用原子变量和CAS操作实现完全无锁的状态机转换,提升通信框架运行效率。
- 共享内存管理:提供共享内存管理功能,允许多个进程访问同一块内存区域,支持创建、销毁和获取共享内存地址。
- 事件驱动机制:使用epoll系统调用进行事件驱动的文件描述符监控,提高事件处理效率。
安装使用步骤
配置环境
确保系统支持RDMA协议,安装必要的依赖库和工具。
下载源码
从项目仓库下载源码文件。
编译项目
在代码根目录下新建build
文件夹,进入该文件夹,执行命令cmake .. -DDEBUG=true
进行编译,编译完成后,build
目录下会生成可执行文件。
运行测试
根据需要选择生成的可执行文件(如test1
到test4
)。在服务器端执行./build/test4
;在客户端执行前,先删除共享内存段,执行ipcs -m
和ipcrm -m [your shmem id]
,然后执行./build/test4
。
配置选项
在include/configuration.h
文件中配置测试选项,如TEST_SHARED_MEMORY
、TEST_SIMPLE_SERVER
等,根据需要修改其他配置参数。
性能优化
在pgrac_configuration.h
文件中配置是否启用busy polling模式和组发送机制,根据实际需求调整相关参数,如USE_BUSY_POLLING
和GROUP_POST_SEND_MAX_MSG_NUM
。
通过上述步骤,可成功编译并运行基于RDMA的分布式通信框架,进行高性能的节点间通信测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】