上一篇文章中我们已经介绍了DPVS的特点和部署方式,本文主要是用于介绍DPVS是如何实现前面所说的特点,或者说是如何提高性能的。
下图是爱奇艺的DPVS开发团队给出的DPVS在提高性能方面的操作,我们这里换一个角度,自底向上,从底层的CPU、内存、网卡来看这些操作是如何实现的。
(本文涉及到较多的计算机组织架构和操作系统原理的知识点,由于篇幅原因没办法一一详解,因此有一定的理解门槛,如果有看不懂的知识点可以在文章下面留言,有机会我会写一些文章详细介绍一下相关内容)
这里需要额外解释一下Share Nothing
和Batching
。
**Shared nothing架构(Shared Nothing Architecture,SNA)这里的Share Nothing
指的是一种设计模式而不是某种具体的技术,这种架构设计的思想是通过牺牲整体的横向扩展能力来提升纵向性能。**作为一种分布式计算架构,它的每一个节点( node)都是独立、自给的,而且整个系统中没有单点竞争,没有资源的竞争就不需要加锁,也不需要上下文切换。
Batching
在这里指的批处理
,主要还是依靠DPDK的SIMD(Single Instruction Mu