文|楊 猛
概述:近年來,隨著監管體制改革、市場結構演化以及技術的發展,全球金融交易市場逐步形成了新的特征,其中之一便是,交易速度已經成為決定市場參與者能否取得成功的一個基本因素。對于市場參與者來說,無論他是一個交易員、一個經紀人或者一個普通投資者,若想在廣泛使用復雜算法和高頻交易(HFT)的新市場環境下勝出,就必須比他們的對手更快。隨著對時間速度要求的日益提高,目前競爭對手間的時間差已經需要用微秒來衡量,將來甚至必須以納秒來衡量。
金融信息服務平臺的數據處理和交換速度直接影響到整個交易體系的效率和速度。最大限度的降低延遲,甚至消除延遲,是我們設計金融交易系統的目標。
延遲來自于系統的各個不同部件,不同環節。包括硬件層次的芯片處理器、存儲器、IO處理,包括網絡層次的網卡、網線、光纜等的延遲,也包括軟件應用系統中各個處理階段的邏輯處理延遲。以上各種延遲構成了系統總體的延遲。
近年來,一系列技術改革開始致力于建設極低延遲系統,以達到當前金融市場的微秒級延遲性能要求。
本文,將總結當前持續推動低延遲技術發展的主要參與者對該領域的貢獻,并尋求找出一個最尖端的組合技術以期獲得一個新的突破,并著重討論實時行情報價系統中適用的不同策略組合。
金融市場的不斷細分、金融衍生品交易的不斷發展、算法交易及高頻交易的產生,直接促進了市場數據呈現幾何級爆炸性增長。特別是當市場開盤收盤的時候出現的數據高峰期。例如,美國主要市場的歷史最高值發生在2011年10月7日,數據量達到665萬條消息/秒。圖1為2013年2月28日美國主要市場數據量。
而且市場數據量還會不斷增長下去,因素主要有:亞便士定價規則、新出現的交易所及品種、監管壓力使交易公開化、OTC衍生品的增多。最極端的情況是,在最小的時間間隔內出現極大的數據高峰,我們稱為微爆現象。在微爆現象出現的時候,由計算和網絡因素帶來的延遲使交易系統不可持續。通信鏈上的各個點都有可能成為處理瓶頸。由于高頻交易高度依賴連續的市場數據,降低系統的這種抖動至關重要。所以,構造金融交易系統的IT架構時首先要滿足低延時的挑戰,同時要保證系統對不同消息處理的吞吐量要求。
近年來,在低延遲需求驅動下,行業內正在采取不同的技術以降低延遲,幾年前,我們做一筆交易要耗費幾百毫秒來完成,而現在已經可以降低到100微秒以內。為獲得低延遲,系統需要優化架構涉及到的軟件、硬件、網絡等各個環節?!皼]有最低,只有更低”。競爭者們采取不同的方案、技術來完成這個目標。這些技術包括:

提高計算機微處理器主頻,采用多核技術和并行計算技術使系統處理速度獲得更大的提高。目前8核的處理器已經廣泛商用,C++JAVA等語言的編譯器也能自動按照系統的要求生成可并行的應用程序。Intel的80核處理器技術也將在不遠的將來投入商用。
同時服務器技術已經可以支持4顆CPU以上的插槽,按每顆CPU8核的配置,相當于一臺服務器上可以有32個核。甚至有服務器開始支持256插槽,相當于2048核。
以上技術的發展,足以使一臺2U服務器來做一個完全的交易服務器,“盒子里的交易系統”成為現實。
多核多處理器服務器上的應用程序可以通過內存共享來進行通信??赏ㄟ^LDMA(本地直接內存訪問技術)來實現進程間通信IPC。因為進程間交換數據甚至不需要拷貝,而是直接讀取共享內存,這大大降低了系統延遲。
數據中心間的數據交互涉及數據的容錯、負載均衡等技術。網絡技術的發展為此提供了可靠的低延時傳輸方案,甚至在網絡壓力較大的情況下,都能保證數據的低延時傳輸。10G以太網技術的出現和Infiniband技術的采用,使網絡獲取極大的通信性能。兩種技術都提供RDMA技術的支持。在不需要處理器和操作系統支持的情況下,可以將內存的數據從一臺服務器傳輸到另一臺服務器。RDMA是一種繞開內核的技術,提供了服務器之間的高效、低延遲、低抖動傳輸方案。
多核多處理器技術、共享內存及RDMA技術將系統的延遲控制在數十微秒之內。那么最大可能的減少數據中轉,包括市場數據獲取與服務之間、交易系統和訂單匹配引擎之間的延遲變得尤為重要。托管服務技術可用來減少延遲。將這些系統托管至運營商主干網上,盡可能減少延遲。即使在同一個中心,也要盡可能的在物理上將這些系統放置在一起,以減少不必要的傳播延遲。
對于不能將應用放置在一起或者托管的情況,將不同數據中心的數據通過光纖技術連接,可將傳輸延遲降低到100微秒以內。
消息中間件是不同服務器、網絡、應用系統之間的膠水。將它們粘合在一起形成一個整體的系統,使相互之間有標準的通信接口。消息函數的延遲基本可以忽略不計。消息中間件的延遲主要來自服務器和網絡。商用消息中間件產品一般基于簡單TCP協議和半可靠組播協議。并結合使用共享內存及RDMA技術。如Tibco、29west、 Thomson Reuters Market Data System (RMDS)
優化軟件架構,減少中轉流程。采用并行代碼設計,提高系統的并行處理能力。采用二進制數據處理,采用通用傳輸協議,如FIX等。采用高性能的語言如C++、實時JAVA等優化軟件的處理速度。
實時行情服務主要功能是將不同交易所的數據以最快的速度提供給用戶,保證用戶拿到最快的第一手數據,以輔助交易決策。實時行情服務應在三個主要環節減少延遲。包括:獲取交易所數據階段、系統內部處理階段、數據發布階段。其中獲取數據和發布數據階段都可以通過服務器托管機制、專線服務機制來降低傳輸延遲,而系統內部數據處理階段則可采用不同的復合策略。
充分利用計算機多核架構,以多進程的方式充分利用多核處理器,并基于共享內存數據進行并行處理。以4顆CPU,每顆CPU8個內核服務器為例,設定內存為32G,如圖2所示。
充分利用多核處理器的并行計算能力,將多市場數據在系統內的中轉控制在一臺服務器上,以減少中轉延遲。以多進程的方式分別進行數據接入、處理、統計計算、發布等。建立共享內存區為各市場數據建立統一內存存儲,發布進程通過共享內存區獲取各市場相關數據。數據經由系統增加的延遲只決定于處理器的處理速度和內存讀寫速度,可以降到極低。并且,通過單一服務器完成多路數據應用,可以節省硬件資源,以上述配置服務器為例,32個核心處理器至少可以同時完成12路以上的數據接入、處理及發布。
Infiniband發展的初衷是把服務器中的總線給網絡化。所以Infiniband除了具有很強的網絡性能以外還直接繼承了總線的高帶寬和低時延。大家熟知的在總線技術中采用的DMA(Direct Memory Access)技術在Infiniband中以RDMA(Remote Direct Memory Access)的形式得到了繼承。這也使Infiniband在與CPU、內存及存儲設備的交流方面天然地優于萬兆以太網以及光纖網絡。可以想象在用Infiniband構筑的服務器和存儲器網絡中任意一個服務器上的CPU可以輕松地通過RDMA去高速搬動其他服務器中的內存或存儲器中的數據塊,而這是光纖網絡和萬兆以太網所不可能做到的。
通過消息總線將網絡間的不同系統進行連接,保證網絡內部數據的低延時傳輸。如圖3所示。以標準化的數據形式將不同的數據接入系統,通過消息總線實現發布與訂閱,并實現數據服務的質量保證。

圖2 市場數據多核處理架構

圖3 消息總線設計
低延遲是金融信息服務領域的一個重要研究課題。涵蓋系統內和系統間信息流轉的各個環節。本文討論了通信領域、處理器領域、軟件領域等業內廣泛采用和發展的低延遲技術。并根據金融信息服務的實際需求提出了可行的應用策略選擇。