歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

探秘:Linux在納斯達克的應用

大多數人認為納斯達克僅僅是美國的一個 證券交易所,但實際上納斯達克OMX集團運營著世界各地的交易。Linux在金融行業中的使用越來越廣泛,值得一提的是,英國倫敦證券交易所也正在向 Linux轉移,前不久才完成了測試。

  在美國,納斯達克OMX集團控制著納斯達克股票市場,納斯達克期權市場和今年10月8日新啟動的納斯達克OMX PSX市場。在新澤西舉辦的Linux基金會高端用戶峰會上,納斯達克OMX集團副總裁Bob Evans就關鍵業務系統使用Linux的情況做了一個簡要的介紹。

探秘:Linux在納斯達克的應用 

  納斯達克證券交易市場

  納斯達克OMX的交易運行在數千台Linux服務器上,這些服務器要處理實時事務,監控和進展情況,這種環境最大的挑戰就是性能,實際貨幣的匯率取 決於交易是否能跟得上訂單流,延遲和吞吐量變得非常關鍵,訂單必須在有限的時間內響應(和執行),不用說,可靠性也非常重要,停機幾乎是不被允許的。

  為了全面滿足這些要求,納斯達克OMX集團部署了許多大型計算集群,它們每天可以處理數億筆訂單,在延遲時間為25毫秒的情況下,每秒最快可以處理一百萬筆訂單。

  Bob說近年來Linux引入了許多有用的技術,如網絡驅動中的NAPI中斷緩解技術,至少給其它工作負載釋放了近1/3的CPU時間,epoll 系統調用減少了大部分單次調用開銷,在一次基准測試中發現,延遲時間至少減少了33毫秒,在用戶空間通過VDSO換頁處理clock_gettime() 至少減少了60毫微秒。Bob對Linux的頁面緩存工作效率也很滿意,它消除了異步I/O的需要,大大簡化了代碼。

  另一方面,Bob表示Linux也還有需要改進的地方,例如I/O信號,它們讓編程變得很復雜,如果事務繁忙,信號隊列可能會溢出,用戶空間的 libaio異步I/O(AIO)是基於線程實現的,擴展性不好,和epoll的集成度也不好。相反,基於內核的異步I/O缺乏合適的套接字支持,他還提 到了recvmsg()系統調用,每個入站數據包都需要一個進入內核的調用。

  新的recvmmsg()系統調用在單次調用中可以接收多個數據包,但它現在是圍繞內部recvmsg()實現的一個封裝,還不能跨全部操作持有套 接字鎖,但Bob認為recvmmsg()是向Linux添加新API的一個很好示例,他也喜歡基於內核的AIO和eventfd()結合使用,使得將基 於文件的AIO整合進應用程序正常的事件處理循環成為可能,syslets也仍然有潛力可挖,Bob認為它可以作為向用戶空間發送通知的快捷方法,但現在 尚不清楚syslets是否會擴大規模。

  納斯達克OMX現在最想在Linux中看到的是基於套接字的AIO,這樣就可以用更少的系統調用替換epoll/recvmsg/sendmsg隊 列,更妙的是,內核可以同時為多個事件提供通知,最好是這個功能的接口完全基於套接字,Bob描繪了一個類似於epoll的內核項目,它可以處理內核中的 網絡通信,應用程序可以向隊列異步發送和接收請求,當它們執行完畢時接收通知,他希望看到多個套接字連接到單個對象,和一個適合傳遞給poll()的文件 描述符,有了這樣的技術,通過內核的網絡流量就可以更大,並且延遲也會更小。

  總之,納斯達克OMX對Linux的表現還是很滿意的,它們也喜歡嘗鮮,前不久交易所的服務器就升級到了2.6.35.3內核,新出現的API對運 營的幫助也很大,Bob說很少有系統因性能原因願意引入新的API,這和Linus Torvalds的觀點卻不一樣,Linus Torvalds認為沒有人會使用Linux特殊的API,這一次也許是Linus Torvalds錯了,不是沒有人使用,只是它們藏得很深,一般人不知道。

  原文出處:http://lwn.net/Articles/411064/

  原文名:Linux at NASDAQ OMX

  作者:Jonathan Corbet

Copyright © Linux教程網 All Rights Reserved