【交易技术前沿】交易系统低延时测试与分析

admin 2025-09-07 阅读:5 评论:0
本文选自《交易技术前沿》总第三十三期文章 证券期货行业测试中心(中金所) 魏畅 陈冬严 张鸿晔 摘要:订单延时(Latency)是衡量交易系统性能的重要指标。本文利用交换机端口流量镜像功能(Port Mirroring)和低延...

本文选自《交易技术前沿》总第三十三期文章

证券期货行业测试中心(中金所) 魏畅 陈冬严 张鸿晔

摘要:订单延时(Latency)是衡量交易系统性能的重要指标。本文利用交换机端口流量镜像功能(Port Mirroring)和低延时交换机产生的纳秒级时间戳,实现了高精度的交易系统逐笔订单延时测量。通过分析逐笔订单延时数据,验证了交易系统性能微笑曲线,获得了交易系统的最佳表现区间(舒适区),同时也对比了逐笔订单延时与现有日志采样方案的优势。

关键词:低延时交换机;时间戳;交易系统;逐笔订单延时

1 前言

证券期货交易系统具有交易时间相对集中、交易指令和数据密集的特点,对交易系统处理速度具有很高的要求[1]。近年来,全球各大交易所都在不断对交易系统升级改造,其中“低延时”成为各大交易所竞争的核心[2]。几所典型国外交易所交易系统性能数据如表1[3]所示,可见交易系统延时竞争已经进入微秒量级。目前,国内交易所交易系统延时性能与国外顶级交易系统还存在一定的差距,需要进一步加大投入进行研发、建设。在建设“低延时”交易系统过程中,也就必然少不了对交易系统“低延时”性能的测试

2 方案介绍

交易系统延时有多种维度定义,参照Cinobber 公司白皮书[4],定义端到端(End-to-end)、门到门(Door-to-door)、撮合器(Business logic)三个延时指标,参见图1。对于交易所,重点关注的是门到门(Door-to-door)延时指标,以及整个门到门链路上的分段延时指标,分段延时指标不是本文讨论的重点,故不做具体讲解、分析。后文涉及的交易延时指标,如果不作具体说明,都是指门到门(Door-to-door)延时指标。交易延时指报单进入交易前置,经交易系统处理,返回交易系统接入点的总时长。交易延时反映了交易系统处理报单的速度,延时越小,订单处理越快,性能越好。

目前市场针对系统延时度量与分析方法众多,如图2所示,主要分为软件时间打戳和硬件时间打戳两大类。

2.1 软件时间打戳

软件时间打戳通常采用嵌入式时间统计代码或者基于Weblogic等中间件记录时间戳。该方案实施简单,缺点也很明显,比如精度差,会增加系统负担从而增加系统延时波动幅度等。目前,很多交易所通过在交易系统中直接加入探针,对交易指令进行采样计算延时,通过系统日志输出,从而得到订单延时。但是,通过该方法获得延时存在一些问题,比如:时间戳取自服务器,导致精度无法满足测量需求;只能获得少量采样订单延时,具有一定的偶然性,不能完全反映采样周期内全部订单延时性能。因此,无法满足交易系统“低延时”性能测试的需求。

2.2 硬件时间打戳

硬件时间打戳顾名思义是利用硬件打时间戳,目前主流网络流量采集、打时间戳和分析的解决方案有三种:交换机打时间戳、专用采集卡打时间戳、网卡打时间戳。

2.2.1 交换机打时间戳

交换机打时间戳方法是在网络包通过交换机时采用SPAN技术(交换机端口镜像方法)将网络包实时异步镜像至可以打精准时间戳的交换机,然后将带有时间戳的网络数据转发给分析服务器,网络拓扑图如图3所示。该方案优点是部署简单、灵活,对现有拓扑结构和系统环境影响小;缺点是成本高,需要特定低延时交换机支持,比如Cisco Nexus 3548交换机就是典型的带硬件时间戳的低延时交换机。

2.2.2 专用采集卡打时间戳

专用采集卡打时间戳方法直接将专用网络采集卡部署在分析服务器上,交换机将网络包镜像至采集卡后,由采集卡完成打时间戳和解包分析等工作,网络拓扑图如图4所示。该方案的优点是部署简单,可容纳吞吐量大,能够实时分析和观测;其缺点是需要绑定厂商的采集卡,通用性不强,扩展性较差,受到厂商限制。

2.2.3 网卡打时间戳

该方案使用专用网卡打时间戳并旁路路由至分析服务器,网络拓扑图如图5所示。优点在于更精确的应用延时分析(除去了网络延时),但是也存在每台主机必须部署专用网卡、多网卡间需PTP精确对时等问题。

综上所述,几种延时度量方法优缺点比较,参见表2。

对项目需求进行详细分析,包括拟度量的网络和业务时间段,度量所需的技术和难度,对现有系统的影响大小,项目成本,以及项目后续可能存在的需求,结合上述方案的比较,最终选择了交换机打戳的方案。该方案结合应用场景,有如下优点:

1) 高精度,如采用超低延时交换机,精度可提高1-2个数量级;

2) 逐笔测量,而现有监控系统/性能测试的结果采集采用日志采样方式获取;

3) 旁路测量,对交易系统无侵入;

4) 通过订单的关联,可以实现前置以及撮合核心的分段延时统计。

3 方案实施

通过上节的对比,本次交易系统低延时测试最终确定为交换机打戳方案。

3.1 部署架构

网络拓扑图如图6所示,客户端为压力服务器,用其进行报单发压力;交易前置是外界连接交易的“窗口”,客户端通过交易前置连接交易系统;交易核心是交易系统最重要的部分,用来处理客户订单;交易总线交换机是一台万兆交换机,负责客户端、交易前置以及交易核心三台服务器之间的数据交换;延时度量交换机选择的是Cisco Nexus 3548,将交易总线交换机镜像过来的数据打上高精度时间戳,然后分发给分析服务器;通过分析服务器上的应用程序对数据进行解析、处理,实现订单的逐笔追踪以及各个节点的延时度量。

客户端、交易前置、交易核心以及分析服务器四台服务器硬件配置,参见表3。

3.2 数据流向

订单数据流如图7所示,客户端、交易前置以及交易核心通过交易总线传输交易数据。

1) 客户端申报订单首先进入交易前置,再到交易核心,交易核心处理完毕后,再将订单的处理结果信息发送至前置。

2) 部署的另外一台延时度量交换机,它将交易总线上的交易数据打上精准时间戳,然后转发至分析服务器上。

3) 分析服务器上部署了用于解析交易数据包的应用程序,从而实现订单的逐笔追踪以及各个节点的延时度量。

4 测试案例与结果分析

本节共进行两个案例的测试与分析:

1)寻找交易系统最佳表现区间;

2)对比采样方式和逐笔方式的结果差异。本文数据都已做了脱敏处理,不代表真实结果。

4.1 最佳表现区间

交易系统存在一个舒适区,即延时最佳表现是一个区间。当报单速率从小到大递增的过程中,交易系统由冷变热,由热变烫,交易系统的延时也由大变小,再由小变大。

测试方法:用报单工具在某一合约下以同一价格重复报“买卖开平”单,所有订单均被成交,且价格无变化。报单速率从1笔/秒逐步上升至20k笔/秒,逐笔延时数据采用稳定报单后60秒的报单数据。

根据获取的不同报单速度下的延时数据,绘制相应速度下的交易系统延时帕累托图,如图8、图9所示。根据图8、图9可以看出,在测试环境下,交易系统延时最佳表现在1k笔/秒的报单速率下。

根据获取的不同报单速率下的延时数据,绘制各报单速率下的交易系统延时分位图,如图10。从图10中可以看出,在测试环境下,交易系统的最佳表现区间如表4所示。从表4中可知,报单速度在100笔/秒~3k笔/秒时,符合三种分位数要求,表现最优。

4.2 与采样方式对比

采样方式获取延时存在一些问题,但以往都是从定性方面来分析,本案例将从定量方面来比较采样方式和逐笔方式的结果差异,证明采样方式的局限性。

测试方法:用报单工具在某一合约下以同一价格重复报“买卖开平”单,所有订单均被成交,且价格无变化。报单速率保持在10k笔/秒,逐笔延时数据采用稳定报单后60秒的报单数据;采样数据选取该段时间对应的Syslog里面的延时数据。

根据获取的逐笔延时数据和采样数据,绘制相应交易系统延时帕累托图,如图11。根据图11可以看出,测试环境中,在10K笔/秒报单速度下,通过Syslog获取到的采样数据显著比逐笔的数据要小,特别是延时小于100us时,延时越大,差距越大,表示采样数据失真度越大。

根据获取的逐笔延时数据和采样数据,绘制相应交易前置延时分布分位图,如图12。根据图12可以看出,50分位下,Syslog采样数据比逐笔数据小10us;99分位下的数据要小55us。

根据获取的逐笔延时数据和采样数据,统计分析得到小于200us和小于210us的数据占比如表5所示。从表中可以看出,通过采样方式获取到毛刺数据不全,在10K笔/秒报单速率下,采样得到的最大延时在200us以内,遗漏了1%左右的大于200us的订单。

4.3 结论

根据前面两个案例,可以得到以下三点结论:

1) 交易系统存在一个最佳报单速率,此速率下系统延时状况最佳;

2) 根据对交易系统不同的延时要求,存在不同最佳表现区间,要求越严格,最佳表现区间范围越小;

3) 采样数据和逐笔数据对比,存在失真的情况,因此只能用来粗略了解系统运行状况;想要全面掌握系统运行状态,需要通过逐笔数据来观测。

5 展望

本文在多种延时度量方案中选择了一种相对较好的方案,针对交易系统进行了两个案例的低延时测试,获得了一些测试结果。虽然该项工作是围绕交易系统进行的,但是该方法具有一定的普适性。同时,本次测试是在测试环境下进行的,绝对数据存在一定的失真,希望以后能在生产环境进行尝试,获取更加真实的数据给开发运维同事提供一定的参考。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • BIAS指标解析:如何利用乖离率预测股价反转

    BIAS指标解析:如何利用乖离率预测股价反转
    乖离率(BIAS)是技术分析中一个重要的指标,用于衡量股价与其移动平均线之间的偏离程度。通过计算股价与均线的差值占均线的百分比,投资者可以判断当前股价是否处于超买或超卖状态。BIAS的计算公式为: BIAS = (当前股价 – 移动平均线) / 移动平均线 × 100% 当BIAS值大于10%时,通常认为股价处于超买状态,市场可能面临回调风险;而当BIAS值小于-10%时,则认为股价处于超卖状态,市场可能迎来反弹机会。 乖离率的基本原理 乖离率的核心思想是股价会围...
  • MACD指标解析:如何通过DIFF和DEA线捕捉市场趋势

    MACD指标解析:如何通过DIFF和DEA线捕捉市场趋势
    MACD(平滑异同移动平均线)是技术分析中常用的趋势跟踪指标,由DIFF线、DEA线和柱状线组成。它通过计算两条指数移动平均线(EMA)的差值,帮助投资者识别市场趋势的强弱和转折点。本文将深入解析MACD的构成、计算方法及其在捕捉趋势转折与背离信号中的应用。 MACD的构成与计算方法 MACD由三个主要部分组成:DIFF线、DEA线和柱状线。DIFF线是短期EMA(通常为12日)与长期EMA(通常为26日)的差值,反映了短期和长期趋势的差异。DEA线则是DIFF线的9...
  • CCI指标揭秘:如何利用CCI>100和CCI<-100捕捉买卖信号

    CCI指标揭秘:如何利用CCI>100和CCI<-100捕捉买卖信号
    顺势指标(Commodity Channel Index,简称CCI)是一种广泛应用于股票、期货和外汇市场的技术分析工具。它由唐纳德·兰伯特(Donald Lambert)于1980年提出,主要用于衡量价格相对于其统计平均值的偏离程度。CCI的核心思想是通过计算当前价格与历史平均价格的差异,来判断市场是否处于超买或超卖状态。 CCI的计算公式较为复杂,但其核心逻辑是通过比较当前价格与一定周期内的平均价格,来衡量价格的波动性。具体来说,CCI的计算公式为:CCI = (当...
  • 威廉指标突破80?别急,还需这些指标验证!

    威廉指标突破80?别急,还需这些指标验证!
    威廉指标(Williams %R,简称WMSR)是一种常用的技术分析工具,主要用于判断市场的超买和超卖状态。它由拉里·威廉姆斯(Larry Williams)在20世纪70年代提出,通过测量当前价格相对于一定周期内最高价和最低价的位置,来反映市场的短期动能。本文将深入探讨威廉指标的基本原理、如何利用它判断短期超买状态(80以上),以及为什么需要结合其他指标进行验证。 威廉指标的基本原理 威廉指标的计算公式为: WMSR = (最高价 – 收盘价) / (最高价 –...
  • 能量潮(OBV)揭秘:如何通过成交量预测股价趋势

    能量潮(OBV)揭秘:如何通过成交量预测股价趋势
    能量潮(On-Balance Volume,简称OBV)是一种技术分析工具,由乔·格兰维尔(Joe Granville)在1963年提出。OBV通过累计成交量的变化来预测股票价格趋势,是一种非常有效的量价分析工具。OBV的核心思想是成交量是价格变动的先行指标,成交量的变化可以预示价格的未来走势。 OBV的计算方法相对简单。当某一天的收盘价高于前一天的收盘价时,当天的成交量被加到前一天的OBV值上;当某一天的收盘价低于前一天的收盘价时,当天的成交量从前一天的OBV值中减去...