交易系统开发(八)——低延迟网络构建
转载自《交易技术前沿》总第三十三期文章(2018年12月)
一、低延迟交易
1、低延迟交易简介
低延迟交易是算法交易的一个分支,资本市场机构对市场事件进行更快速的反应,利用极其细微的反应时差,来获得更强的交易获利能力。
2、交易延迟分类
延迟是计算机系统接收到一个事件刺激,到产生响应之间的时间间隔。对于券商而言,事件刺激可以是客户端输入订单,可以接收到市场行情数据发布,可以是接收到订单确认返回。低延迟交易要求整个交易链条上的所有环节,都尽量缩短时间间隔。从交易系统层面看,交易延迟主要包括网络延迟、协议延迟、操作系统延迟、应用延迟等。
3、网络延迟
交易系统的下单通过网络经券商柜台到达交易所交易撮合主机,中间会经过多个网络设备,包括交换机、路由器和防火墙等,因此网络会存在延迟。
网络中存在三种类型的延迟:数据序列化延迟、传输延时、排队延迟。
(1)数据序列化延迟
数据序列化延迟是网络设备将一定量的数据位(bit)输入物理介质(通常指光纤或者铜缆)所需要的时间。
(2)传输延迟
传输延时传输延时(propagation)是数据经过序列化处理进入传输介质后,在传输介质中传输所使用的时间。光在光纤中传输速度通常是在真空中传输速度的三分之二。
(3)排队延迟
当多个数据发送端通过同一条网络链路往一个接收端发送数据包时,数据包必须在连接发送端与接收端的交换设备上进行排队(queuing)。一个数据包排队延时的大小取决于两个因素,一个是排在前面的数据包数量,一个是数据接收链路的带宽速率。
4、协议延迟
交易网络中存在多种网络传输协议,比如TCP、UDP、SPX等,由于不同协议设计的目标不同,因此其传输效率以及相应的延迟都有所区别。针对网络协议延迟,需要考虑以下特性:
(1)纳吉尔算法(Nagle Algorithm)
(2)数据窗口(Data Window)耗尽
(3)包丢失(Packet Loss)
(4)路由协议
(5)QOS与SPAN的使用
5、操作系统延迟
在计算机硬件与交易系统间,存在BIOS/FIRMWARE、操作系统内核、代码运行环境(包含在操作系统内),为交易系统提供各种功能函数调用,以实现代码与硬件之间的互动,操作系统内核及代码运行环境在调用过程中也存在一定的延迟。
设备制造厂商一般建议将BIOS和Firmware更新到最新版本并进行特别设置,并且提供关于低延时方面的解决方案或最佳实践,包括提供配置清单和脚本,用于检查各层次基础软件设置是否符合低延迟系统最佳实践等。
6、应用延迟
低延迟应用一般是交易机构自行控制的,根据一般交易应用的本质特征,应用延迟分为:
(1)磁盘访问
低延时应用采用内存数据库或者固态存储来降低IO延迟。
(2)进程间通讯
低延时应用采用RDMA等技术降低进程间通讯成本。
(3)数据计算
低延时应用采用FPGA、GPU等技术加速数据计算过程。
(4)数据锁等共享资源访问等待
可采用非阻塞式的数据管理系统,或者更小粒度的资源管理来降低访问等待。
7、延迟的度量
由于低延迟交易系统的延迟,在每一个环节都接近次微秒级,在度量时,不仅要作为一个整体来考虑平均延时、延时抖动以及吞吐量,而且要注意度量手段和工具本身的时间精度。
(1)平均延时
平均延迟是是消息通过从一个点到另一个点的平均时间,越低越好。
(2)延迟抖动
延迟抖动是衡量延迟可预测性的重要指标,其代表的是测量过程中,每次实际延迟与平均延迟之间的偏差程度。。
(3)吞吐量。
吞吐量可以定义为单位时间处理的数据量。一般低延迟系统要求在保持低延迟的前提下,追求尽量大的吞吐量。
(4)时间精度
大部分的计时系统依赖硅晶体振荡和主板中断等硬件基础,不同的操作系统平台采用的精度控制方法会有所差别。部分低延迟网卡和交换机可以提供高精度的时间戳供延迟度量使用。
二、低延迟网络简介
1、低延迟网络简介
近年来,金融和资本市场通过业务和技术双轮驱动持续高速发展,全球交易所趋向集中整合和互联互通,交易产品和业务多元化创新。信息技术创新日新月异,推动交易系统不断更新换代,交易系统由集中式转向分布式是国内证券行业交易技术发展的趋势。
证券交易系统的交易竞价原则是价格优先、时间优先,即同等价格下,先到先得。目前国内主流券商的集中交易系统委托上行时延从几十毫秒级到上百毫秒不等,面对日益激烈的竞争需求,新一代分布式架构的交易系统已经向百微秒级的时延迈进,时延大小是衡量交易系统性能最重要的指标。
全球交易所是以微秒级时延来进行度量和竞争的。为满足市场要求,采用先进的高性能网络设备和技术,构建高可靠、低时延、高吞吐网络的需求日益迫切。
每年6月和11月,Top500 Supercomputer网站公布超级计算机世界500强名单、性能指标、技术架构等,其中网络互联技术作为高性能网络技术的标杆。2018年11月,超级计算机前500强名单显示,最流行的互连技术是以太网(252个系统),然后是InfiniBand(135个系统),自定义互连(64个系统)和Intel Omni-Path(43个系统)。
对2016年至2018年Top500超级计算机的网络互联技术变化趋势进行统计
高性能网络技术的应用和发展趋势:
(1)以太网和InfiniBand是两种主要的网络协议,万兆以太网是最广泛使用的系统互联技术;
(2)近两年来,随着融合以太网技术快速发展及以太网带宽大幅提升,以太网的份额逐渐扩大至51%,快接近InfiniBand份额的2倍;
(3)Intel主推Omni-Path高性能计算架构,提供交换机、管理软件、HFI卡、线缆等一体化解决方案。Omni-Path作为InfiniBand在超算高性能网络领域的主要挑战者,从2016年11月至今,采用Omni-Path的系统数量呈现平缓上升的趋势,目前总体占比为9%。
2、以太网
以太网在1970年代初期推出,以简单、易用、经济、易扩展等优势得到普遍应用。至今40多年的时间里,以太网技术和协议仍在持续演进发展,满足当今高性能网络融合创新的需求。近年来,为满足云计算、统一存储等多样业务,新型以太网通过DCB、VXLAN、FCoE等技术,丰富存储和虚拟化支持能力;通过RoCE、拥塞控制优化、流控管理优化等技术,大幅降低网络转发时延。以太网带宽从早期的10M速率提升到10G/25G/40G/50G/100G,近期以太网带宽进一步提升到400G,满足超大规模数据中心和云计算等带宽密集型需求。
高性能以太网络技术的快速发展,使得国内、外主要发达市场的交易所积极投入资源升级更新网络基础设施,如纽约证券交易所(NYSE)、纳斯达克证券交易所(NASDAQ)、伦敦证券交易所(LSE)、东京证券交易所(TSE)、香港证券交易所(HKEX)均采用万兆以太网,并提供万兆的托管机房接入。
3、InfiniBand
InfiniBand在1999年首次提出,是一个为大规模、低时延的高性能服务器集群而设计的网络技术,通过大带宽链路实现服务器、存储设备互联。其特点一是超大带宽的连接。带宽支持56Gb/s、100Gb/s及200Gb/s;二是极低的网络时延。InfiniBand在可比数据速率下具有比以太网更低的时延;三是可靠无损的网络。基于链路层的流控机制和先进的拥塞控制机制防止拥塞和丢包;四是完全的CPU卸载功能。基于硬件的传输协议实现高可靠、无丢包的网络数据传输。通过远程直接内存存取(RDMA)和内核旁路技术,可以直接对远程节点间预分配内存读和写,无需涉及操作系统内核、无需数据多次复制,大幅降低CPU工作负载和网络时延。五是卓越的可扩展性和灵活性。一个子网可以支持48,000个节点,一个网络即可支撑大规模服务器的部署。
一套完整的InfiniBand系统由服务器、交换机、子网管理器、主机通道适配器(HCA)组成。高性能服务器集群最广泛使用的网络架构为胖树(Fat-Tree),非阻塞网络下,该架构可以达到大规模服务器的最优性能。典型的胖树架构如下图示:
部分交易系统的内部通信为了达到最小的时延,核心网络采用InfiniBand,其它网络采用以太网,如德国证券交易所和新加坡交易所的交易系统内网采用InfiniBand,德国证券交易所的T7交易系统6.1版本委托回报回路时延少于52us,新加坡交易所的平均订单回报时延为90us。
三、低延迟网络构建
1、低延迟的因素
系统端到端时延主要由网络设备转发时延、网络连线的传输时延、网卡数据收发时延、操作系统处理时延、中间件处理时延及业务处理时延等构成。网络时延由网络设备转发时延、网络连线的传输时延和网卡数据收发时延组成,构建低时延网络,需要在各个环节降低时延损耗。
2、转发时延压缩
随着行业低时延、高性能交易场景及数据中心托管业务发展的需求,对网络设备的性能提出了更苛刻的要求。无论数据包大小和流量类型,所有网络端口之间应提供稳定的低时延传输,并保持足够低的时延抖动。2012年9月,思科公司发布了自研芯片和算法的Nexus3548交换机,正常路径转发时延为250纳秒,抖动在5纳秒左右。2013年,Metamako公司发布了超低时延的、可配置的一层交换机MetaConnect,时延仅为4纳秒,如此低的时延速度意味着使用者可以获得最大的竞争优势。2014年,Exablaze公司发布ExaLINK Fusion交换机,通过精简功能和协议并集成Xilinx Ultrascale FPGA,二层转发时延为110纳秒,一层交换时延为5纳秒。Arista、Juniper、华为等网络厂商大部分采用Broadcom、Intel的商用ASIC芯片解决方案,根据官网的数据,Arista 7150s-52的时延为380纳秒,Juniper的QFX 5110的时延为550纳秒。Mellanox采用自研的Spectrum芯片,以太网交换机SN2410的时延为300纳秒,InfiniBand SX6036 FDR(56Gb/s)交换机的时延为200纳秒,InfiniBand SB7800 EDR(100Gb/s)交换机的时延为90纳秒。
低时延网络设备的制胜高地竞争异常激烈,超低时延交换机的转发时延已经慢慢接近光传输速度的物理极限。实际上,业务处理时延和系统开销远大于网络设备时延,网络设备的转发时延、性能表现等指标可作为一个对比参考项。尤其是在核心交易系统,首先应该关注高可用网络架构以及网络在复杂故障场景下的表现,其次才是尽可能地降低时延。
3、网络架构
传统的大型数据中心的网络架构,通常分为核心层、汇聚层、接入层,随着云数据中心、分布式计算快速兴起,数据中心内的服务器交互流量激增,数据流向模型由南北向变成东西向。传统的网络架构是为了南北向流量设计,已不能满足高性能、低时延分布式系统部署的要求。目前,构建低时延网络架构的方法是尽量简化传统网络的层数,减少数据经过网络设备的次数,将传统集中交换、垂直的网络架构变为水平的、易扩展的分布式架构。
根据服务器的数量进行分类,交换机按48个接入端口计算,一个数据中心小于40台服务器的低时延网络架构通常只有一层(核心层),两台交换机互联既作为核心交换机,也作为接入交换机。交换机之间运行M-LAG或vPC或堆叠,确保不产生环路。同数据中心1跳网络可达,跨数据中心2跳网络可达,网络架构如下图示:
一个数据中心多于40台服务器的低时延网络架构通常有两层(核心层、接入层),两台交换机互联作为核心交换机,其余交换机作为接入交换机。核心交换机之间运行M-LAG或堆叠,确保不产生环路。同数据中心1跳网络可达,跨数据中心4跳网络可达,网络架构如下图示:
4、传输时延优化
网络传输时延是数据在网络链路传输时产生的延迟,网络传输时延与系统部署位置、长途线路的长度及传输介质密切相关,选择最短路径和最佳质量的链路,可确保最小化链路的网络传输时延。
为便于市场参与者能灵活、快速接入,交易所提供托管机房、数据专线甚至互联网等多种接入方式。技术基础设施和系统部署的位置就近接入交易所,在交易所托管机房部署系统可有效缩短网络接入时延,有利于构建点对点直连交易所的快速交易通道。为保证公平性,交易所在托管机房提供几乎完全等长的布线、及统一带宽的接入端口。市场参与者为获得最小的网络通讯时延,应建设低时延的局域网,同城跨数据中心的通讯尽量采用高速光纤链路进行通讯,通讯链路上尽可能少使用中继器、连接器、防火墙、路由器等设备。
5、低时延万兆网卡
低时延网络设备转发时延是百纳秒级的,在同一数据中心内部网络连线的传输时延也是百纳秒级的,相比之下,网卡数据收发时延则占据了主要的比重。下表是几个主流系列网卡的时延参考值:
即使是同为万兆网卡,不同系列网卡的性能差距甚远,低时延万兆的传输时延是普通万兆网卡的一半。网卡收发数据时延占如此高的比重,因此在构建低时延网络过程中,选择低时延万兆网卡非常有必要。
6、网络带宽提升
串行化时延是指一个数据帧或信元被一个接收者接收并开始处理的时间。串行时延与传输速率成反比,速率越高,接收数据帧的时间越短。提升网络接入带宽是减少串行时延的最有效办法,低时延网络建议最低的接入带宽为10G,推荐采用25G或更高的接入带宽。
现阶段,大多数数据中心基于10G以太网规划和建设。随着25G交换机和网卡的成本大幅降低,目前25G的总体拥有成本基本接近于10G,网络布线不需要变动便可直接升级演进到25G带宽。根据Dell'Oro Group预测:随着支持25G的网络交换机和网卡不断增加,更多的云用户或大型企业升级到25G。2019年至2020年,25 G将成为云和企业服务器的主流速度,25 G端口的出货量预计将在2021年达到峰值。
华锐分布式技术实验室联合上交所技术公司低时延技术实验室,使用Qperf对某主流品牌低时延万兆网卡在10G和25G模式进行TCP、UDP时延基准测试,分析对比结果显示:25G各种不同数据包长的TCP和UDP时延,均低于10G的时延。
即使网卡端口占用带宽远未达到10Gb/s的水平(如百兆b/s的流量带宽),以上测试结果仍然成立。为进一步分析带宽对应用系统的性能影响,实验室使用华锐的ATP交易系统在同一个测试环境,基于网卡的不同带宽模式进行测试,结果表明,系统时延降低超过20%的,应用的处理性能也得到了提升。
7、网卡加速
网卡作为服务器的一个重要部件,网卡的性能好坏会直接影响系统总体性能。通过网卡加速技术,可以大幅有效减少系统总体时延。近年来,以太网不断融合创新,发展推出RoCE协议。RoCE在数据链路层支持标准以太网协议,在网络层上支持IP协议;也无需改变数据中心的原有基础设施,节省大量成本;还使得大带宽以太网的性能快速向InfiniBand靠拢。
除了RoCE的网卡加速技术,行业比较常用的是加速技术,提供的高性能POSIX兼容网络堆栈,可显着减少网络时延、提高吞吐量和降低CPU利用率。提供标准的BSD应用程序编程接口支持以太网网络协议,最终用户不需要对应用程序进行修改。 技术通过内核旁路、减少数据复制次数等技术将传统的内核堆栈约7us的时延降低至不到2us。
8、无损网络
传统的以太网络采用的是尽力而为的转发模式,它对时延、丢包率等性能不提供任何保证。当网络中出现多台服务器同时与一台服务器通讯的时候,往往会造成网络数据的拥塞甚至丢包。网络拥塞丢包导致重传,增加网络时延,严重时会让业务性能也受到影响。减少或者避免网络拥塞和丢包现在通用的解决方案是:PFC(Priority-Based Flow Control )和ECN(Explicit Congestion Notification )的流控技术。PFC可以对链路上队列的流量进行控制,并在交换机入口出现拥塞时对上游设备流量进行反压。ECN技术可以实现端到端的拥塞控制,在交换机出口拥塞时,对数据包做ECN标记,并让流量发送端降低发送速率。通过在网络中组合部署PFC、ECN功能来实现无损传输保障,确保网络保持低时延运行。
来源:oschina
链接:https://my.oschina.net/u/4363296/blog/4621469