1、延时定义
交易系统中的延时是指在一定的背景压力情况下,从接入网关发出指令,后台处理,然后在接入网关收到应答的延时。

延时是一个有实际意义的值,假设一定的背景压力,考虑的是延时的发生实在实际的生产环境中发生的,同时具体到背景压力,可能还会包含实际的业务行为分布,例如订单输入、订单删除、订单修改、订单查询等等。这些业务行为的分布,需要考虑实际生产环境中发生的比例,只有这样整个延时的测试才会比较真实和合理。

延时测试的基点是接入网关,目的是排除广域网物理链路对延时的影响,也是目前国际上发布延时的基准。低延时意味着交易系统能够在更短的时间上响应客户的请求,那么在交易的关键路径上,必须要能够足够快的传输数据,同时关键路径上的模块必须要能够足够快的处理数据。

2、延迟测量
要控制和降低延迟,首先要能准确测量延迟,因此需要比较精确的时钟,每个机房需要配几台带GPS或原子钟的NTP服务器。即便使用NTP,同一机房两台机器的时间也会有毫秒级的差异,计算延迟的时候,两台机器的时间戳不能直接相减,因为不在同一时钟域,解决办法是设法补偿时差。另外,不仅要测量平均延迟,更重要的是要测量并控制长尾延迟,即99百分位数或99.9百分位数的延迟。

3、内部延迟
普通C++服务程序,内部延迟(从进程收到消息到进程发出消息)做到亚毫秒级并不需要特殊的优化。如果瓶颈在CPU,最有效的优化方式是强度消减,即不在于怎么做得快,而在于怎么做得少。

4、网络延迟
网络延迟分传输延迟和惯性延迟,通常局域网内以惯性延迟为主,广域网以传输延迟为主。传输延迟是传送1字节消息的基本延迟,大致跟距离成正比。传输延迟受物理定律限制,优化办法是买更好的网络设备和租更短的线路。惯性延迟跟消息大小成正比,跟网络带宽成反比,千兆网TCP有效带宽按115MB/s估算,那么发送1150字节的消息从第1个字节离开本机网卡到第1150个字节离开本机网卡至少需要10us,是无法降低的,因此可以减小消息长度。

5、吞吐量
延迟和吞吐量是矛盾的,延迟跟吞吐量的关系通常是个U型曲线,吞吐量接近0的时候延迟反而比较高,因为系统比较冷;吞吐量增加一些,平均延迟会降到正常水平;吞吐量再增大,延迟缓慢上升;吞吐量过了某个临界点,延迟开始飙升。因此需要把吞吐量控制在合理范围,保证延迟处于正常值。

6、资源使用率
延迟和资源使用率是矛盾的,做高吞吐的服务程序,恨不得把CPU和IO都跑满,资源都用完。而低延迟的服务程序的资源占用率通常低得可怜,实际上平时资源使用率低是为了准备应付突发请求,请求或消息一来就可以立刻得到处理,尽量少排队,排队意味着等待,等待意味着长延迟。消除等待是最直接有效的降低延迟的办法,依赖的是系统的冗余。

7、可靠传输
延迟和可靠传输也是矛盾的,TCP做到可靠传输的办法是超时重传,一旦发生重传,会增加几百毫秒的延迟,因此保持网络随时畅通,避免拥塞也是控制延迟的必要手段。

因此,必须避免交易时段在服务器上拷贝日志文件等操作,或是部署两张网卡,一张网卡专门用于交易,一张用于运维操作。另一个办法是写个慢速拷贝程序,故意降低拷贝速度,每50毫秒拷贝50kB,用时间换带宽。另外,可以编写慢速压缩程序,每100毫秒压缩100kB,花一分半钟压缩完100MB数据,分散CPU资源使用,减少对延迟的影响。

高频交易系统性能应该从哪些方面优化?相关推荐

  1. 用高频交易的方式对TWAP算法优化(TWAP算法、算法实现、高频交易、冰山算法)

    用高频交易的方式对TWAP算法进行优化. 以下内容主要基于执行算法的讨论. 什么是TWAP算法(时间加权平均价格)? TWAP交易时间加权平均价格Time Weighted Average Price ...

  2. 《高频交易》读书笔记

    这本书的翻译有很多句子不通,有能力还是读原版的吧. 我只记录了高频交易实践内容,用来为机器自动交易提供参考.包括功能架构.常见缺陷.测试,三部分. 一  功能架构 上图为大多数系统交易平台结构,主要由 ...

  3. 美国往事:量化投资,永远不等于高频交易

    一.混沌初开(1952),现代投资组合理论的提出 从混沌初开到百舸争流,以美国对冲基金为代表的海外资管,无论是采取何种基本交易方法,最终的目的都是优化自己的投资. 在寻找投资圣杯的路上,无论选择任何途 ...

  4. 在高频交易领域中,为什么我们选择 Java 开发外汇算法交易系统?

    在高频交易的世界中,自动化应用程序每天处理数亿个市场信号,并在全球各个交易所发送成千上万的订单. 为了保持业务竞争力,响应时间必须始终保持在微秒级,尤其是在黑天鹅异常事件等高峰期. 在典型的体系结构中 ...

  5. 期货高频交易该如何选择托管环境

    通常只要资金量量够大的话,可以直接让期货公司提供托管机位,至于虚拟机明显要比物理托管机慢10ms左右,所以能上物理机托管的绝不上云服务器. 物理托管是高频和交易的最基础要求. 虽然在期货交易所的行情发 ...

  6. WonderTrader高频交易初探及v0.6发布

    WonderTrader高频交易初探及v0.6发布 雁过也 3 人赞同了该文章 自从WonderTrader实现了HFT策略引擎以来,一直都没有时间彻底的将高频策略研发.回测.仿真.实盘整个流程彻底走 ...

  7. 高频交易数据如何产生和处理?

    证监会主席易会满出席第60届世界交易所联合会(WFE)会员大会时表示:在成熟市场,量化交易.高频交易比较普遍,在增强市场流动性.提升定价效率的同时,也容易引发交易趋同.波动加剧.有违市场公平等问题. ...

  8. 情绪因子|小时级情绪指数:日内高频交易初试

    小时级情绪指数: 日内高频交易初试 目前,一些国外比较流行的高频日内交易做市策略无法有效地在国内市场实施,除了A股的T+1交易规则,撤单率的限制,印花税偏高等,还有一个重要的原因是:由于预测收益周期很 ...

  9. 运用matlab开发高频交易算法,数学建模论文 高频交易算法

    2012年东华大学数学建模竞赛论文 赛题编号( 高频交易算法设计 参赛队号: 参赛队员: 2012年5月21日 摘要 高频交易算法利用计算机在上千个股票,上万个期权,每时每刻的交易数据中,筛选出合适的 ...

最新文章

  1. NoClassDefFoundError: org/springframework/core/ErrorCoded 报错
  2. java 实现接口后重写方法报错
  3. UOJ #35. 后缀排序 后缀数组 模板
  4. hls.js播放hls直播源
  5. 遇到一个sql2000的问题,实在搞不懂了,求解决的办法?
  6. xv6/调度算法及并发程序设计
  7. mysql的安装包,可直接下载5.6.43
  8. 怎么清理c盘语言文件,怎么清理c盘垃圾
  9. QT-常用函数参数详解之painter->fillRect(),预设值的颜色展示
  10. ChucK学习笔记(零)——前言
  11. web测试----死链检查(Xenu)
  12. 【51 Nod1378】夹克老爷的愤怒
  13. 属性动画cancel
  14. T51 运行文本指令
  15. 国税局发票查验API接口文档说明
  16. Javascript代码优化的8个知识点,分享web前端资料
  17. Pytorch创建自己的数据集(图像分割)
  18. 使用Eagle2进行单倍型分析
  19. linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?
  20. 深圳市梅沙尖登山攻略(2019.8.10 深圳盐田检查站或者东部华侨城出发)

热门文章

  1. win10 chrome被毒霸2345劫持主页处理过程与结果
  2. 数据库中的多表联查(四表联查)
  3. java泛型 方法返回值带有泛型 <T>
  4. Python中判断输入数据的类型
  5. Ubuntu 分辨率设置 1920*1080
  6. 小米盒子4S Pro好不好?对比当贝盒子B1值得买吗?
  7. sip 信令组成的基本格式 总结
  8. python中的self理解
  9. SAP中采购订单历史分类标识与实际业务描述
  10. UVALive-6528 Disjoint water supply