Copyright©2013the7th Intel IPDC Summit.All of the documents,contents,logos and other elements only can be used during the meeting for communication.Without authorization of author and the company,don’t forward,or use under any circumstances.Reminder:The following activities are treated as the breach of NDA and may result in legal consequences、(*CNDA has more confidentiality requirements.Please consult your own Legal for details.)❑Share any part of this document with any third party,either orally or in writing❑Post or discuss this document publicly(e.g.,posting on Internet or Weibo)❑Any other unauthorized actions.内部资料,严禁外传或者转发此文件所有权属2013第七届英特尔互联网数据中心峰会所有。
文件内的内容、Logo及其他元素仅限于在会议期间的交流和沟通,未经撰写人及其所属公司的授权,不得转发、外传或者在任何其他场合使用。
提示:以下行为被视为是对保密协议的违反并有可能导致相应的法律后果(*CNDA仍包括更多的保密义务,请咨询贵公司的法务)❑将本文件中的任一部分以书面或口头形式泄露给第三方❑将本文件披露给公众,例如在互联网或微博上发布❑任何其他未授权的行为1Fastsocket(Scale your socket)内部资料,严禁外传或者转发Sina & Intel 联合实验室研发中心基础架构部林晓峰xiaofeng6@Not fast enough•Socket是大多数网络应用的基础•Kernel消耗过多CPU内部资料,严禁外传或者转发•性能的多核扩展性很差Testing Environment•Haproxy: Open source TCP/HTTP loadbalancer.•OS: CentOS-6.2 (Kernel : 2.6.32-220.23.1.el6)•CPU: Intel Ivy-Bridge E5-2697-v2 * 2 •NIC: Intel X520 (Support Intel Flow-Director)Serverhttp_loadHAproxy(Ivy bridge E5-2697 v2)http_loadhttp_load 内部资料,严禁外传或者转发•最新Ivy-Bridge E5-2697 v2 * 2•X520 双口万兆网卡•服务器里的高帅富内部资料,严禁外传或者转发性能“华丽”如下:Kernel 2.6.32: 81.3k cps,0.72m pps,0.56G bps启用不同CPU数目的HTTP新建连接性能:内部资料,严禁外传或者转发远谈不上线性扩展,甚至更糟Kernel消耗了超过90%的CPU内部资料,严禁外传或者转发内部资料,严禁外传或者转发将近80%CPU消耗在lock上。
如何提单机处理能力?•提升核心数目内部资料,严禁外传或者转发•花更多的钱购买核心更多的CPU•处理性能不升反降•非常尴尬What to do•硬件辅助效果有限. (网卡offload功能,LRO,TSO)•Date Plane Mode内部资料,严禁外传或者转发需要自己实现网络协议栈. (DPDK)购买商业的解决方案. (Wind River)•优化Kernel官方Linux Kernel持续优化但不够理想.需要修改应用代码. (Megapipe)Fastsocket•多核性能•可维护性内部资料,严禁外传或者转发•两者平衡•Fastsocket多核扩展性是多核服务器性能的关键。
内部资料,严禁外传或者转发Fastsocket: 406.6k cps,3.6m pps,2.8G bps内部资料,严禁外传或者转发CPU 终于干正事了!Intel Hyper-Threading E5-2697-v2Fastsocket 406632Fastsocket-HT 476331(117.2%)CPU 真实的强悍性能:Fastsocket-HT :476.3k cps ,4.1m pps ,3.2G bpsIntel 超线程再次提升近20%性能.内部资料,严禁外传或者转发•Fastsocket-VFS•Fastsocket-Epoll•PerCPU-TCP-Listen内部资料,严禁外传或者转发•RFD(Receive Flow Deliver)•PerCPU-TCP-Establish内部资料,严禁外传或者转发•并非基于磁盘的伪文件类型•为兼容VFS昂贵却不必要的开销内部资料,严禁外传或者转发•去掉这些不必要的开销内部资料,严禁外传或者转发为Fastsocket定制Epoll系统:•减少Epoll的RB-Tree查找次数内部资料,严禁外传或者转发•消除Epoll的惊群现象内部资料,严禁外传或者转发CPU1CPU0KernelListen SocketHaproxy NICHaproxyQueue-0Queue-1•多个CPU 竞争同一个Listen Socket •Locking•CPU cache bouncing内部资料,严禁外传或者转发CPU1CPU0KernelLocal Listen SocketHaproxy NICHaproxyQueue-0Queue-1Local Listen SocketGlobal Listen Socket•No locking•No CPU cache bouncing.内部资料,严禁外传或者转发内部资料,严禁外传或者转发RFD(Receive Flow Deliver)我们期望:•任意一条TCP流的全部操作由同一个CPU完成内部资料,严禁外传或者转发•保持CPU最高效的运行CPU1CPU0KernelNetwork StackHaproxy HaproxyNetwork StackQueue-0Queue-1RSSHaproxy 和client 通信:内部资料,严禁外传或者转发CPU1CPU0KernelNetwork StackHaproxy HaproxyNetwork StackQueue-0Queue-1RSSGood PathBad PathHaproxy 和后端server 通信:内部资料,严禁外传或者转发Intel Flow-Director•控制流量向CPU的投递•ATR sampling 模式内部资料,严禁外传或者转发•Perfect filtering 模式•实现Receive-Flow-DeliverHow Flow-Director helpsCPU1CPU0KernelNetwork StackHaproxy HaproxyNetwork StackQueue-0Queue-1Flow-DirectorGood PathBad PathHaproxy 和后端server 通信(Flow-Director ):内部资料,严禁外传或者转发CPU1CPU0Kernel NetworkStack HaproxyHaproxyNetwork StackQueue-0Queue-1Flow-DirectorReceive Flow Deliver(RFD)Good PathBad PathHaproxy 和后端server 通信(RFD ):启用Flow-Director 的sampling 模式是RFD 的最佳选择内部资料,严禁外传或者转发内部资料,严禁外传或者转发多个CPU 竞争Establish Table 的同一个Hash 桶 CPU1CPU0KernelHaproxy NICHaproxyQueue-0Queue-1Establish Table内部资料,严禁外传或者转发消除多个CPU 对establish table 的竞争 CPU1 CPU0KernelLocalEstablish Table Haproxy NICHaproxyQueue-0Queue-1Local Establish Table GlobalEstablish Table内部资料,严禁外传或者转发内部资料,严禁外传或者转发Maintainability•应用程序透明•通用接口(Nginx, Memcache)内部资料,严禁外传或者转发•对普通socket应用无影响•使用简单How to use Fastsocket•安装RPM包(Fastsocket Kernel and libfastsocket.so)•加载fastsocket.ko模块内部资料,严禁外传或者转发•启用应用程序PRELOAD libfastsocket.soWhat is Next•其他Kernel子系统(Slab,Route)内部资料,严禁外传或者转发•开源项目•和入Linux主线Conclusion•Linux Kernel仍有很大潜力•Fastsocket充分释放Intel CPU和NIC的性能内部资料,严禁外传或者转发•Intel平台的强力支撑,可以做的更多Fastsocket感谢各位!内部资料,严禁外传或者转发。