Neutron网络性能测试与分析(一) CVR
测试环境:网络节点运行在Intel(R) Xeon(R) CPU E5-2630 v3服务器上,网卡使用intel的万兆卡82599ES
测试仪使用本人基于dpdk编写的程序,基本上可以打满万兆卡,小包的pps在1200w左右
于是我用测试仪给openstack的虚拟机打流量,为了尽量模拟实际情况采用了200w条数据流,其中通过FIP访问虚拟机,主要想测试一下neutron网络节点的转发性能,在测试中只使用了一路numa节点,经过各种优化后,性能大约在200wpps左右,一路numa节点的cpu全部si占用率为100%,如下是使用perf top获取到的cpu被各个函数占用的情况。
15.97% [kernel] [k] ipt_do_table
8.29% [kernel] [k] ____nf_conntrack_find
6.80% [kernel] [k] fib_table_lookup
2.97% [kernel] [k] __netif_receive_skb_core
2.73% [kernel] [k] _raw_spin_lock
2.72% [kernel] [k] nf_iterate
2.23% [kernel] [k] intel_crc4_2_hash2
2.12% [kernel] [k] masked_flow_lookup
2.03% [kernel] [k] nf_nat_ipv4_fn
1.83% [kernel] [k] check_leaf.isra.
1.82% [kernel] [k] ovs_flow_mask_key
1.66% [kernel] [k] ip_finish_output
1.47% [kernel] [k] ixgbe_clean_rx_irq
1.43% [kernel] [k] ixgbe_xmit_frame_ring
考虑到已经将nf_conntrack优化到足够的快,基本上没有tuning的空间;于是我进行了第二组测试。在linux 内核协议栈中实现了一个快速的NAT方式,方法基本与nf_conntrack一样,只是不像nf_conntrack那么通用,路径那么长,锁的粒度也要比nf_conntrack小,粒度精细到哈希表中的元素,哈希算法和nf_conntrack一样。
得到的结果是230wpps,此时ovs的查询函数在iperf中显示占用了最多的cpu使用,大约在9%左右,推断出此时ovs是整个性能的瓶颈。
经过了两次对比可以看出在neutron CVR情况下,nf_conntrack和ovs流表对cpu的占用率大约在六四开。
因此估计在Intel(R) Xeon(R) CPU E5-2630 v3服务器上,两路numa节点全部使用的话,NEUTRON转发的
性能极限应该不会超过400wpps,因为性能并不会随着cpu的增加而线性的增加,随着cpu数目的增加,cpu对总线的竞争也越来越激烈,对内核的全局变量竞争也越来越激烈。
考虑到linux内核协议做NAT的路径比较长,而且nf_conntrack过于通用导致其性能不高;CVR的方式除了同网段的
虚拟机流量不走网络节点,其余全部要走网络节点;DVR的实现方式极其麻烦而且性能会更差(通过了两次的netns)
可以考虑在ovs中做NAT来提高性能,但是根据第二组测试的结果,分析其性能极限也就是在500wpps~600wpps左右
要想达到商业级的pps(1000wpps左右),以及dpdk ivshmem/vhost_user对虚拟机的性能加速,最终使用nfv+dpdk或许可以实现
Neutron网络性能测试与分析(一) CVR的更多相关文章
- openstack第四章:neutron— 网络服务
第四篇neutron— 网络服务 一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是 ...
- Neutron 网络基本概念
Neutron 网络基本概念 上次我们讨论了 Neutron 提供的功能,今天我们学习 Neutron 模块几个重要的概念. Neutron 管理的网络资源包括 Network,subnet 和 po ...
- Apache ab性能测试结果分析
Apache ab性能测试结果分析 测试场景:模拟10个用户,对某页发起总共100次请求. 测试命令: ab -n 100 -c 10 地址 测试报告: Server Software: 被测服务器软 ...
- Neutron网络学习
学习 Neutron 系列文章: 转http://www.cnblogs.com/sammyliu/p/4622563.html (1)Neutron 所实现的网络虚拟化 (2)Neutron Ope ...
- LoadRunner性能测试结果分析(转载)
性能测试的需求指标:本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率.内存使用率分别不超过75 ...
- openstack——neutron网络服务
一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
- Web项目性能测试结果分析
1.测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源.数据库服务器资源等几 ...
- OpenStack核心组件-neutron网络服务
1. neutron 介绍 1.1 Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能 ...
- openstack核心组件--neutron网络服务(4)
一.neutron 介绍: Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
随机推荐
- Maven入门指南 :Maven 快速入门及简单使用
开发环境 MyEclipse 2014 JDK 1.8 Maven 3.2.1 1.什么是Maven? Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于 ...
- mysql中timestamp的自动生成与更新
转自:mysql中timestamp的自动生成与更新 MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样.1.自动UPDATE 和INSERT 到当前的时间:表:----------- ...
- wpf xmal基础
1.名称空间的引用 比如想使用System.Windows.Controls名称空间 首先需要把改名称空间所在的程序集presentationFramework.dll引用到项目里 然后在根元素的起始 ...
- [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY
[SQL基础教程] 3-4 对查询结果进行排序/ORDER BY ORDER BY SELECT <列名1>,<列名2>,<列名2>... FROM ORDER B ...
- CNN-梯度下降
一.梯度检测: 对于函数而言通常有两种计算梯度的方式: 1.数值梯度 (numberical gradient) 2.解析梯度 (analytic gradient ) 数值梯度计算通常为: 更为常见 ...
- 各种编码之间的关系以及getBytes的使用
编码基础知识参考http://my.oschina.net/chape/blog/201725 我对此作了简单的概括 iso8859-1 (通常叫做Latin-1) 属于单字节编码,最多能表示的字符范 ...
- Tiny6410之控制icache驱动
什么是cache: 基于程序访问的局限性,在主存和CPU通用寄存器之间设置了一类高速的.容量较小的存储器,把正在执行的指令地址附件的一部分指令或数据从主存调入这类存储器,供CPU 在一段时间内使 ...
- Javascript封装弹出框控件
1.首先先定义好弹出框的HTML结构 <div class="g-dialog-contianer"> <div class="dialog-windo ...
- MySQL字段联合去重sql
MySQL字段联合去重sql 例如数据 id,name1,name2 1 a x 2 a y 3 b x 4 a y 5 a x 联合去重name1,name2的结果为 id,name1,name2 ...
- 2015 asia xian regional F Color (容斥 + 组合数学)
2015 asia xian regional F Color (容斥 + 组合数学) 题目链接http://codeforces.com/gym/100548/attachments Descrip ...