高频交易下证券公司交易系统的性能优化.docx
《高频交易下证券公司交易系统的性能优化.docx》由会员分享,可在线阅读,更多相关《高频交易下证券公司交易系统的性能优化.docx(34页珍藏版)》请在三一办公上搜索。
1、第一章概述交易系统性能优化是当前国内金融市场中一个备受关注的话期.近年来,随着T+0交易品种陆续上市,以及北交所、广期所的成立挂牌,金融交易市场机会不断涌现.在这个竞争激烈的环境下,如何在最短的时间内获取到最新的股票、期权、期货及相关的行情信息,并且能终以最快的速度向交易所提交订隼请求,是市场竞争的至要方向.对于一次委托来说,订单全链路耗时即投资者的交易订单从订单形成系统发至经纪公司订单处理系统经过其处理确认后发往交易所及交易所确认报单后按原路径返回至订单形成系统的往返整体链路的耗时。而对于高频交易来说,投资者除了要求订单全腌路耗时不断提速外,同时也会对分第行情的获取有极高的要求,因此整个高频
2、交易体系内的调优主要涵盖网络链路、订单形成系统、订单处理系统、交易所报盘网关、交易所内部系统.行情(接收)、分析行情(策略部分)等各环节。分析各环节的耗时占比及调优性价比权衡得出最适合当下的方案。各家应用场景各有不同,本文针对基他软硬件和网络简单介绍下通用方案供各位参考:第一,找寻影响因子,应当建立稳定、高速的全链路数据度星通道,保证实时、准确地获取网络快慢、系统优劣的度量数据.全链路度量是对高频交易系统整个交易流程进行全方位的度量和评估.通过全腌路度录,可以精确地评估每个环节的效率和时延,找出影响系统性能的瓶颈,并针对性地进行优化和改迸。第二,单元优选更换,使用高性能的硬件设备,能够在底层搭
3、好框架,保证提供高算力,完成订单匹配,减少交易时延,提高交易执行的效率和成功率.最终,系统调优观察,对于己获解的行情和交易数据,在高性能硬件上通过系统和软件优化使高频交易系统达到极限件值是目前证券公司的整体发力方向.在未来,也将成为证券期货公司提升核心竞争力追求长期稳定盈利的曳要手段之一.第二章常见问题整体性能优化包含但不限于下述步骤:1)影响因子评估;2)瓶颈观测及分析;3)单元调优;4)系统级优化;5)持续监控及改进.通常存在以下常见问题:找寻影响因子问题定位难:交易环境复杂,交易殖条长,无法精准定位系统性能问题;度量精度要求高:极速行情、交易软硬件频繁更新优化,常规测试方法无法达到精度要
4、求,对比测试大费周章;偶发问题难觉察:日常测试无法发现交易系统偶发问题(抖动、异常响应速度).单元优选更换高性能服务器选择:高频交易系统需要处理大量的市场行情数据、历史数据和实时数据,并进行豆杂的计算和分析.如何选择合适的高性能CPU和内存的服务器是至关重要的.高频率的多核处理器和大容量的内存可以快速处理数据,加速算法模型的计箕和决策生成.低延时网卡选择:高频交易系统需要及时获取和传输行情数据,而且通常需要与多个交易所和数据源连接.因此,选择具有高带宽和低延迟的网卡是必要的.高稳定低延时交换机选择:高频交易系统通常需要持续运行,并承受大规模的数据处理和交易流量.因此,选择具有高可匏性和低延时的
5、交换机可以提高系统的稳定性和可靠性.系统调优观察调优方案定夺:除了硬件层面优化,系统层面的优化包括且不限制于进程调用、函数处理等,在开销及时延消耗比较大的函数栈中,通过进行定制化工具开发,实施埋点等操作,从而进行代码级性能瓶颈分析,并助力给出针对性的调优方案持续观察分析:在调优手段淹盖之后,基于目前券商大多数系统环境,即使在某一次调优后达到了不错的数据,但是由于负载均衡、内核污染等等不可避的问题存在,单次调优无法达到应有效果,所以持续分析是不可缺少的一环.第三章优化思路找寻影响因子一度量极速高频交易环境中,需要采用最快的网络设备进行组网,并且要对全链路节点的处理时延、流取、抖动等性能指标进行高
6、精准统计与展示,帮助运维人员对应用系统性能异常和故障做出精准快速定位.行情链路包括:行情网关,行情解码,行情转发,客户端,网络设备等;交易链路包括:客户策略,交易系统,报盘网关,网络设备、防火墙等。现有业务分析及监控平台主要采用系统内置分析模块,但只能分析单节点性能,不能分析全腌路端到端性能;目软件麋作系统打点,时间精度抖动较大,准确性不足。上图为一种全链路的高精度度量方案,此方案通过将网络流量旁路导出至高精准时间做设备,在数据包尾部添加上可识别的时间战标识,并实时进行流量解析计n,计肾精度为皮秒级别,可以支持全链路时延精准度量.单元优选更换一匹配交易链的不同参与者对于设备的要求会有所不同,从
7、底层链路、网络的选择上,都需要选择合适匹配的参与单元,而作为关键点的交易系统和宿主机,在满足高性能低延时的同时,还需考虑载体、温度、功耗等一一来进行选型,并逐步建立测评选型基准.交易系统不光需要追求极低的延时,更垂要的是保持整体稳定,稳定即可预期,可掌控,如果相对波动较大,就无法预测报单策略的有效性.系统调优观察一定性机器从出厂之后,就会有相关参数,而通过PCIE和速率、IO和负载、字节和网速等等,会计算出一个理想数值,但现实情况中往往达不到理想值.此时则需在整体系统中,对当前CPU、10、Memory等迸行密集性、内存负载、IO基准等测试,如性能监控下,可采用PCP测试;系统追踪中,运用Pc
8、ef;针对于系统调用,用Toolkit进行跟踪等等.如此以来,将将硬件、系统、应用等进行一连串调优,再根据每次调优后的数据计算出基线和饱和率,审视工作流.在审视工作流完成基数标定之后,OS层承上启下,单点定性后往往在某次调优后牵一发而动全身.基于操作系统蜃面实现交易系统优化往往非常有效,比修改应用程序、改善硬件环境等问题解决更彻底、整体TCO更优。这个时候,针对于OS层面,往往需要确认四件事情.1 .命令集:在调优OS层面时,首先需要确认使用的命令集.不同的硬件架构和处理器可能支持不同的命令集,例如x86、X86-64、ARM等.了解命令集对于确定可用的优化选项以及应用程序的性能影响非常正要.
9、2 .BIOS设置:BIOS(基本箱入/箱出系统)是在计算机启动过程中加载的固件,它负责初始化硬件并传递控制权给操作系统.在调优OS层面时,需要确认BIOS设置是否合理.例如,检壹BIOS中的电源管理选项、内存配置、硬件虚拟化支持等设舌,以确保它们与应用程序的性能需求相匹配。3 OS本身:操作系统本身也可能对系统性能产生影响.确保掾作系统已经进行了必要的优化和调整,例如启用了适当的内核参数、关闭了不必要的服务.设置了正确的文件系统选项等.此外,还可以考虑更新操作系统补丁和驱动程序,以修夏可能存在的性能问期.4 .负载容量规划:在调优OS层面时,需要对负载容量进行规划和评估.这包括确定系统的预期
10、负载和性能需求,以便为其分配足纺的资源.可以考虑调整CPU调度策略、内存管理设置、文件系统缓存大小等,以优化系统的性能和响应能力.而完成以上俩点后.金融行业的系统最佳不应当为系统在某一刻可以达到的峰值,而是针对于当前应用此匹配的一系列方案才可以称为最佳。比如在证券客户交易系统方面,缩短延时(加快响应速度)比提高吞吐量(完成更多操作)更重要。而这二者往往互相制约。同时针对干不同系统不同应用,也需要通过对业务的分析,进行某一点的最佳调优,再由点及面,才可以达到系统的最佳调优.第四章性能天梯高频交易端到端链路从架构上可分为应用交付层、支撑环境层.操作系统层、硬件设备层和基础设施层。应用交付层主要是交
11、易应用程序和箕法,支撑环境层包括了消息中间件、程序加速软件等环境软件,基础设施层主要由机房基础设施组成.端到端整体时延可以理解为证券公司从接收交易所行情入口到报盘至交易所间各个节点的延时之和,其中包括了行情系统、交易系统、网络设备、服务器网卡、光纤传输等等环节,各环节目前的时延星级如下:身秒(10-3秒)级别:运营商专线百微秒(10-6秒)级别:交易系统、行情系统、交易网关等微秒(10-6秒)级别:FPGA系统、服务器网卡百纳秒(10-9秒)级别:低延时网络设备纳秒(10-9秒)级别:光纤、一层交换机早期“端到端低延时研究”主要集中在交易系统的改进上,这是因为端到端交易流程整体延时的瓶颈集中在
12、交易系统上.交易系统的每一次大的改进和创新,都有可能为整体交易速度带来几倍甚至几十倍的提升,在证券交易系统的延迟方面,2006-2008年间,性能很好的交易系统延迟都达到了100皂秒.2009-2011年间,较快交易系统的延迟达到了100微秒左右,目前,交易系统的延时已经来到了做杪级,行情系统的延时已经来到了百纳秒级别,底层的传输网络、服务网卡和光纤传输在端到端流程的整体延时占比不断提高,第五章调优技术在选用合适的硬件之后,仅仅完成了初始阶段.怎么达到最佳性能,在目前的阶段还是没有尽头的。而在低延迟领域,如高频系统或实时媒体系统,大多要求服务器在10微秒以下提供一致的系统响应,这就需要硬件、操
13、作系统、应用、网络等领域进行调优以达到这一要求,本章节将主要针对硬件及操作系统层面的调优技术做一些探索和分享.硬件配置要实现微秒级的低延迟,首先需要了解被测系统的硬件配置.影响时延的重要因素包括核心数、每个核心的执行线程数、插槽数、NUMA节点数、CPU和内存在NUMA拓扑中的排列以及NUMA节点中的缓存拓扑。UnUX系统可以时延Iscpu命令,对硬件拓扑情况进行直看.从上图,我们知道这是一台双路CPU的服务,总共安装了两颗CPU,Numa节点数为2等信息.请注意,如果应用系统所需线程数较少,单路CPU的服务器也是不错选择,它会减少一些槽位间通信的短杂性。为了获得最佳的响应时间,需要对系统拓扑
14、进行优化,其中内存需要均匀的在NUMA节点上进行安装,井尽量最大化使用本地内存.关域应用需要运行在隔离CPU上,并且与Numa节点、PCiE网卡在系统拓扑上保持一致,以获得最优的数据路径.NUea和内存以我们常用的双路服务器为例,NUma架构大致如下.我们可以通过numactl来查看numa节点信息CPU远程访问Numa节点时,距离毕竟长,性能会受到极大影响,低时延应用程序需要避免跨NUma的远程内存访问,从下面的命令,我也可以看出远程访问Numa的性能远低于本地访问.NUMA内存平衡1.inux支持基于自动NUMA内存平衡和手动迁移内存,但在NUMA节点之间迁移内存页面将导致内存的T1.B被
15、清除和页面故獐,从而影响程序性能.可以使用以下命令禁用自动丽MA内存平衡:echo0procsyskernc1/numabalancing还可以禁用用户空间的nmad服务,关闭NUMA内存平衡.绑定核心中断是CPUeore收到的,可以让关犍线程绑定在某个Core上,然后避免各种中断通向这个COre发送中断,绑定程序在一个核上运行,有两种方法:taskset和sched_setaffinity,其中Sched.Setaffinity是程序代码对绑核的实现,我们主要介绍通过taskset进行绑核.CPUAffinityCPU亲和性,是指在SMP结构下,能够将一个或多个进程绑定到一个或多个处理器上运
16、行.杳看进程分配的CPUCore,可以使用tasksel命令杳看:taskset-c-p该CPIJ亲和力列表表明该进程可能会被安排在3-5中任意一个CPUCore.更具体地杳看某迸程当前正运行在哪个CPilCore上,我们可以使用top命令杳看:top-ptaskset使用Uskset命令将进程绑定到指定核,比如将31693绑定到1.2.3核上taskset-cp1,2,331693该例会将PID为31693的进程绑定到1-3核上运行。屏蔽硬中断(硬盘、网卡)中断源(IRQ)向CPUCore发送中断,CPUCore调用中断处理程序对中断进程处理。我们可以通过改写/proc/irq/*/SmP.
17、affinity文件,避免中断源(IRQ)向某些CPUCore发送中断。该方法对硬盘、网卡等设备引起的硬中断有效。查看设备中断数据通过查procinterrupts文件可查看设备中断数据:-第一列是Ig号-第二列开始表示某CPU内核被多少次中断.SMP-AFFINITYSMP即SymmetriCmUItiPrOCeSSing(对称多处理SS,通过多个处理器处理程序的方式.smpaffinity文件处理一个IRQ的中断亲和性。我们可用procirq1RQDUMBER)/smp_affinitylist来制定所需要绑定的核,这里的IRQNIMBER就是前面中断输出中的IRQ号,比如我们想将eusl
18、60的所有中断绑定到CPUl和CPU2.echol-2/pocirq/57/smp_affinity1istecho1-2procirq58smpaffinitylistecho1-2procirq59smpaffinitylistecho1-2/proc/irq/60/smp_affinity_list内核参数WatchdogWatchdog在进行监控的过程中会触发中断,会引起抖动,可通过以下命令进行关闭:echoOprocsyskernelwatchdogSWHPPineSS交换倾向性,描述操作系统在内存不足时将数据移动到交换分区的偏好程度,swappiness的值可以在Q到100之间,为
19、0表示不使用交换分区,针对低时延系统定议设置为较低值,或直接关闭。echo10procsysvmswappinessdirtyJatioDirtyJatio是控制脏页的比例,如果脏页超过一定比例,所有的写操作都会阳富,知道一部分的脏页被写入磁盘。echo10procsysvmdirty,ratiodirty_backRroundJatioDirtybackRfoundratio是一个限制值,当脏页数超过该值时,开始将这些脏页写入磁盘。echo3/proc/sys/vm/dirty_background_ratioSChedlatenCynS指定在发生任务切换之前,任务可以在一个CPU核心上运行
20、的最长时间(以纳秒为单位)echo24000000/proc/sys/kernel/sched_latency_nsSehedJilin_granularity_ns指定了奴小的时间粒度(以纳秒为单位)不会被抢占的时间,在这个时间粒度内,一个任务可以在一个CPU核心上运行。echo10000000/proc/sys/kernel/sched_min_granularity_nsSChedjtruntimes用于控制系统中实时任务的运行时间片(以微秒为单位),默认他为950000,总共为100OoO0,设St为T则禁止这个限制。echo-1/proc/sys/kernel/sched_rt_ru
21、ntime_usstat_interval以秒为单位的更新虚拟内存统计信息的间隔.默认值是1秒,这导致每秒进行信息统计.将其更改为1000秒可以避免这些中断,至少延迟了16分钟。调频策略SCalingJoVemor调配策略的作用是控制CPU如何管理和调整其运行频率以平衡性能和能耗,同以下命令,选择performance”使CPU保持在最高频率,以提供最大的计算性能。echoperformancesysdevicesSyStemcpucpu57/CPUfreq/scaling_governor操作系统配置操作系统侧调优类别包括但不限J1)硬件资源调优;2)依架构数据采样MDS3)SMTI中断:4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高频 交易 证券公司 交易系统 性能 优化
链接地址:https://www.31ppt.com/p-7215119.html