大家知道嗎?聞名于世的納斯達(dá)克使用的是Linux操作系統(tǒng)。大多數(shù)人認(rèn)為納斯達(dá)克僅僅是美國的一個(gè)證券交易所,但實(shí)際上納斯達(dá)克OMX集團(tuán)運(yùn)營著世界各地的交易。Linux在金融行業(yè)中的使用越來越廣泛,值得一提的是,英國倫敦證券交易所也正在向Linux轉(zhuǎn)移,前不久才完成了測試。在美國,納斯達(dá)克OMX集團(tuán)控制著納斯達(dá)克股票市場,納斯達(dá)克期權(quán)市場和今年10月8日新啟動(dòng)的納斯達(dá)克OMX PSX市場。在新澤西舉辦的Linux基金會(huì)高端用戶峰會(huì)上,納斯達(dá)克OMX集團(tuán)副總裁Bob Evans就關(guān)鍵業(yè)務(wù)系統(tǒng)使用Linux的情況做了一個(gè)簡要的介紹。
納斯達(dá)克OMX的交易運(yùn)行在數(shù)千臺(tái)Linux服務(wù)器上,這些服務(wù)器要處理實(shí)時(shí)事務(wù),監(jiān)控和進(jìn)展情況,這種環(huán)境最大的挑戰(zhàn)就是性能,實(shí)際貨幣的匯率取決于交易是否能跟得上訂單流,延遲和吞吐量變得非常關(guān)鍵,訂單必須在有限的時(shí)間內(nèi)響應(yīng)(和執(zhí)行),不用說,可靠性也非常重要,停機(jī)幾乎是不被允許的。
為了全面滿足這些要求,納斯達(dá)克OMX集團(tuán)部署了許多大型計(jì)算集群,它們每天可以處理數(shù)億筆訂單,在延遲時(shí)間為25毫秒的情況下,每秒最快可以處理一百萬筆訂單。
Bob說近年來Linux引入了許多有用的技術(shù),如網(wǎng)絡(luò)驅(qū)動(dòng)中的NAPI中斷緩解技術(shù),至少給其它工作負(fù)載釋放了近1/3的CPU時(shí)間,epoll系統(tǒng)調(diào)用減少了大部分單次調(diào)用開銷,在一次基準(zhǔn)測試中發(fā)現(xiàn),延遲時(shí)間至少減少了33毫秒,在用戶空間通過VDSO換頁處理clock_gettime()至少減少了60毫微秒。Bob對Linux的頁面緩存工作效率也很滿意,它消除了異步I/O的需要,大大簡化了代碼。
另一方面,Bob表示Linux也還有需要改進(jìn)的地方,例如I/O信號(hào),它們讓編程變得很復(fù)雜,如果事務(wù)繁忙,信號(hào)隊(duì)列可能會(huì)溢出,用戶空間的libaio異步I/O(AIO)是基于線程實(shí)現(xiàn)的,擴(kuò)展性不好,和epoll的集成度也不好。相反,基于內(nèi)核的異步I/O缺乏合適的套接字支持,他還提到了recvmsg()系統(tǒng)調(diào)用,每個(gè)入站數(shù)據(jù)包都需要一個(gè)進(jìn)入內(nèi)核的調(diào)用。
新的recvmmsg()系統(tǒng)調(diào)用在單次調(diào)用中可以接收多個(gè)數(shù)據(jù)包,但它現(xiàn)在是圍繞內(nèi)部recvmsg()實(shí)現(xiàn)的一個(gè)封裝,還不能跨全部操作持有套接字鎖,但Bob認(rèn)為recvmmsg()是向Linux添加新API的一個(gè)很好示例,他也喜歡基于內(nèi)核的AIO和eventfd()結(jié)合使用,使得將基于文件的AIO整合進(jìn)應(yīng)用程序正常的事件處理循環(huán)成為可能,syslets也仍然有潛力可挖,Bob認(rèn)為它可以作為向用戶空間發(fā)送通知的快捷方法,但現(xiàn)在尚不清楚syslets是否會(huì)擴(kuò)大規(guī)模。
納斯達(dá)克OMX現(xiàn)在最想在Linux中看到的是基于套接字的AIO,這樣就可以用更少的系統(tǒng)調(diào)用替換epoll/recvmsg/sendmsg隊(duì)列,更妙的是,內(nèi)核可以同時(shí)為多個(gè)事件提供通知,最好是這個(gè)功能的接口完全基于套接字,Bob描繪了一個(gè)類似于epoll的內(nèi)核項(xiàng)目,它可以處理內(nèi)核中的網(wǎng)絡(luò)通信,應(yīng)用程序可以向隊(duì)列異步發(fā)送和接收請求,當(dāng)它們執(zhí)行完畢時(shí)接收通知,他希望看到多個(gè)套接字連接到單個(gè)對象,和一個(gè)適合傳遞給poll()的文件描述符,有了這樣的技術(shù),通過內(nèi)核的網(wǎng)絡(luò)流量就可以更大,并且延遲也會(huì)更小。
總之,納斯達(dá)克OMX對Linux的表現(xiàn)還是很滿意的,它們也喜歡嘗鮮,前不久交易所的服務(wù)器就升級(jí)到了2.6.35.3內(nèi)核,新出現(xiàn)的API對運(yùn)營的幫助也很大,Bob說很少有系統(tǒng)因性能原因愿意引入新的API,這和Linus Torvalds的觀點(diǎn)卻不一樣,Linus Torvalds認(rèn)為沒有人會(huì)使用Linux特殊的API,這一次也許是Linus Torvalds錯(cuò)了,不是沒有人使用,只是它們藏得很深,一般人不知道。