别被迷惑了,我是恒生高性能被裁的
2022年7月8日,QECon全球软件质量&效能大会在深圳召开。本次大会聚焦研发效能、数字驱动、质量工程、数智化测试等领域,聚集了20多位企业一线技术委员会专家共同策划和推动国内软件质量效能方向的技术交流、发展。
以下为演讲实录的裁剪转发:
...分享内容主要分纳秒级交易技术的背景、影响要素、瓶颈定位、性能评估、未来挑战和展望。
“机构交易对低延迟的要求是永无止境的”
在金融证券领域,机构交易的占比是逐年提升的。//散户长期存活不容易呀影响延迟的关键因素有哪些?
对一个已经比较合理设计的,并且算法上也已经过优化的去DB(数据库)的内存系统来说,影响延迟的因素有哪些呢?我们这里总结了一下,从用户有感的角度出发排序:第一个是网络通信。网络通信一般来说是整个全链路交易延迟当中的大头,可能占了百分之五六十以上的延迟。系统瓶颈出现在哪里?
目前系统已经达到了一定的瓶颈,如何根据当前系统的表现,根据观察一些现象,来判断瓶颈大概出现在哪里?
一般来说我们可以从这几方面来判断:一个就是还是从网络带宽来判断,因为网络肯定是个最大的瓶颈。再一个,对于一个可能实现不是很优的系统来说,可能还会有个磁盘I/O。之所以前面没有把磁盘I/O列上去,是因为在我们做微秒级应用,一般来说不太会去考虑磁盘I/O。因为如果你有了磁盘I/O, 你这个性能估计就会不达标。所以我前面没有把它放上去,如果有了大量的磁盘I/O,那整个系统肯定是不能够达标的。再一个是我们来看当前的 CPU 的利用率是怎样的,根据 CPU 利用率大概的来做一下判断。如何对系统做出合理评估?
然后我把它转换成先把B做转置,然后A跟B 的转置做这样一个另外一种模式的乘,这样子它就很好地利用了局部性原理。
软硬结合,突破性能天花板
从软件层面而言,性能到了极致之后,内存访问的瓶颈最终是不可消除的,除非材料科学的突破,否则内存访问延迟是不可能降低的。
另外,在后摩尔时代,实际上CPU主频的发展其实已经跟不上我们业务对延迟需求的发展了。再是,其实这样下去,大家各厂商的性能趋势是趋于雷同的。
所以我们可以发现,为了追求极致的低延迟,都有一个单体式应用的趋势。这实际上是在反分布式这个趋势的。那这里面我们为什么会有这个单体式应用,就是因为网络通信所造成的——每增加一个节点,总是要增加几个微秒的延迟,这对于低延迟来说是不可承受的。
但是如果利用 FPGA、利用硬件,实际上我中间每加入一个节点,它的延迟大概也就在160纳秒左右,而160 纳秒其实已经跟本地内存访问相差无几了。那么有了这个基础之后,我就完全可以软件和硬件结合。
我们有一个FPGA的开发平台。在FPGA平台上面,本身每个主机上面可以做一个软硬分离,硬件部分在硬件做,然后复杂逻辑穿透PCIE到达软件部分,再通过FPGA网口和另外一个FPGA进行交互。