openYuanrong数据系统TCP与RDMA传输协议:如何选择最佳数据传输方式 openYuanrong数据系统TCP与RDMA传输协议如何选择最佳数据传输方式【免费下载链接】yuanrong-datasystemopenYuanrong 数据系统是以内存为中心、近计算的分布式异构多级缓存为AI训推、Agent、大数据、微服务等分布式应用提供高性能的数据对象KV与数据流访问、HBM/DRAM/SSD 多级缓存以及实例间零拷贝数据共享能力。项目地址: https://gitcode.com/openeuler/yuanrong-datasystem前往项目官网免费下载https://ar.openeuler.org/ar/在当今AI训练、大数据分析和分布式应用日益普及的时代高性能数据传输已成为系统架构的核心挑战。openYuanrong数据系统作为一款以内存为中心、近计算的分布式异构多级缓存系统为AI训推、Agent、大数据、微服务等分布式应用提供了高性能的数据对象KV与数据流访问能力。面对不同的应用场景和硬件环境选择合适的传输协议至关重要。本文将深入探讨openYuanrong数据系统中TCP与RDMA两种传输协议的特性并提供实用的选择指南。 系统架构概览openYuanrong数据系统采用分布式架构设计支持HBM/DRAM/SSD多级缓存以及实例间零拷贝数据共享能力。系统核心组件包括客户端SDK和服务端worker进程它们之间的数据传输路径直接影响系统整体性能。在openYuanrong数据系统中数据传输发生在三个关键层面SDK与worker之间通过共享内存进行高效通信worker与worker之间通过TCP或RDMA协议进行跨节点数据传输异构对象HBM之间通过HCCS/RoCE卡间直通技术传输数据 TCP传输协议稳定可靠的通用选择TCP传输控制协议作为传统的网络传输协议在openYuanrong数据系统中扮演着基础而重要的角色。TCP协议的核心优势广泛兼容性TCP协议几乎在所有操作系统和网络环境中都得到支持无需特殊硬件要求。这使得openYuanrong数据系统能够在任何标准服务器上快速部署和运行。配置简单使用TCP协议时只需在worker_config.json或values.yaml配置文件中设置worker地址和端口即可无需额外硬件或驱动支持。稳定可靠TCP提供可靠的连接保证、数据包排序和错误恢复机制确保数据传输的完整性和一致性。TCP传输配置示例在Kubernetes部署中TCP传输的相关配置位于docs/source_zh_cn/deployment/k8s_configuration.mdglobal: rpc: ocWorkerWorkerDirectPort: 0 # 0表示禁用专用TCP通道 ocWorkerWorkerPoolSize: 3 # 数据传输并行连接数 payloadNocopyThreshold: 104857600 # 免拷贝阈值进程部署时通过dscli工具直接指定worker地址即可启用TCP传输dscli start -w --worker_address 192.168.1.1:31501TCP适用场景开发测试环境在开发、测试或概念验证阶段TCP协议是最佳选择因为它无需特殊硬件部署简单快捷。小规模部署对于节点数量较少、网络带宽要求不高的场景TCP协议完全能够满足需求。混合网络环境在异构网络环境中TCP协议具有最好的兼容性和适应性。⚡ RDMA传输协议极致性能的专业选择RDMA远程直接内存访问是一种面向大规模数据中心与并行计算的互联技术将网络传输与内存访问深度融合通过旁路内核与硬件卸载实现跨节点间高带宽、极低时延的数据直接搬移。RDMA的核心技术优势零拷贝传输RDMA允许数据直接从发送方内存传输到接收方内存完全绕过操作系统内核大幅降低CPU开销。极低延迟传统TCP/IP协议栈需要多次内存拷贝和上下文切换而RDMA通过硬件卸载实现了微秒级的传输延迟。高带宽利用率RDMA能够充分利用网络带宽特别适合大数据块传输场景。RDMA部署配置启用RDMA需要在编译时添加相应支持并在部署时进行专门配置。从docs/source_zh_cn/best_practices/best_practices_for_rdma.md可以看到详细的配置方法编译支持RDMAbash build.sh -A on # 启用RDMA支持进程部署配置export UCX_TLSrc_x dscli start -w \ --worker_address ${node_address} \ --etcd_address ${etcd_address} \ --enable_rdma true \ --arena_per_tenant 1Kubernetes部署配置values.yamlglobal: performance: enableRdma: true ucxTransportLayerSelection: rc_x enableHugeTlb: true hugepages2Mi: 16GiRDMA传输模式选择openYuanrong数据系统支持多种RDMA传输模式每种模式都有其特定应用场景传输模式特点适用场景rc_x加速型可靠连接性能最佳高性能计算、AI训练rc标准可靠连接兼容性好通用RDMA应用ud不可靠数据报低延迟小消息、低延迟场景dc动态连接支持大规模节点Mellanox网卡大规模集群 TCP与RDMA性能对比分析了解两种协议的性能差异是做出正确选择的关键。以下是基于实际应用场景的性能对比延迟对比TCP传输延迟通常在几十到几百微秒级别受操作系统协议栈和CPU负载影响RDMA传输延迟可达到微秒级别特别适合对延迟敏感的应用吞吐量对比TCP吞吐量受CPU处理能力和网络协议栈限制通常为几Gbps到几十GbpsRDMA吞吐量能够充分利用网络带宽支持100Gbps甚至更高吞吐量CPU利用率对比TCP传输需要CPU参与数据拷贝和协议处理CPU利用率较高RDMA传输通过硬件卸载CPU参与度极低释放CPU资源给应用业务 如何选择最佳传输协议决策指南场景一AI训练和推理推荐选择RDMAAI训练涉及大量参数同步和梯度更新对网络带宽和延迟要求极高。使用RDMA可以大幅缩短训练时间提高GPU利用率支持更大规模的模型训练配置建议启用rc_x模式配合大页内存优化。场景二微服务应用缓存推荐选择TCP微服务架构通常节点数量多但单个节点负载不高TCP协议的优势在于部署简单无需特殊硬件良好的网络兼容性成熟的运维监控工具链配置建议使用默认TCP配置通过ocWorkerWorkerDirectPort优化专用通道。场景三大数据分析平台根据数据规模选择小规模集群10节点TCP协议足够满足需求中大规模集群10-100节点考虑RDMA以获得更好的性能超大规模集群100节点必须使用RDMA才能保证性能场景四混合环境部署推荐方案TCP为主RDMA为辅在混合硬件环境中可以采用分层策略同机房高性能节点间使用RDMA跨机房或普通节点间使用TCP通过配置enableTransportFallback: true实现自动回退⚙️ 配置最佳实践TCP优化配置专用数据传输通道在worker_config.json中配置oc_worker_worker_direct_port启用专用TCP通道连接池优化调整oc_worker_worker_pool_size增加并行连接数免拷贝阈值根据数据大小合理设置payload_nocopy_thresholdRDMA优化配置大页内存配置必须开启大页内存以提升性能参考docs/source_zh_cn/appendix/hugepage_guide.mdNUMA绑定通过--cpunodebind和--localalloc参数绑定NUMA节点网络设备绑定正确配置UCX_NET_DEVICES和UCX_TCP_CM_ROUTE环境变量混合部署配置在values.yaml中配置传输回退机制global: performance: enableRdma: true enableTransportFallback: true # 启用回退机制 故障排除与调试TCP常见问题连接超时检查防火墙设置和网络连通性性能瓶颈监控CPU利用率考虑启用专用TCP通道内存不足调整JVM参数和系统内存配置RDMA常见问题硬件检测失败使用ibv_devices命令验证RDMA设备ibv_devices # 检查RDMA设备 lspci | grep -i infiniband\|rdma\|mellanox # 检查硬件UCX连接超时配置正确的网络接口绑定export UCX_NET_DEVICESmlx5_0:1 export UCX_TCP_CM_ROUTEenp195s0f1np1性能不达标检查大页内存配置和NUMA绑定 性能测试与验证RDMA连通性测试使用ib_write_bw工具验证RDMA网络性能# 服务端 ib_write_bw -d mlx5_0 -R # 客户端 ib_write_bw -d mlx5_0 -R server_ip端到端性能测试通过简单的Python脚本验证数据传输功能from yr.datasystem import KVClient client KVClient(192.168.0.1, 31501) client.init() key test_key value btest_value client.set(key, value) # 测试写入性能 result client.get([key]) # 测试读取性能 监控与调优关键性能指标网络延迟监控TCP/RDMA传输延迟吞吐量跟踪数据传输速率CPU利用率观察协议栈处理开销内存使用监控大页内存分配情况日志分析openYuanrong数据系统提供详细的传输日志可以通过日志分析传输性能TCP传输日志查看网络连接和传输状态RDMA传输日志通过UCX日志分析RDMA性能性能统计监控数据传输的延迟和吞吐量 总结与建议选择openYuanrong数据系统的传输协议需要综合考虑多个因素选择TCP的情况开发测试环境小规模部署10节点硬件预算有限运维团队对RDMA不熟悉选择RDMA的情况高性能计算和AI训练大规模集群部署对延迟和吞吐量有严格要求具备RDMA硬件和运维能力混合部署策略核心业务使用RDMA边缘节点使用TCP逐步从TCP迁移到RDMA配置自动回退机制保证可用性无论选择哪种传输协议openYuanrong数据系统都提供了灵活的配置选项和优化手段。关键在于根据实际业务需求、硬件环境和运维能力做出合理选择并通过持续的监控和调优达到最佳性能。通过本文的指南您应该能够为您的openYuanrong数据系统部署选择最合适的传输协议构建高性能、高可用的分布式缓存系统。记住正确的传输协议选择是系统性能优化的第一步也是最重要的一步【免费下载链接】yuanrong-datasystemopenYuanrong 数据系统是以内存为中心、近计算的分布式异构多级缓存为AI训推、Agent、大数据、微服务等分布式应用提供高性能的数据对象KV与数据流访问、HBM/DRAM/SSD 多级缓存以及实例间零拷贝数据共享能力。项目地址: https://gitcode.com/openeuler/yuanrong-datasystem创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考