高頻交易下證券公司交易系統的效能最佳化

danny_2018發表於2023-10-11

【摘要】高頻交易一直在追求速度的跑道上競賽,本文闡明瞭高頻交易體系內涉及的各環節以及度量方法,同時對基礎軟硬體包括硬體、作業系統、網路卡以及相應調優工具進行了介紹,給出了切實可行的試驗方法供讀者借鑑。同時作者提出交易鏈路的穩定性以及券商提供的業務資源更是服務專業客戶核心競爭力值得各位深思。

【作者】周尤珠,就職於海通證券股份有限公司。從業近20年,一直負責券商經紀業務側交易系統的管理及研發工作,目前負責海通新一代核心交易系統的建設。在交易技術前沿等期刊上發表核心交易系統相關論文數篇,獲得專利1項。

第一章 概述

交易系統效能最佳化是當前國內金融市場中一個備受關注的話題。近年來,隨著T+0交易品種陸續上市,以及北交所、廣期所的成立掛牌,金融交易市場機會不斷湧現。在這個競爭激烈的環境下,如何在最短的時間內獲取到最新的股票、期權、期貨及相關的行情資訊,並且能夠以最快的速度向交易所提交訂單請求,是市場競爭的重要方向。

對於一次委託來說,訂單全鏈路耗時即投資者的交易訂單從訂單形成系統發至經紀公司訂單處理系統經過其處理確認後發往交易所及交易所確認報單後按原路徑返回至訂單形成系統的往返整體鏈路的耗時。而對於高頻交易來說,投資者除了要求訂單全鏈路耗時不斷提速外,同時也會對分筆行情的獲取有極高的要求,因此整個高頻交易體系內的調優主要涵蓋網路鏈路、訂單形成系統、訂單處理系統、交易所報盤閘道器、交易所內部系統、行情(接收)、分析行情(策略部分)等各環節。分析各環節的耗時佔比及調優價效比權衡得出最適合當下的方案。

各家應用場景各有不同,本文針對基礎軟硬體和網路簡單介紹下通用方案供各位參考:

第一,找尋影響因子,應當建立穩定、高速的全鏈路資料度量通道,保證實時、準確地獲取網路快慢、系統優劣的度量資料。全鏈路度量是對高頻交易系統整個交易流程進行全方位的度量和評估。透過全鏈路度量,可以精確地評估每個環節的效率和時延,找出影響系統效能的瓶頸,並針對性地進行最佳化和改進。

第二,單元優選更換,使用高效能的硬體裝置,能夠在底層搭好框架,保證提供高算力,完成訂單匹配,減少交易時延,提高交易執行的效率和成功率。

最終,系統調優觀察,對於已獲得的行情和交易資料,在高效能硬體上透過系統和軟體最佳化,使高頻交易系統達到極限效能,是目前證券公司的整體發力方向。在未來,也將成為證券期貨公司提升核心競爭力、追求長期穩定盈利的重要手段之一。

第二章 常見問題

整體效能最佳化包含但不限於下述步驟:

1)影響因子評估;

2)瓶頸觀測及分析;

3)單元調優;

4)系統級最佳化;

5)持續監控及改進。

通常存在以下常見問題:

找尋影響因子

問題定位難:交易環境複雜,交易鏈條長,無法精準定位系統效能問題;

度量精度要求高:極速行情、交易軟硬體頻繁更新最佳化,常規測試方法無法達到精度要求,對比測試大費周章;

偶發問題難覺察:日常測試無法發現交易系統偶發問題(抖動、異常響應速度)。

單元優選更換

高效能伺服器選擇:高頻交易系統需要處理大量的市場行情資料、歷史資料和實時資料,並進行復雜的計算和分析。如何選擇合適的高效能CPU和記憶體的伺服器是至關重要的。高頻率的多核處理器和大容量的記憶體可以快速處理資料,加速演算法模型的計算和決策生成。

低延時網路卡選擇:高頻交易系統需要及時獲取和傳輸行情資料,而且通常需要與多個交易所和資料來源連線。因此,選擇具有高頻寬和低延遲的網路卡是必要的。

高穩定低延時交換機選擇:高頻交易系統通常需要持續執行,並承受大規模的資料處理和交易流量。因此,選擇具有高可靠性和低延時的交換機可以提高系統的穩定性和可靠性。

系統調優觀察

調優方案定奪:除了硬體層面最佳化,系統層面的最佳化包括且不限制於程式呼叫、函式處理等,在開銷及時延消耗比較大的函式棧中,透過進行定製化工具開發,實施埋點等操作,從而進行程式碼級效能瓶頸分析,並助力給出針對性的調優方案

持續觀察分析:在調優手段覆蓋之後,基於目前券商大多數系統環境,即使在某一次調優後達到了不錯的資料,但是由於負載均衡、核心汙染等等不可避的問題存在,單次調優無法達到應有效果,所以持續分析是不可缺少的一環。

第三章 最佳化思路

找尋影響因子——度量

極速高頻交易環境中,需要採用最快的網路裝置進行組網,並且要對全鏈路節點的處理時延、流量、抖動等效能指標進行高精準統計與展示,幫助運維人員對應用系統效能異常和故障做出精準快速定位。

行情鏈路包括:行情閘道器,行情解碼,行情轉發,客戶端,網路裝置等;

交易鏈路包括:客戶策略,交易系統,報盤閘道器,網路裝置、防火牆等。

現有業務分析及監控平臺主要採用系統內建分析模組,但只能分析單節點效能,不能分析全鏈路端到端效能;且軟體作業系統打點,時間精度抖動較大,準確性不足。

上圖為一種全鏈路的高精度度量方案,此方案透過將網路流量旁路匯出至高精準時間戳裝置,在資料包尾部新增上可識別的時間戳標識,並實時進行流量解析計算,計算精度為皮秒級別,可以支援全鏈路時延精準度量。

單元優選更換——匹配

交易鏈的不同參與者對於裝置的要求會有所不同,從底層鏈路、網路的選擇上,都需要選擇合適匹配的參與單元,而作為關鍵點的交易系統和宿主機,在滿足高效能低延時的同時,還需考慮載體、溫度、功耗等一一來進行選型,並逐步建立測評選型基準。交易系統不光需要追求極低的延時,更重要的是保持整體穩定,穩定即可預期,可掌控,如果相對波動較大,就無法預測報單策略的有效性。

系統調優觀察——定性

機器從出廠之後,就會有相關引數,而透過PCIE和速率、IO和負載、位元組和網速等等,會計算出一個理想數值,但現實情況中往往達不到理想值。此時則需在整體系統中,對當前CPU、IO、Memory等進行密集性、記憶體負載、IO基準等測試,如效能監控下,可採用PCP測試;系統追蹤中,運用Pcef;針對於系統呼叫,用Toolkit進行跟蹤等等。如此以來,將將硬體、系統、應用等進行一連串調優,再根據每次調優後的資料計算出基線和飽和率,審視工作流。

在審視工作流完成基數標定之後,OS層承上啟下,單點定性後往往在某次調優後牽一髮而動全身。基於作業系統層面實現交易系統最佳化往往非常有效,比修改應用程式、改善硬體環境等問題解決更徹底、整體TCO更優。這個時候,針對於OS層面,往往需要確認四件事情。

1.命令集:在調優OS層面時,首先需要確認使用的命令集。不同的硬體架構和處理器可能支援不同的命令集,例如x86、x86-64、ARM等。瞭解命令集對於確定可用的最佳化選項以及應用程式的效能影響非常重要。

2. BIOS設定:BIOS(基本輸入/輸出系統)是在計算機啟動過程中載入的韌體,它負責初始化硬體並傳遞控制權給作業系統。在調優OS層面時,需要確認BIOS設定是否合理。例如,檢查BIOS中的電源管理選項、記憶體配置、硬體虛擬化支援等設定,以確保它們與應用程式的效能需求相匹配。

3.OS本身:作業系統本身也可能對系統效能產生影響。確保作業系統已經進行了必要的最佳化和調整,例如啟用了適當的核心引數、關閉了不必要的服務、設定了正確的檔案系統選項等。此外,還可以考慮更新作業系統補丁和驅動程式,以修復可能存在的效能問題。

4.負載容量規劃:在調優OS層面時,需要對負載容量進行規劃和評估。這包括確定系統的預期負載和效能需求,以便為其分配足夠的資源。可以考慮調整CPU排程策略、記憶體管理設定、檔案系統快取大小等,以最佳化系統的效能和響應能力。

而完成以上倆點後。金融行業的系統最佳不應當為系統在某一刻可以達到的峰值,而是針對於當前應用最匹配的一系列方案才可以稱為最佳。比如在證券客戶交易系統方面,縮短延時(加快響應速度)比提高吞吐量(完成更多操作)更重要。而這二者往往互相制約。同時針對於不同系統不同應用,也需要透過對業務的分析,進行某一點的最佳調優,再由點及面,才可以達到系統的最佳調優。

第四章 效能天梯

高頻交易端到端鏈路從架構上可分為應用交付層、支撐環境層、作業系統層、硬體裝置層和基礎設施層。應用交付層主要是交易應用程式和演算法,支撐環境層包括了訊息中介軟體、程式加速軟體等環境軟體,基礎設施層主要由機房基礎設施組成。端到端整體時延可以理解為證券公司從接收交易所行情入口到報盤至交易所間各個節點的延時之和,其中包括了行情繫統、交易系統、網路裝置、伺服器網路卡、光纖傳輸等等環節,各環節目前的時延量級如下:

毫秒(10-3秒)級別:運營商專線

百微秒(10-6秒)級別:交易系統、行情繫統、交易閘道器等

微秒(10-6秒)級別: FPGA系統、伺服器網路卡

百納秒(10-9秒)級別:低延時網路裝置

納秒(10-9秒)級別:光纖、一層交換機

早期“端到端低延時研究”主要集中在交易系統的改進上,這是因為端到端交易流程整體延時的瓶頸集中在交易系統上。交易系統的每一次大的改進和創新,都有可能為整體交易速度帶來幾倍甚至幾十倍的提升。在證券交易系統的延遲方面,2006-2008 年間,效能很好的交易系統延遲都達到了100毫秒。2009-2011 年間,較快交易系統的延遲達到了100 微秒左右。目前,交易系統的延時已經來到了微秒級,行情繫統的延時已經來到了百納秒級別,底層的傳輸網路、伺服器網路卡和光纖傳輸在端到端流程的整體延時佔比不斷提高。

第五章 調優技術

在選用合適的硬體之後,僅僅完成了初始階段。怎麼達到最佳效能,在目前的階段還是沒有盡頭的。而在低延遲領域,如高頻系統或實時媒體系統,大多要求伺服器在10微秒以下提供一致的系統響應。這就需要硬體、作業系統、應用、網路等領域進行調優以達到這一要求。本章節將主要針對硬體及作業系統層面的調優技術做一些探索和分享。

硬體配置

要實現微秒級的低延遲,首先需要了解被測系統的硬體配置。影響時延的重要因素包括核心數、每個核心的執行執行緒數、插槽數、NUMA節點數、CPU和記憶體在NUMA拓撲中的排列,以及NUMA節點中的快取拓撲。Linux系統可以時延lscpu命令,對硬體拓撲情況進行檢視。

來自 “ twt企業IT社群 ”, 原文作者:周尤珠;原文連結:https://mp.weixin.qq.com/s/08X40lS9J-dTy9kExQbzzg,如有侵權,請聯絡管理員刪除。

相關文章