DPVS 高性能第4层负载均衡器

程序名称:DPVS

授权协议: GPLv2

操作系统: Linux

开发语言: C/C++

DPVS 介绍

DPVS架构图

@H_502_7@

介绍

DPVS是爱奇艺公司基于DPDK开发的高性能第4层负载均衡器。基于阿里巴巴/
LVS修改而来,出于蓝而胜于蓝。

DPVS全称为 “DPDK-LVS”.

为了达到高性能,使用了多种不同技术

  • 内核旁路(用户空间实现)

  • per-cpu,关键数据无锁化

  • RS Steering和cpu绑定(避免上下文切换)

  • 批处理TX / RX

  • 零拷贝(避免数据包复制和系统调用

  • 轮询替换中断

  • 性能IPC和无锁消息

  • 其他由DPDK实现的性能增强技术

DPVS的主要特点包括

L4负载均衡器,包括FNAT,DR模式等

不同的调度算法,如RR、WLC、WRR等

用户空间轻量级IP协议栈(IPv4,路由,ARP,ICMP …)。

SNAT模式,用于从内部网络访问Internet。

支持KNI,VLAN,不同IDC环境的绑定。

安全方面,支持TCP syn-proxy,Conn-Limit,黑名单。

QoS:流量控制(开发中)

DPVS功能模块如下图所示:

@H_502_7@

quick start

快速搭建:

Linux发行版:CentOS 7.2

内核:3.10.0-327.el7.x86_64

cpu:Intel(R)Xeon(R)cpu E5-2650 v3 @ 2.30GHz

NIC:Intel X540

内存:64G和NUMA系统。

GCC:gcc版本4.8.5 20150623(红帽4.8.5-4)

DPDK可以正常工作的环境应该也能运行DPVS,请查看dpdk.org了解更多信息。

安装过程略,可以到官网查看详情。

测试 Full-NAT 负载均衡

测试拓扑图如下所示:

@H_502_7@

在DPVS上设置VIP和本地IP(Full-NAT模式所需的LIP)。 我们把命令放到setup.sh中。 你可以通过./ipvsadm
-ln,./dpip addr show来检查一下。

@H_502_7@

从客户端访问VIP,看起来正常!

@H_502_7@

性能测试

我们的测试显示,DPVS的转发速度(pps)是LVS的几倍,与Google的Maglev一样好。

@H_502_7@

DPVS 官网

https://github.com/iqiyi/dpvs

相关编程语言

memcached-session-manager 将session存储到memchac...
Tomcat Native 这个项目可以让 Tomcat 使用 Apache ...
EasyTomcat 是一个用来帮助简化 Tomcat 和MySQL 管理...
riak-session-manager 是使用 Riak 来存储Tomcat se...
tomcat-redis-session-manager 是一个用来将 Tomcat...
这是一款在 Oracle 的 JDeveloper 开发环境下管理To...