1.DPDK in Container
使用虚拟网卡设备技术为每一个容器分配一个IP 网卡适配器(queue)。容器技术可以解决虚拟机技术中虚拟机过于臃肿,难于热迁移的问题,可能可以代替美团OVS方案,解决OVS热迁移方案不足的问题。
2.F-Stack
F-Stack拒绝有意义的提问,带来了现场的一番哄笑,F-Stack违背了DPDK最初的技术方向,其提供了POSIX接口被迫使用了Linux线程IO模型,导致其能力只能达到linux协议栈RSS 无锁优化后的1.4倍,这是mtcp ans 也存在的同样问题,而完全放弃Linux线程IO模型自己实现OS任务调度的seastar则是F-Stack mtcp ans 性能的5-10倍。
F-Stack拒绝了长连接性能,技术上讲这主要是因为著名的C10K问题,在linux windows等主流操作系统中,在无法做QOS的情况下,大量长连接会很不稳定,导致雪崩问题,C10K问题不解决,则高效的消息推送方案则无法实施,比如未来的websocket技术,IM领域的360Push Whatsapp 环信等应用场合就无法做到,长连接性能直接关系到IM的运营成本,不知道微信是否有用F-Stack,具体可以参看Whatsapp “零”运营技术,而这一块内容是异数OS方案需要解决的问题重点。
F-Stack演讲者则用两个现实问题搪塞了技术问题,说腾讯的业务都是短链接业务,腾讯的业务平台都要使用linux生态,所以放弃了自研协议栈,这在技术上讲实际是一种退步。
F-Stack在Send时多出现了一次内存拷贝动作,这个问题在异数OS中则被解决,原理是用异数OS的惰性IO资源,利用可用的ring buffer,在ring buffer可用的时候调度TCP worker线程在ring buffer上直接进行发包渲染工作。
3.A Better Virtio towords NFV Cloud
高科技,不懂:)
4.SPDK
没详细听,感觉意义不是特别重大,因为应用系统中,磁盘IO压力不会特别高,而且存储是有寿命的,不宜频繁使用,好的系统设计,比如一些kv都是尽量少的提交持久化磁盘任务,所以更好的文件系统以及更好的持久化任务系统(OS)才是真正的重点。
5.性能调优
for循环优化在内存io密集型应用方面用不上,只能用在多层for循环重压力算法中,另外dpdk的内存预读是否有用,我这边使用的gcc的是没有用的,不管是连续方寸还是随机访问。
问及Hash 随机访存优化,演讲者就说去看vpp...要看的话就不要问了...
6. 美团OVS
7.DPDL
听的不太清楚,个人理解是RSS FDIR等技术并不能解决所有负载分流问题,所以需要诞生一种多核同时能处理一个ring的需求。因此原本的单生产者单消费者的ring需要被扩展设计出多生产者多消费者的ring,本来单生产者单消费者的ring是利用cache一致性协议无锁无atom的多核通讯,cache line内不需要保序,但需求变更后则会要求加锁保序。
提问者则有质疑,这样的情况加锁则意味着阻塞CPU核,最坏的自旋锁情况则是多核比单核还慢。
提问者的质疑异数OS提供了解决方案。
异数OS的虚拟交换机使用无锁无atom的多生产者多消费者的设计,用于LPC的实现,但必须配合异数OS使用,原理上讲,他还是利用cache 一致性协议,没有OS的情况,则只能自旋锁阻塞CPU核,但是有OS则可以在try无效时做线程切换动作,在Linux下,这两种锁都被应用实做以便于适应不同的情况,原因是linux的线程切换代价极高,所以直接决定了锁能够达到的频度,频度不高时可以使用线程切换的自旋锁,以便于充实CPU核,带来性能提升,但网卡ring的PMD频度很高,则不能用这种方式,而异数OS则可以用这个方案,原因是异数OS每盒最大线程切换能力可以达到50M。
8.intel 25Gbe Ethernet Adapter
个人理解,交换机领域功能不足,OS协议栈性能不济的情况下,限制了其推广。
9.DPDK Cryptodev Framework
提问者质疑延迟的问题,因为ring 要利用cache加速,不可能做大,因此延迟很敏感。
10.腾讯DDOS清洗
只讲了使用DPDK抓包,清洗算法未知,做到了90M的速度,所以猜测只是一些DPI,fastpath,不能做复杂的session清洗。
所以提问者立刻问了能不能做5层6层7层清洗,集群黑名单同步等问题,显然是无解的,所以现场再次哄笑。DPDK社区群上有人怀疑腾讯来的人都是做技术运维的。
11.Low Latency Interrupt Mode PMD
回归到了一个经典问题,DPDK只看到了自己的问题,没发现别人玩不转,DPDK说我用用户层PMD绕开Linux内核协议栈,Linux说,没我你做不出协议栈,这个问题又再次出现了,在局部上讲,低流量压力下时PMD浪费CPU资源,引入中断模式的PMD可能会有效率,但是中断关系到OS的线程切换,为了减少线程切换,一般要用绑核以及本地化任务调度等技术,但中断显然打破了上层设计格局。
提问者大概的意思是中断速率和PMD速率是否可以自动根据网络流量做自适应调节,但没有得到直接答复,因为这可能超过了演讲者的问题理解范围。
异数OS则在这个问题上做了完整解决。
异数OS的PMD线程会被QOS做IOPS控制,在不同压力下可以自适应变化到1M 2M....10M,在try miss的情况下PMD线程会被QOS挂起,切换到其他就绪线程(包括idle降温线程),在IOPS资源可用时再被唤醒回来。
12.嵌入式交换机解决方案
交换机不是太懂:)
13.Panabit Support Millons Users in vBRAS
QQ技术群中 move经验丰富 测试过他们的产品,说syn异常时,链接资源无法被清理,只能reboot,那么说明他们应该没有OS来管理庞大的session 生命期,只是个fastpath,甚至连定时器都没有(定时器在海量链接时很耗资源)。
孙总的销售思路比研发在战略上肯定更加清晰,导致论战上的胜利。
如果有OS的话,有希望做应用业务级别精确的QOS,所以颠覆式创新比标准制定者(中兴华为)肯定更能获得希望,但他们的OS真做了吗?
14. DPDK PMD in LXC
上场论战太感人,在回味,所以没听。
15.Yuanshan DDOS清洗
降低的比腾讯要丰富些,但关键的清洗识别算法是保密的。
值得关注的是演讲者讲了一个冷笑话对全场主题做了一个有意义的总结,说一座山挡住wifi信号,然后愚公移山是否有意义来告诫参会者,每个人的理解可以不同,我的理解如下:
1. OVS等虚拟化等方案是否使问题变得更复杂,代价更高。
2. 标准制定者与颠覆式创新者之间,我们是否应该支持颠覆式创新者的做法(孙总的灵活QOS与中兴华为移动的QOS标准,F-stack的被现实大山压倒与seastar的丢弃包袱完全开创新世界)。