超低时延行情 极速行情如何做到性能的极致?成本控制如何最优?

文章讨论了在交易系统中追求极致性能并非总是关注绝对最低延迟,而是更重视系统的稳定性和相对速度。提到的关键优化点包括网络层的FPGA加速,避免镜像以减少丢包,流水线处理的优化,SDK的本地和网络版本设计,以及传输流的优化。此外,强调了交易稳定性和客户实际需求的重要性,以及定制化解决方案的考量。
摘要由CSDN通过智能技术生成

性能这一块的极致是个无底洞,优化的空间其实是非常大的,有时候甚至可以破坏标准去达到极致的速度。

最近出去跑了一下,发现有些大游资对极速本身的绝对时延不是非常在意,因为他们经过实际的厂商测试,发现很多时候系统的稳定性是个问题,他们更加追求一种相对的快速,能够在速度上over其它系统即可。想来自己过去经常去pk,其实意义根本不大,在券商的各家厂商有时候甚至是根据poc规则作弊,妥妥的为了应付经纪商,而不是真实的面对客户需求。

客户的钱在生产交易系统上跑,丢一个数据包可能就是一个赚钱的机会,在行情极具下滑的时候就是一个逃逸的机会,对于供应商来讲可能还是要更多的去了解客户的需求。

吹牛的太多,做实事的太少,可能整体的风格就是如此。

对于行情性能的极致(这里只是针对A股的现货),我们的经验有几个方面可以提速:

1. 网络层的优化

这里不建议采购特别优秀的网关设备(有钱更好),实际在FPGA这一侧的网络加速引擎可以做很多工作,不管是针对生产交易网络的调优还是针对状态机的调整,时钟的处理,都是一些非常细致的工作。

不建议采用镜像,镜像数据本身无法与网关进行数据的协调,容易出现丢包现象(虽然概率不高),从绝对可靠性角度来说还是要保持实时链接。

2. 流水线的处理

这里面门道就比较多,我们也是不断的优化,尤其是上海交易所的行情优化空间实际更巨大。连续3年一直做这一块的处理,目前是有一个大幅度的提升。

3. SDK的优化

接收侧的优化,是一个不断进化的过程,涉及到策略主机或者交易主机本身的主频,还有SDK的处理方式。

SDK我们是分本地版本和网络版,本地版没啥可说的,基本思路都是内存映射那一套,优化机制取决于软硬件的配合。网络版的点是比较多的,内核态应用态的切换尽量去避免,包括采购第三方solarflare来加速数据,我们的基本思路是不增加客户成本,尽量不额外增加设备采购,当下是围绕软硬件的优化来做的,尽力达到硬件加持的效果。

近期也在找一些深度的客户合作,做定制接收网卡,这样的速度比solarflare更快更好,这种定制化的东西也要看客户的接受度,毕竟客户对开放度的要求目前也是越来越高。

5. 传输流的优化

传输数据的时延,虽然在整体光纤传输中占比不高,都是纳秒级别,但是数据的位数足够多以后,进入软件系统的耗时就会长,虽然我们本身也会有一些内存补齐的操作,很多从cpu架构上考虑的软件编程安排,但是实际中我们的思路更多还是从底层硬件开始做数据流的优化,目前也做了不少工作,提升的性能只能说没有达到一种让客户感觉到质的飞跃。

有些客户对这些优化不是很care,但是对于我们来说,可能未来要面对更多的产品标的,在很多技术层面要保持一定的前瞻性。

6.其它定制优化

一些为了便于问题定位、统计、运维方面的工作。一个系统,是一个完整的东西,并不是玩具,单纯的行情网关登录、建立链接、解码、发布其实没啥,做小系统是很容易的,但是做一个商业化的产品就要考虑异常的处理,客户的维护成本、易用性等太多的因素,尤其是交易的稳定性是我们的重中之重。我们做交易所直连风控开始,对交易本身的稳定性就看得比较重。

当然很多人关心这样做得成本,其实还好,因为我们没有做一毛钱营销投入,营销成本的大头我们没有,都是开发成本,基本思路都是围绕交易而来,不是围绕“面子”出发,客户用我们的东西要是不赚钱,啥面子都是个屁,毕竟行业还是太小嘛。

技术团队的思路还是希望能够从技术角度解决一些交易层面的问题,更多的还是需要从客户那里吸取反馈,给客户提供更好的解决方案,其它的价值观这些都是虚无缥缈的,客户不赚钱的话技术服务存在的必要性就值得怀疑!

很久没有瞎掰了,今天瞎掰一下……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值