【交易技术前沿】低时延基础设施杂谈
上交所技术服务 前天
本文选自《交易技术前沿》总第三十八期文章(2020年3月)
朱宁 上交所技术有限责任公司 系统网络部 上海200120
Email:nzhu@sse.com.cn
摘要:低时延主要服务于高频交易和极速交易,基础设施是决定时延的重要因素,本文将定位于讨论影响网络时延的几个因素,引用部分国外场景,不涉及有关的技术实现。
零. 缘起
有这样一部电影,影片讲述纽约的一对兄弟文森特与安东,他们是高频交易公司的操作员,为了早日 实现财富自由,下海创业拉赞助,克服巨大的项目困难,自费从堪萨斯到纽约部署一条笔直的2000多公里光纤,将交易时延从17毫秒降低到16毫秒,而16毫秒是蜂鸟扇动一次翅膀的时间,故影片名为《蜂鸟计划 The Hummingbird Project》,是一个关于投机、梦想、技术、资本和命运的故事。
笔者数年前曾在《交易技术前沿》参与发表了1篇《降低网络时延的探讨》,该文概述了产生网络时延的各个方面,以及部署低时延网络硬件的必要性。近年来又有多位作者的关于时延的技术文章陆续发表,拓展了我们的视野。本文将继续在低时延的某些领域进行讨论和展示。
一、谈谈广域网线路
网络设备和传输线路是基础设施的两大关键组成部分,涉及到数据包排队时延(Queuing Delay)、路由交换转发时延(Switch Processing Delay)、传输时延(Propagation Delay)和串行化时延(Serialization Delay)。在网络情况优良的情况下,由距离产生的传输时延是影响整体时延的最重要因素,光传输1米的单向传输时延理论值为5纳秒,1公里的单向传输时延理论值为5微秒。
光传输很快,但影片《蜂鸟计划》主人公的光纤项目最终却败于竞争对手的微波传输项目。那什么是微波传输呢?为什么比光还快?
微波通信(Microwave Communication),是使用波长在0.1毫米至1米之间的电磁波进行通信。波长段电磁波所对应的频率范围是300 MHz(0.3 GHz)到3THz。当两点间直线距离内无障碍时就可以使用微波进行数据传送,但地球表面是个曲面,微波长距离传输时,会受到地面的阻挡。为了延长通信距离,需要在两地之间设立若干中继站,进行微波转接。
光和微波在真空中的传播速度都是30万公里/秒。由于存在折射率,光在光纤中的传播速度只有在空气中的2/3左右,而且光纤在城市中的复杂布线会进一步增大延迟。目前国外有部分追求极致时延的交易线路使用了微波技术,国内在这方面尚空白。我们看下对比:
图表1:时延对比
根据某低时延微波设备厂商的测算,通过中国电信提供的光纤网络,上海到香港的传输干线最短Round-trip时延在28毫秒(这个数据今年应该有更新,因为2019年国内三大运营商都推出了OTN政企专网或精品网,OTN是光传送网的缩写,通过对底层OTN光设备进行技术升级,将省际骨干段时延降低了10-15%。资料显示,上海到深圳的Round-trip时延可缩短到22毫秒左右)。
如果从上海到深圳的1400多公里部署微波线路,根据每40公里安装1个微波电路站的原则(信号中继),一共需安装30多台设备,链路时延在12-13毫秒,然后加上深圳到香港的3毫秒光纤传输(现在通过某精品网的公开资料,深圳到香港时延可缩短为1毫秒),全程理想值在16毫秒。
图表2:从上海到广东微波链路模拟图
微波链路也有缺陷,对天气和障碍物敏感,可用带宽小,但大部分时间单一交易商的业务数据流量并不大,如经过算法优化,百兆带宽用于传输加密的交易数据是可行的。目前大部分高速链路都是微波和光纤的组合,根据地理条件和政策限制选用最佳传输介质。2019年McKay Brothers International (MBI)宣布将以目前商业市场上最低的延迟水平,把JPX东京Tokyo-CC2数据中心与上海和香港两地的交易中心连接起来。通过这条混合微波/光纤线路,数据在上海期货交易所数据中心和Tokyo-CC2数据中心之间的往返传输时间不超过22.86毫秒,香港交易所数据中心和@Tokyo-CC2之间的数据往返传输时间不超过39.83毫秒。
期货期权市场是国内高频量化交易的主阵地,部分国际高频交易商如Optiver、Jump、Tower、Winton等都在国内设立了贸易公司,利用自己的线路资源进行全球交易。这些公司十分低调,其官网设计很简单,有的甚至只有几个静态页面,但实际上他们在IT方面的投入十分巨大,例如Jump租用美国军方废弃的微波塔建网,同时在比利时、英国、德国购买处于直线距离的塔。Optiver在国内是把交易设施托管在某大型期货公司的机房,直接利用裸光纤互联多地托管机柜。
一些高频交易公司通过GoWest的低时延链路将国外交易所的数据引入国内。GoWest是从芝加哥的CME数据中心到东京的JPX数据中心的专属低时延网络,其网页介绍也很简单低调:“Go West’s mission is to create more efficient access to global financial markets by offering the fastest and lowest latency route between Chicago and Tokyo.”,GoWest内部有一段路径同时启用了微波通讯和光纤通讯,线路出租价格根据介质和时延而定。此外很多金融公司以往借助AC-1跨大西洋电缆进行纽约和伦敦之间的数据传输,时延为65毫秒。Hibernia Atlantic公司于2012年向市场推出新的跨大西洋海底电缆系统,名为Project Express,是专为金融行业(特别是高频交易)需求而精心设计的低时延大容量海底电缆,该线路将伦敦到纽约的双向时延降低到59.6毫秒。2015年该公司又推出了“Hibernia Express”海缆,进一步将伦敦到纽约的时延降低到58.9毫秒。
国外曾有人专门写了一个模拟交易程序,进行芝加哥商品交易所小型标准普尔500指数(ES)和纽交所的标准普尔500ETF(SPY)套利,两者都是跟踪相同的指数,但ES的计价单位是SPY的10倍,因此在少量时点上存在两者价格偏离的可能,但必须在很短的时间内完成套利交易才能获益。该程序利用2016年某段时间的数据进行回溯测试,发现当距离两个交易所时延都是0.5毫秒时的理论收益是距离4毫秒时收益的1倍多,而当距离两个交易所的时延都是10毫秒时,该套利交易会出现亏损。所以说掌握低时延线路资源对于高频交易商很重要,有些交易商的基础设施团队甚至配备了熟悉运营商长途及本地网络架构、核心节点、施工走线等方面的专才。
对全天候交易都有速度要求的量化用户,可以租用交易所数据中心或附近的托管机柜,报盘机尽可能靠近交易所前置机的地理位置,甚至整套极速交易系统都可以部署在托管机房,AI算法引擎、盈亏分析、委托生成、接口转换、报单、行情接收、风控等组件就近安装在业务接入链路附近,通过调整组件通讯效率优化时延表现。高频交易公司在全球广域网中一般会设置控制节点,该节点主要用来协调各托管机房的交易行为、配置交易参数、监控交易状态,而交易指令则在最靠近撮合引擎的机房内下达。
这里展示一张洲际交易所ICE的链路资源图,涉及全球多个数据中心,其中标有微波线路、低时延光纤线路和普通线路,站点之间的估算时延:
图表3:ICE全球网络链路
二、谈谈局域网互联细节
关于低时延的网络设备,已经有若干文章介绍过,这里就不再重复了。我们重点讨论一下其他一些基础设施细节。首先看一下局域网内的线缆介质。数据中心内部最常用的传输介质就是多模光纤和六类网线,交换机连接光纤使用SFP模块,连接网线用Base-T接口。那么哪一种接口方式时延更低?
图表4:I0G SFP+和10Gbase-T对比
显然使用SFP光纤模块更具优势。在设备互联距离大于10米的情况下,一般我们都使用光纤连接。那么在低于10米的情况下,有没有更极致的连接方式呢?这里先介绍下DAC电缆,DAC的全称是Direct-Attach Copper Cable,即直连铜缆,装配有固定模块,模块和铜缆不能分离。DAC分有源(active)和无源(passive)两种,其中无源铜缆由于价格便宜、传输速度快,使用较为广泛。
图表5:DAC电缆
交换机厂商Arista做过无源DAC和光纤短距离万兆传输的时延测试,测试结果是DAC电缆的整体介质时延略低于多模和单模光纤。我们来看一下:
图表6:DAC和光纤时延对比
下面我们讨论一下主机的接入速率。目前国内证券期货数据中心的服务器主流接入带宽仍是以10G为主。10G速率对于前置交易业务应该是足够的;对于后台主机,未来随着组播技术的大规模应用,预计会存在大批量东西向数据交互及突发流量,所以后台主机的网络接入应该会逐步升级到25G或40G。随着交换机芯片的发展,及可复用目前数据中心内部的OM3/OM4 LC-LC多模光纤,25G更易于在现网实现。
但对于托管接入的低时延需求,10G和25G孰优孰劣?这里有必要再提一下串行化时延。所谓串行化时延(Serialization Delay)就是指交换机根据先到先服务原则将当前正在处理的一个数据包帧中所有比特位推向外部链路所需要的时间,串行时延的计算公式是:数据包帧长度/链路传输速度,对于64字节长度的帧和10GE的链路出口速率,串行化时延为 64byte*8/10000000000=51.2纳秒,对于256字节长度的数据包帧,串行化时延为 204纳秒。如果出口速率升级为25GE,那么64字节和256字节长度数据包的串行化时延分别为20.5纳秒和81.9纳秒。根据公式可以看出,数据包越小,出口链路速率越高(相应时钟频率clock rate越高),那么得出的串行化时延越小。
乍一看,似乎理所当然使用25G带宽,但我们再研究一下介绍25G网络器件的技术文档,可以看到当传输距离大于5米时,25G网络器件需要开启编码纠错功能。有两种纠错探测模式:base-r和rs-fec,如果使用base-r,会引入80ns的额外时延,使用rs-fec,会引入250ns的额外时延,rs-fec的纠错功能比base-r好,适用于25G多模transceivers (例如Cisco SFP-25G-SR-S)。而在使用10G的场景中,不需要开启任何纠错探测。因此在类似托管接入的网络环境中,如果业务数据包不大,带宽使用率不高,理论上10G的传输时延优于开启rs-fec模式的25G,且工作距离可达300米。目前思科已开发出1款新型25G SFP模块(25G-CSR-S)可以在不开启FEC功能的情况下达到50米工作距离,但需要对端设备也必须支持相关技术。
三、Latency-performance or Network-latency
很多高频交易公司的主机都是基于Linux操作系统,尤以Redhat居多。红帽在RHEL/CentOS 6.3版本以后引入了系统调优工具tuned/tuned-adm,其中tuned是服务端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置;tuned-adm是客户端程序,通过命令行的方式管理和配置tuned,tuned-adm还提供了一些预先配置的优化方案可供直接使用,其中有就latency-performance profile和network-latency profile,那么选择哪种更合适呢?我们看一下定义:
latency-performance:
Profile for low latency performance tuning. Disables power saving mechanisms. CPU governor is set to performance and locked to the low C states (by PM QoS). CPU energy performance bias to performance.
network-latency:
Profile for low latency network tuning. It is based on the latency-performance profile. It additionaly disables transparent hugepages, NUMA balancing and tunes several other network related sysctl parameters.
可以看出latency-performance profile是network-latency profile的子集。可以直接选择network-latency方案,然后根据具体应用,在network-latency的基础上再细化调整系统参数。硬件上配置低时延网卡,安装最新的驱动,厂商一般会提供几种网卡性能模式供选择。另外市场上有专为HFT打造的超频服务器,搭配大排量水冷散热系统。如果引入原子钟或其他外部时钟源,就可以同步柜台系统所涉及的所有主机和设备,或用来和交易所对时,能更精确地估算全链路时延。
四、谈谈网络设计思路
交易链的不同参与者对于网络冗余设计的要求可能有所不同,对于交易所的撮合及前置网络、行情组播网络,不必拘泥于采用标准化结构或追求前沿技术,越简单越好,数据流向要清晰,应急操作要方便,从交易架构和基础设施两个层面进行冗余性设计;主机群接入后台总线,采用25G高带宽,减少因流量微突发(micro-burst)导致的瞬时拥塞、时延抖动。会员单位的集中交易网络、量化交易网络,可以偏重于从设备和链路上设计冗余架构,布局精简高效,网络故障能自愈,有可行的兜底方案,区块之间松耦合;根据业务对时延的不同要求,合理选择机房地理位置。在这些集中类的核心交易网络中,在符合安全原则的前提下,可考虑用交换机的安全访问列表替换防火墙,减少防火墙带来的额外时延和运维复杂度。
时延对于高频交易而言,低固然重要,但更重要的是保持时延稳定,稳定即可预期,可掌控,如果相对波动较大,就无法预测报单策略的有效性。所以对于从事跨市场套利的高频量化交易商,线路质量排在第一位,其生产网络的结构更是要简单化,甚至可能不采用故障自愈的设计,因为冗余收敛一定会产生至少1秒左右的传输抖动,而在1秒的时间内,市场行情可能已发生变化,策略可能已不再适用,此时再把滞后的单子送出去可能就是废单或者会带来亏损,所以笔者认为类似于这种对低时延要求很高的公司,遇到故障短暂停止报单更为妥当。
最后略谈一下网络设计中的流量监控。网络遥感技术Telemetry是实现数据中心网络可视化和智能运维的有效手段,真正地实现网络业务端到端的流量可视化,能够实时监测到流量突发、Buffer使用率、瞬时丢包率等,为网络运行提供精准实时的数据支撑。大部分数据中心级别的交换机都已支持Telemetry技术,该功能集成在交换机芯片中。目前尚没有大众化的Telemetry分析平台,不同厂商有自己独有的软件和配套存储,整套系统庞大且价格昂贵。笔者认为交易网络中最需要观察的是带宽大致利用率和流量趋势,根据这些指标决定是否要进行基础设施优化和升级,突发和丢包在任何网络中都不可避免,只要把网络架构或应用逻辑设计合理,就能降低这些场景的发生,防止出现频繁的时延抖动。在暂无条件部署Telemetry的情况下,可以利用略古老的sFlow技术进行流量监控。
sFlow是一种以设备端口为基本单元的数据流随机采样的流量监控技术,厂商支持广泛,不仅可以提供第二层到第四层甚至全网范围内的实时会话信息(能揭示出session的五元祖),而且可以适应大网络流量环境下的流量分析,虽然sFlow是按照一定比例采集的,不能反映链路的性能全貌,但还是能按1分钟为间隔来展示网络传输的流量、趋势和存在的问题。sFlow有一些开源的collector和不太昂贵的商用展示软件,也可以直接通过插件输出到ELK平台。sFlow采集会略提高交换机CPU使用率,个别厂商已经能offload到其他芯片处理。Netflow是类似的另一种数据流监控技术,最早由思科实现,基本能实现全流量采集,比sFlow更能反映出精确的session流量统计,但不是所有厂商都支持该技术。
参考文档
[1] 里什.纳兰 《打开量化投资的黑箱》机械工业出版社 2018年9月第一版
[2] Arista公司http://www.arista.com/
[3] Redhat公司http://www.redhat.com/
[4] 洲际交易所https://www.intercontinentalexchange.com/index
来源:oschina
链接:https://my.oschina.net/u/4364212/blog/4303459