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 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要 ...
随机推荐
- mouseover和this的巧用
mouseover & mouseout 的问题 在JS中,使用mouseover & mouseout会有触发多次的问题,这里Jquery有了替代的新属性 mouseover == ...
- c语言对齐问题
引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始 ...
- hdu 3507 Print Article(斜率优化DP)
题目链接:hdu 3507 Print Article 题意: 每个字有一个值,现在让你分成k段打印,每段打印需要消耗的值用那个公式计算,现在让你求最小值 题解: 设dp[i]表示前i个字符需要消耗的 ...
- [Q]pdfFactory打印机内存不能为read的问题
运行环境:xp系统,AutoCAD2007 1. 使用pdfFactory打印文本文件没有问题. 2. 使用CAD打印的时候出现问题,使用CAD自带的PLOT命令打印也出现相同的问题. 3. 使用相同 ...
- 初始化git
git config --global user.name "Firstname Lastname" git config --global user.email "yo ...
- emguCv3.x 实现字符分割,轮廓检测
/// <summary> /// 获取区域 /// </summary> /// <param name="bitmap"></para ...
- ACM第四次积分赛
虽然因为第一题给的数据有问题,没能四道题都做出来,但是这次第四名,进步很大,继续努力! SAU-ACM总比赛成绩 姓名 账号 上学期成绩 第一次成绩 第二次成绩 第三次成绩 第四 ...
- C# 从零开始 vol.1
说好的java只能先坑了,毕竟计划赶不上变化,以下是 c# 基础部分. 1:变量,方法的命名方式 目的就是一眼看到实例名 方法名 就知道该变量是做什么的. 主流的命名方式有驼峰命名规则,pascal命 ...
- ExceptionDemo
功能: 利用struts.xml 捕获异常 不满足这三个值就报异常 1.web.xml <?xml version="1.0" encoding="UTF-8&q ...
- 【.NET】加密和解密(.NET)
类名:Security using System; using System.Security.Cryptography; using System.IO; using System.Text; na ...