DPVS 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
DPVS 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: GPLv2
开发语言: C/C++
操作系统: Linux
开发厂商: 爱奇艺
收录时间: 2017-10-19
提 交 者: beacer

DPVS架构图

介绍

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功能模块如下图所示:

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 负载均衡

测试拓扑图如下所示:

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

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

性能测试

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

DPVS 的相关资讯

还没有任何资讯

DPVS 的相关博客

给DPVS加上SESSION同步功能

给DPVS加上SESSION同步功能 前言 DPVS是一款爱奇艺开源的基于DPDK的优秀软件(https://github.com/iqiyi/dpvs)。利用DPDK工作在...

dpvs源码分分彩(一分彩)源码下载分析

上面之分分彩(一分彩)源码下载【http://zhengtuwl.com】274【企娥】7044651所以我会这么强调初始化里面的几个注册函数,主要...

开源|iQiYi 高性能开源负载均衡器及应用

DPVS是 iQiYi采用 DPDK技术开发的的高性能四层负载均衡器。与 Linux内核的 LVS(LinuxVirtualServer)相比,DPVS具有如下特点...

负载均衡获得真实源IP的6种方法

除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种。 本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配...

负载均衡获得真实源IP的6种方法 【转】

除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种, 本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配...

负载均衡获得真实源IP的6种方法

注:文章转自 小慢哥Linux运维 获得真实IP的6种方法 当数据包从负载均衡器往后端转发时候,真实源IP可在L3、L4、L7实现,并且...

游戏中遮挡剔除方案总结

遮挡剔除是当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。在3D图形计算中并不是一个自动进行的过程,...

负载均衡获得真实源IP的6种方法

除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种。 本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配...

负载均衡获得真实源IP的6种方法

除了X-FORWARD-FOR,负载均衡中获得真实源IP的方法还有很多种, 本文抛砖引玉,主要介绍获得真实源IP的多种方法,而不是具体配...

DPVS 的相关问答

还没有任何问答,马上提问

评论 (13)

加载中
没有使用文档,
2018/01/24 14:58
回复
举报
话说,这图咋挂了呢? @红薯
2018/01/03 09:39
回复
举报
pp-gcc/build/lib/librte_eal/linuxapp/kni/igb_main.c:2288:2: 错误:提供给函数‘ndo_dflt_bridge_getlink’的实参太少
2017/11/01 08:42
回复
举报
打分: 力荐
青出于蓝而胜于蓝
2017/10/30 10:58
回复
举报
打分: 力荐
就是需要 不断进步 !!
2017/10/28 21:50
回复
举报
请问图是用什么画的?
2017/10/25 09:36
回复
举报
打分: 推荐
.....dpdk 利用了很多硬件特殊 当然会比lvs性能高很多 numa确保了0复制吧?而且每个物理核和它管理的内存和其他的cpu是互相独立的 自己的内存片区 访问起来性能更高带宽更大 各自处理转发任务 自然不用复制 还大大提高了性能。。。。正是numa提供的更高的cpu和内存之间通信性能 才能搞的比lvs高那么多吧
2017/10/20 13:06
回复
举报
我想知道高可用咋做的
2017/10/20 12:22
回复
举报
软件只要套上 DPDK 框架,档次提高就不是一点点了。
2017/10/20 10:35
回复
举报
有没有高性能的基于DPDK的L3负载均衡?
2017/10/20 10:33
回复
举报
更多评论
13 评论
190 收藏
分享
返回顶部
顶部