陈奇网络工作室

dpv部署

建站服务器

安装dpdk

官方https://github.com/iqiyi/dpvs网址

dpdk 17。05 .2可以兼容dpv

wget https://fast.dpdk.org/rel/dpdk-17.05.2.tar.xz

tar vxf dpdk-17.05.2.tar.xz

下载dpv

饭桶克隆https://github.com/iqiyi/dpvs.git

给dpdk打补丁,加入kni驱动

dpv的激光唱片路径

丙酸纤维素补丁/dpdk-stable-17.05.2/* .补丁dpdk-稳定-17.05.2/

CD dpdk-稳定-17.05.2/

PATCH-p 1 0001-PATCH-kni-use-netlink-event-for-multicast-driver-par。修补

另一个补丁,uoa模块

补丁-P1 0002-net-support-variable-IP-header-len-for-校验和-API。修补

编译dpdk并安装

CD dpdk-稳定-17.05.2/

make config T=x86 _ 64-native-Linux app-gcc

制造

出口RTE_SDK=$PWD

启动hugepage

服务器是numa系统(centos)

echo 8192/sys/devices/system/node/node 0/巨大页面/巨大页面-2048 kb/NR _巨大页面

echo 8192/sys/devices/system/node/node 1/巨大页面/巨大页面-2048 kb/NR _巨大页面

市场/市场/巨大

mount -t hugetlbfs nodev /mnt/huge

注:这个操作是临时的,如果服务器有别的应用再跑,可能已经占用hugepage了,后面给出另外的方法

安装uio驱动,并绑定网卡

modprobe uio

CD dpdk-稳定-17.05.2

insmod build/kmod/igb_uio.ko

insmod build/kmod/rte_kni.ko

查看网卡状态/用户工具/dpdk-dev绑定。py状态

使用内核驱动程序的网络设备

===================================

0000:01:00.0 \\\'I350千兆网络连接1521\\\' if=eth0 drv=igb未使用=

0000:01:00.1 \\\'I350千兆网络连接1521\\\' if=eth2 drv=igb未使用=

0000:01:00.2 \\\'I350千兆网络连接1521\\\' if=eth3 drv=igb未使用=

0000:01:00.3 \\\'I350千兆网络连接1521\\\' if=eth4 drv=igb未使用=

绑定eth3。/用户工具/dpdk-dev绑定。py-b igb _ uio 0000:01:00.2

注:这里绑定的网卡,最好是没有使用的,因为网卡需要向下掉才能绑

编译dpv

CD dpdk-稳定-17.05.2/

出口RTE_SDK=$PWD

dpv的激光唱片路径

制造

进行安装

注:安装的时候可能有依赖包报错,提示哪个,好吃安装就可以了

编译后的文件

ls bin/

dpip dpvs ipvsadm保持激活

启动dpv

CP conf/dpvs。糖膏剂单网卡。样本/etc/dpv。conf

光盘路径-dpv/bin。/dpvs

查看是否启动正常。/dpip链接显示

1: dpdk0:插座0 mtu 1500接收队列8发送队列8

高达10000 Mbps的全双工固定nego承诺-关闭

地址A0:36:9F:9D:61:F4 OF _ RX _ IP _ CSUM OF _ TX _ IP _ CSUM OF _ TX _ TCP _ CSUM OF _ TX _ UDP _ CSUM

以速度三角形定位法(航位推算)模式举例

官方网址https://github.com/iqiyi/dpvs/blob/master/doc/tutorial.md,各种lvs模式配置

给dpv添加局域网ip 37,这个步骤必须在添加贵宾之前。/dpip addr add 192。168 .1 .37/24开发dpdk 0

给dpv添加vip 57。/dpip addr add 192。168 .1 .57/32开发dpdk 0

设置算法为rr,vip为57。/ipvsadm-A-t 192。168 .1 .57:80-s RR

添加后端机器11。/ipvsadm-a-t 192。168 .1 .57:80-r 192。168 .1 .11-g

在11机器执行

互联网协议(Internet Protocol的缩写)地址添加192.168.1.11/32开发低

sysctl-w net。IP v4。糖膏剂瞧。ARP _ ignore=1

dpv在启动的时候,有时候会报错,罪魁祸首是内存碎片,应用程序无法申请到足够多的连续大块内存,只能申请到很多小块内存。以至于内存块数目超过了系统设置的256个。

解决方式就是申请大页内存应该在系统启动时,或系统启动后尽快申请,避免内存被割裂

https://www.cnblogs.com/cobbliu/p/6603391.html

为了省事可以加入到核心参数/etc/boot/grub2.cfg

default _ huge pagesz=1G huge pagesz=1G huge pagesz=8G

引用别人的结论:

结论:DPDK再快也是收包到送给应用层的时间短,而不是"转发"快。收到包后,各类检查跟查表(一般都是并发环境,加锁啊什么的,无锁?……哈哈)处理的时间,基本上都是要远远超过DPDK的自身开销的。

想比Linux快,就要明白Linux网络协议栈为什么“慢”,比DPDK处理慢。对于大多数应用来说,没有必要为了上层服务延迟而在网络上大费周章。总之,延迟能不能降低,要看应用环境(你买得起这么多物理机吗?有没有相应的稳定可靠的人才支撑?),然后做剖析,看看瓶颈在哪里。不要想当然,DPDK。

例如,如果您使用UDP dns,您可以使用DPDK绕过Linux协议栈并升级QPS。如果做路由的话,我觉得硬件是配不上的。这个我不同意。为了减少延迟,在没有包的时候,DPDK要保持CPU满负荷运行。这时候如果想提高吞吐量,延迟也就随之而来了。如果系统里多个工作程序一起运行,老板穷或者不愿意买好机器,开发和操作技能没跟上,DPDK也会用光。

硬件差不多,网络IO内存程序和Linux运行在10兆也没问题。

如果做包转发,肯定会比x86 linux在性能上有很大提升。其实大部分瓶颈并不在dpdk处理的网络中。

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3