探秘:Linux在纳斯达克的应用

原创
系统 Linux
大多数人认为纳斯达克仅仅是美国的一个证券交易所,但实际上纳斯达克OMX集团运营着世界各地的交易,你知道他们的业务在什么系统上运行吗?Linux要骄傲地大声说“是我”。在新泽西举办的Linux基金会高端用户峰会上,纳斯达克OMX集团副总裁Bob Evans就关键业务系统使用Linux的情况做了一个简要的介绍。

【51CTO快译】之前我们在51CTO特别专题潜伏在你身边的Linux用户中向大家介绍了在金融行业中的Linux使用情况,其中大家会发现闻名于世的纳斯达克使用的就是Linux操作系统。大多数人认为纳斯达克仅仅是美国的一个证券交易所,但实际上纳斯达克OMX集团运营着世界各地的交易。Linux在金融行业中的使用越来越广泛,值得一提的是,英国伦敦证券交易所也正在向Linux转移,前不久才完成了测试。在美国,纳斯达克OMX集团控制着纳斯达克股票市场,纳斯达克期权市场和今年10月8日新启动的纳斯达克OMX PSX市场。在新泽西举办的Linux基金会高端用户峰会上,纳斯达克OMX集团副总裁Bob Evans就关键业务系统使用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错了,不是没有人使用,只是它们藏得很深,一般人不知道。

【51CTO精选译文 转载请标明出处与作者】

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

原文名:Linux at NASDAQ OMX

作者:Jonathan Corbet

【编辑推荐】

  1. 五年26个版本!Linux内核版本的“武林大会”
  2. 你可能不知道的Linux用户——金融篇
  3. 你可能不知道的Linux用户——企业篇
  4. 你可能不知道的Linux用户——学校篇
  5. 超经典!五大Linux网络监控工具推荐
责任编辑:张浩 来源: 51CTO.com
相关推荐

2011-12-16 14:53:34

云计算

2010-08-18 10:13:55

IntentAndroid

2010-03-01 17:53:22

Python应用程序

2016-11-02 22:15:57

万国数据

2011-01-17 23:41:13

2012-02-13 10:07:52

Linux服务器

2010-02-06 16:02:57

Android 应用程

2012-02-13 09:52:00

Linux企业

2021-04-27 08:31:10

前端应用场景

2010-08-09 08:48:46

File APIWeb

2013-05-13 09:52:52

Windows内核Linux内核

2023-11-24 11:24:16

Linux系统

2012-09-28 10:05:52

2010-08-27 10:41:41

iPhone核心应用程序

2012-06-20 13:48:53

黑客

2020-04-21 16:42:33

AMBC

2009-07-22 10:18:20

缓存服务器

2012-11-19 09:58:44

2011-08-09 15:47:46

LeveldbLinuxC++

2019-04-04 09:08:41

点赞
收藏

51CTO技术栈公众号