首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

ovs vxlan 时延和吞吐

测试环境 物理机物理口的MTU是1500,vxlan0,ovs internal口和虚拟机的网口MTU都是1450,host物理口打开多队列,虚拟机8核16G,vhost=on,网口无多队列。...大报文bps大时,因为有MTU限制,pps其实也不小,ovs vxlan处理和kvm处理会引入相等的时延,但这个时延只是大pps时kvm引入时延的10%,一条流处理有上限,不同流占用不同的物理cpu能提高...ovs实现vxlan性能存在瓶颈,单cpu的ksoftirq很容易就100%了,吞吐上不去。...vxlan处理后,vxlan对物理cpu占用基本没了,vxlan性能会大幅提高,单流kvm就更承受不住,时延会更大,性能瓶颈会转移到kvm,但多条流分散到不同的虚拟机会有部分收益,但肯定不会成线性的,linux

1.8K11

Ovs+Dpdk简单实践

二、Ovs+Dpdk编译与安装 目前Ovs的最新发行版版本为v2.5.0,根据Ovs的官方文档,由于Qemu早期版本不支持vhost-usertype,所以qemu版本必须在v2.1以上。.../browse/dpdk/snapshot/dpdk-16.04.tar.gz Step2:清理环境,因为Ovs+Dpdk,需要Ovs在编译时link到Dpdk的lib库,所以如果环境原来已经安装有Ovs...Step 6:安装ovs ? Step7:安装相关内核模块 ? 三、环境准备 Step1:启动namespace ovs ?...一方面由于Dpdk+Ovs涉及到kernel、Qemu、Ovs、Libvirt等不同项目,各个模块都存在bug,比如Ovs的watchdog crash问题、Qemu中关于vhost socket断开以后...虽然Ovs项目中正式纳入Dpdk时间已经比较长,但是真正在生产环境部署,还有很多问题需要解决。另一方面由于Ovs天生的性能方面的缺陷,当集群规模非常大的时候,Ovs性能迅速下降。

2.7K50

openstack网络设计-(三)ovs offload

硬件资源是有限的,ovs不可能事先把所有转发规则下给硬件,这就要求有一种触发机制,一个报文来了触发ovs给硬件下转发规则,后续报文由硬件转发不再经过ovs, 既然报文是虚拟机和硬件之间直接交互,现在要求硬件把搞不定的报文上送给...ovs,这需求一个上送通道,mellanox有个vf representor就是干这事的,vf representor类似于vf, 绑定在ovs桥上,在ovs看来就是一个port,硬件把报文内存,中断触发...如果硬件搞不定所有功能就只能是partial offload,那些功能offload了哪些功能没有offload,硬件和软件得同步,就拿linux checksum offload来说,skb搞出几个成员专门用来记录信息...vhost-net不可能直接操作vf,必须交给ovs模块,ovs再操作vf,两个模块,内核开发难度太大,没看到mellanox的参数代码。...原生dpdk方案,ovs-dpdk和qemu之间vhost-user通信,guest和ovs-dpdk之间通过virtio descriptor共享内存,数据到了ovs-dpdk,ovs-dpdk软件处理然后从一个硬件网卡出去

2.3K20

OVS BUG撸码回忆录 •上篇

可能大多数瓜农都对《艺伎回忆录》比较熟悉,作为一个IT界的码农,当然也有自己类似的经历,该文分为上篇和下篇,此篇为《OVS BUG撸码回忆录•上篇》 回忆录缘起 以前为排查ovs的某个bug,无奈撸了把相关内核流程...linux内核为了高性能,很喜欢用rwlock的改进版rcu,这种思想是值得借鉴的。         ...switch (rx_handler(&skb)) // 交给rx_handler处理,例如ovs, linux bridge等 此类接口处理报文在协议栈之前,因此netfilter对此类接口不起作用,...所以在云环境(openstack)中,需要在虚拟机tap口与虚拟交换机之间增加Linux bridge设备来使报文经过协议栈(netfilter起作用)来实现security group。...[root@node01 ~]# ovs-dpctl show system@ovs-system:        lookups: hit:79272720733 missed:2990364171

1.3K70

从 Bridge 到 OVS,探索虚拟交换机

Linux Bridge 和物理网络一样,虚拟网络要通信,必须借助一些交换设备来转发数据。因此,对于网络虚拟化来说,交换设备的虚拟化是很关键的一环。...上文「网络虚拟化」已经大致介绍了 Linux 内核为了满足网络虚拟化的要求,实现了一套虚拟交换设备——Bridge。...借助 Linux Bridge 功能,同主机或跨主机的虚拟机之间能够轻松实现通信,也能够让虚拟机访问到外网,这就是我们所熟知的桥接模式,一般在装 VMware 虚拟机或者 VirtualBox 虚拟机的时候...Linux Bridge + VLAN 便可以构成一个和物理交换机具备相同功能的虚拟交换机了。对于网络虚拟化来说,Bridge 已经能够很好地充当交换设备的角色了。...下面简单看下 OVS 的整体架构,如下图所示,OVSLinux 用户态和内核态都实现了相应的模块,用户态主要组件有数据库服务 ovsdb-server 和守护进程 ovs-vswitchd。

2.9K72

Docker容器跨主机通信之:OVS+GRE

一、概述 由于docker自身还未支持跨主机容器通信,需要借助docker网络开源解决方案 OVS OpenVSwich即开放式虚拟交换机实现,简称OVSOVS在云计算领域应用广泛,值得我们去学习使用...二、基于OVS+GRE的大二层通信 实验环境 操作系统 主机 主机ip 容器网段 ubuntu-16.04.4-server-amd64 主机1 172.31.15.168 172.17.43.1/24..."172.17.42.1/24" } 重启docker服务 主机1和主机2上均执行如下命令重启docker服务以使修改后的docker0网段生效 systemctl restart docker 创建ovs...bridge 主机1和主机2 操作: 安装 openvswitch apt install -y openvswitch-switch 创建bro网桥 ovs-vsctl add-br br0 查看bro...主机2 执行: ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre option:remote_ip=172.31.15.168 注意:

1.9K20

OVS中Action源码分析&自定义Action

type; /* OFPAT12_SET_FIELD. */ ovs_be16 len; /* Length is padded to 64 bits. */ ovs_be32...5 以上完成了在OVS中OpenFlow action的定义,但是ovs对action的处理都是基于抽象action(后面如果遇到ofpact则理解为ovs抽象action),因此OVS需要对这些openflow...这个宏定义了OVS所有抽象action(ofpact),其与openflow action有一对一或一对多映射关系(如多个版本openflow action映射为一个ofpact),这利于ovs做统一处理...函数结束处 调用函数ofpacts_verify()->ovs_instruction_type_from_ofpact_type() (ofp-actions.c中),这对ovs 抽象action类型进行检验...到这里为止,通过以上OVS代码的添加和修改,OVS则可以正确解析控制器下发的新的action(比如含有新action的flow-mod消息),OVS已经可以正确对action进行解析,并且可以正确插入到流表中

2.2K91

virtio+ovs转发原理和性能分析

virtio和ovs介绍 传统数据中心中硬件服务器上运行linuxlinux用硬件网卡收发包,硬件网卡有broadcom的有mellanox的有intel的等各式各样的,硬件网卡连接到硬件交换机上,硬件交换机有...软件交换机有linux bridge,vpp,ovs等,为什么云计算环境中大多用了ovs?因为云计算是最自然的SDN应用场景,不再需要复杂的控制面协议,如STP。...另外云计算要求灵活,vpp pipeline和linux bridge设计时考虑更多的是二三层转发原理和转发性能,要加入新功能异常艰难,而ovs采用了openflow pipeline,多table和多...这种模式ovs不再用内核的datapath,物理网卡绑定了DPDK,物理网卡直接把包DMA到用户态ovsovs进程和qemu进程共享内存把包传递到qemu进程中,qemu进程地址换算一下包就到了guest...qemu把virtio-net数据面模拟交给了ovs-dpdk进程,消息通道还是靠kvm。guest中一直poll不现实,但ovs-dpdk从guest中拿包时可以一直poll。

3.1K21

OpenStack Neutron中的DVR简介与OVS流表分析

具体操作如下: 建立br-ex: ovs-vsctl add-br br-ex 把eth0桥接到br-ex里面:ovs-vsctl add-port br-ex "eth0" 建立ifcfg-br-ex...DVR环境下Openflow规则的分析 OVS命令简介 Open VSwitch(OVS)是一个虚拟交换机,可以用来组成虚拟网络。...在前面DVR的配置中我们用到了一些OVS的命令,这里再介绍一下OVS的一些命令: 查看open vswitch的网络状态:ovs-vsctl show 查看网桥br-tun的接口状况:ovs-ofctl...show br-tun 查看网桥br-tun的流表:ovs-ofctl dump-flows br-tun 添加网桥:#ovs-vsctl add-br br0 将物理网卡挂接到网桥:#ovs-vsctl...列出 open vswitch 中的所有网桥:#ovs-vsctl list-br 判断网桥是否存在:#ovs-vsctl br-exists br0 列出网桥中的所有端口:#ovs-vsctl list-ports

2.4K100
领券