多功能PCIE交换机之六:基于NTB夸节点的读写

多功能PCIE交换机之六:基于NTB夸节点的读写优化

1、基于NTB跨节点读写的应用的特点

NTB常常用在要求高性能和高可靠性的场合,用来实现跨节点数据的传输。比如用作虚拟网卡、跨节点数据同步通道等,这些场合都期望充分发挥NTB基于PCIE的高速传输特性,最大限度地提高系统性能。

2、基于NTB跨节点读写的两种实现方式

实现地址转换、建立NTB通道之后,有两种实现NTB跨节点传输数据的方式:

基于CPU实现数据传输

基于NTB
DMA实现数据传输

前者依赖CPU去搬运数据,会占用CPU周期,但非常适合多线程应用;后者依赖独立的DMA硬件搬运数据,几乎不消耗CPU,但在多线程环境需要额外考虑对DMA硬件的并发访问。而在速度方面:在不利用CPU并发处理的情况下,后者一般比前者快很多。比如在笔者的系统上,用CPU搬运数据大概只有100MB/s的带宽,而用DMA的带宽接近1000MB/s,这是在还没有对DMA/PCIE进行专门优化设置的情况下测得的。

3、两种实现方式的共同特点

不管是用CPU还是DMA跨节点搬运数据,底层都是基于PCIE事务实现。从本地往远端节点写数据,底层依赖于PCIE
post write 事务;从远端节点往本地节点写数据,底层是由PCIE
non-post read实现。根据PCIE
post事务和non-post事务的特性可以知道,post操作一般都比non-post操作速度快。在笔者的系统上的测试数据应证了这一理论:CPU往对方节点写比CPU从对方节点读快,DMA往对方节点写也比DMA从对方节点读快。

4、总结

不管是用哪种方式实现跨节点传输,需要透过不同的PCIE应用看到底层PCIE事务传输和处理的本质,这样才能从整体上理解不同的应用表现出的性能差异,从而根据需要进行取舍、优化。

时间: 2024-10-10 11:44:54

多功能PCIE交换机之六:基于NTB夸节点的读写的相关文章

多功能PCIE交换机之五: 基于NTB的DMA

如果说PCIE多功能桥中的NTB为跨节点的数据传输铺好路.架好桥的话,那么PCIE多功能桥中的DMA就是多个节点之间的高铁和航班.没有NTB打通数据通道,DMA也不可能跨越节点.但没有DMA的话,NTB还是可以依赖CPU来在多个节点之间搬运数据.因此DMA对NTB而言是如虎添翼.锦上添花. 和NTB的单NT和双NTB配置相比,DMA可配置的选项比较多,但不管是中断模式.查询模式,也无论描述符是在DMA控制器片上还是片外,亦或配置成单个还是多个DMA channel,都有现成的代码可供参考或寄存器

多功能PCIE交换机之一:概述

多功能PCIE交换机之一:概述 作为服务器或者系统升级的重要方法,横向扩展越来越时髦,越来越多的厂家利用这种方法来实现产品的升级.传统网络.InfinBand.PCIE都可以用来帮助实现横向扩展,这里着重介绍基于PCIE技术实现的横向扩展和容错设计.基于PCIE实现横向扩展和容错设计离不开PCIE多功能交换机.所谓多功能PCIE交换机,指的是一种拥有多个PCIE桥.支持多种配置.自带非透明桥甚至DMA功能的配置灵活.管理方便的芯片. 为了便于读者有更直观的认识,后面都以PLX某款多功能PCIE

多功能PCIE交换机之九:单NT系统中需要注意的问题

多功能PCIE交换机之九:单NT系统中需要注意的问题 1.单NT与双NT系统差异 NTB通常用在双控或者多控的系统上,用来实现跨节点的数据传输.在由多个节点构成的系统上,通常每个节点上都有一个NTB芯片,以实现全系统地址空间划分和路由.顾名思义,单NT是指用一个PCIE非透明桥来实现节点间数据传输的方案,通常用在两个节点之间.和多NT的系统相比,这种方法实现相对比较简单,成本较低,开发周期较短,能够缩短整个系统的关键功能和性能的验证周期. 2.单NT系统的实现 单NT的实现需要结合整个系统的设计

多功能PCIE交换机之八:窗口扩展和驱动加载的常见问题

结合本人在PCIE NTB/DMA最近的实际工作,总结了地址转换窗口扩展和驱动加载过程中碰到的主要问题和解决办法. 0.系统启动后看不到NTB设备 需要检查BIOS,在PCIE设置里面NTB芯片是否使能.这是因为针对不同的应用场景和客户需要,BIOS里面通常添加了Enable/Disable NTB的选项. 1.如何扩展地址转换窗口 a.确定系统要求的地址转换窗口的范围和大小: b.确保系统要求的地址转换窗口的范围和大能够被BIOS支持 c.从可用的BAR2/3和BAR4/5中选择未使用的或者可

多功能PCIE交换机之三:数据迁移及其cache一致性

关于PCIE非透明桥 cache一致性PCIE非透明桥提供了两种机制来从local node往remote node迁移数据,分别是基于地址映射和内嵌的 DMA.对remote节点而言,当它接受数据的时候,CPU可能是不知情的,因此需要保证cache一致性: 对local节点,当通过DMA往它自己的内存传输数据时,本地的CPU也不会被通知,因此需要考虑cache 一致性. 不同的平台实现Cache一致性的机制不一样,ARM平台需要软件参与,而IntelX86平台硬件能够自动维 护cache一致性

多功能PCIE交换机之二:EEPROM恢复与故障排除

作为实现failover的重要器件,8717PCIE switch既支持virtual switch mode, 也支持basic mode,此外它的DMA.地址窗口也有不同的配置方式.而多块8717卡既可组合成单NT的Active-Passive模式,也可以组合成双NT的Active-Active模式,而这些都依赖于 8717 switch上的EEPROM的正确设置.因此,在调试阶段,工程师常常需要修改它的设置,一有不慎,就可能烧入错误的EEPROM设置,导致PCIE switch无法正常工作

Ignite集群管理——基于Zookeeper的节点发现

Ignite支持基于组播,静态IP,Zookeeper,JDBC等方式发现节点,本文主要介绍基于Zookeeper的节点发现. 环境准备,两台笔记本电脑A,B.A笔记本上使用VMware虚拟机安装了Ubuntu系统C. 1. C安装Zookeeper 由于主要测试Ignite,这里仅仅简单安装一个zookeeper节点,下载zookeeper解压后,直接执行zookeeper目录下的bin/zkServer.sh start命令则成功启动zookeeper. 查看Ubuntu系统C的IP地址为1

基于 EntityFramework 的数据库主从读写分离服务插件

基于 EntityFramework 的数据库主从读写分离服务插件 1.       版本信息和源码 1.1 版本信息 v1.0 beta(2015-04-02),基于 EF 6.1 开发,支持 EF 6.1 之后的所有 EF6 版本. 1.2 开放源码地址 https://github.com/cjw0511/NDF.Infrastructure 关于该 EF 数据库主从读写分离服务核心源码位于文件夹: src\ NDF.Data.EntityFramework\MasterSlaves 文件

基于SMB协议的共享文件读写 博客分类: Java

基于SMB协议的共享文件读写 博客分类: Java 一.SMB协议 SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445. 服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件.打印机.串口等.SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI 之上. SMB 一种客户机/服务器.请求/响应协议.通过 SMB 协议,客户端应用程序可以在各种网络环境下读.写服务器上的文件,以及对服务器程序提出服务请求.此外通过 SMB