易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 654|回复: 0
收起左侧

openstack测试neutron qos小测试

[复制链接]
发表于 2023-2-2 12:00:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
测试qos过程
+ U0 g: z2 ]' K; w0 a0 W测试环境介绍
7 d6 D3 g1 w1 D. m. p2 J/ }
9 ]; p5 I# d% G6 i& o) E1 h创建两个网络,每个网络下创建一台虚拟机,将两个网络绑在同一个路由器下面,通过iperf测试两台虚拟机之间的带宽。
0 V2 ]/ q3 s) \0 n
. H5 j3 ~) l( S6 I5 E2 x9 n+ G首先创建两个网络,分别是t2cloud_net1(172.160.1.0/24)和t2cloud_net2(172.160.2.0/24),两个网络下各创建一台虚拟机,分别是qosvm1和qosvm2。
! F- Z+ u1 K5 Z3 `% f9 b
3 ~. i+ T  `! w接下来创建路由器router,将两个网络绑定在路由器下,路由器出口选择外部网络external_net。, G$ X9 `9 b- n+ e

( r9 _$ G+ ?" p& t/ N1 v' c网络拓扑如下' \" Z+ p. A/ z
! W" ]  J1 a/ I' o+ T# D

' c, C2 m0 W0 H, B) a接下来要做的就是查询虚拟机网卡对应port的信息,以qosvm1为例。; j0 F9 k# Y3 D! U( s9 @

3 ^* k- z. w# S- S6 dneutron port-list |grep 172.160.1.- I0 b' L* F3 u# o0 ^
5 K/ i" W$ ]7 j4 x  c- W

) [3 \+ _4 \; n* I172.160.1.1为网关地址,172.160.1.2和172.160.1.3为两个dhcp服务地址,172.160.1.4为qosvm1虚拟机地址。1 J5 K- c" H" l  r+ t& x9 `) N
3 [8 I) P* A5 Y9 v1 `) z
查看虚拟机所在节点
  [7 j/ B# c' K2 o$ a! L
1 J* q7 J1 O! M" [& I0 j1 onova list--all |grep qos9 z& H" K2 d+ ?6 z7 z2 i9 Q3 w
( K8 K( N6 H& j3 ~
nova show b40056c3-b9ce-4031-8125-96a7a79f74a2
- `: r& R2 q& z( j( j. C# |+ o1 F5 ?. l; [) g; ]+ a/ b
可以看到qosvm1虚拟机在sr-computer-27计算节点上1 t: V' m( M/ ^8 ?( ?. O
* n6 G2 ?, @9 e  T& E7 s' n5 L; `

8 v. y( E! g/ r  L& z登录到sr-computer-27计算节点上,查看网络对应的网桥和虚拟机网卡tap设备号(neutron中一个网络对应物理机上的一个网桥,虚拟机网卡对应网桥上一个tap设备)。& H. s, H6 [! j; i; ?

% r0 @, ~! ]& T; V9 @neutron net-list |grep t2cloud_net1
, U( A! c# u" N, X' k+ F/ O7 V5 m0 [, K  \  W" R  x* Q
brutl show7 @1 v2 A7 k3 b4 `' P

) S0 c2 t8 L% A9 D
1 K+ K( J8 z. X% Z( z查询路由器所在物理节点7 x6 J4 [: }: k$ E

6 ^) X0 @( J3 V* f! S5 U9 J; zneutron router-list|grep router
# p1 O: }/ \1 h' T! c
0 y# B) R( J6 [$ r# wneutron l3-agent-list-hosting-router 7aa3ebbe-34a3-47e8-ab06-2e7f89b6053f
5 X4 y9 q; f  Q4 o; o" u4 D, Z
$ Q# o5 y' P' j+ l% Q8 s. T, q9 m可以看到路由器在sr-compuer-28节点上: v! q9 H8 {3 ~7 F5 s; M% p

+ l5 Z) \# O! i$ p  R" a/ L& J/ B/ M" j' D3 \
qosvm2也采用上述方法来获取相关信息。
% Z. f0 l: ~0 b9 M" S) M9 I3 W  ^0 J; I( O
总结一下上面查询的结果/ p7 t, ^$ [1 B" ?; f, L. E* X/ J

" _; i* m% d( K$ Y# h; N; ~虚拟机qosvm1在计算节点sr-computer-27上,网卡对应tap设备tap9873a7ae-41,所在网络对应网桥为brq307fde1c-61,网桥出口vxlan-85。
8 i, e8 b. a) j3 L  A/ U( n, r# v6 l- o4 j; R; P6 [/ [
虚拟机qosvm2在计算节点sr-computer-32上,网卡对应tap设备tap0b55bd71-2f,所在网络对应网桥为brqf8fd20d0-e6,网桥出口vxlan-6。+ i3 @' B0 ~% w4 \; c7 x2 w

( ?1 `0 a( {3 x) Q路由器router在节点sr-computer-28(计算+网络混合节点)上,对应名称为qrouter-7aa3ebbe-34a3-47e8-ab06-2e7f89b6053f,连接net1设备为tapa64b82b1-e4,连接net2设备为tap460865e7-03,暂时不考虑dhcp服务。
2 o  T) F* y7 x' k9 p; e7 q6 q  @% ^* E; d) X
根据查询结果,以下是简化的拓扑图" O: s0 X) V4 u. M( i; H% [& V

/ M+ n# u) Z( G8 B8 V) G
7 ]/ X9 q" b1 I0 u. u* U4 j' `5 }带宽测试( U3 R  R' i7 [1 l* x/ T
qosvm1如果与qosvm2通信,需要经过网络节点上的虚拟路由来转发4 g. Q0 S4 J- r- `, ~  K* J  |0 |
" a* j$ {+ o- J; X6 j* C- b9 g
首先不做任何限制,用iperf来测试qosvm1和qosvm2之间的网络带宽,qosvm1(172.160.1.4)做client端,qosvm2(172.160.2.4)做server端。
1 K: E" u$ N5 [* Y) a" _
( Q, e) C( ?6 o% S$ A) N/ n& o在server端运行iperf -s
+ [! E3 V3 c% y$ H) n" j2 g4 R' A7 i
然后client运行 iperf -c 172.16.2.4 -i 1 -t 5 –r
2 b/ d5 K, p9 _" D" b, Q3 e  o, C0 v3 o- y: P0 @; q3 l
实际测试中可以运行更长时间,得出一个更稳定的值6 U3 ]7 y5 W, \
3 {" G, B5 V, K* Y4 r# l& b

7 L: T# V; c& _不做任何限制的情况下,qosvm1对qosvm2的上传带宽为596Mbits/sec,下载带宽为693Mbits/sec
3 J5 z9 k4 B" f- V5 M
. B+ O0 w" J2 z$ \: X对计算节点sr-computer-27 上的tap9873a7ae-41设备进行限制,限制上传带宽100Mbps,下载带宽200Mbps
2 Z; _8 k2 t2 V% W8 Y/ I
8 J6 [. x  `3 U首先创建qos策略3 ~( ~' n2 y9 Q: o7 P
/ @7 T- i5 k1 _- ~6 Q; Q
neutron qos-policy-create  --shared t2cloud_qos
) s9 ]- s3 D3 N
7 A0 F) b! G% |" R7 Z2 e, [+ P8 x% N! _/ |2 t, G
然后创建对应规则,分别限制上传带宽和下载带宽
. U3 P+ ^  B9 T3 V. [( s
/ U$ _6 O9 p8 m- |& U, p8 `neutron qos-bandwidth-limit-rule-create --max-kbps=100000 --max-burst-kbps=100000 t2cloud_qos --direction ingress/ u9 S5 `) R9 R5 v3 {. A

- g& U, S1 v) pneutron qos-bandwidth-limit-rule-create --max-kbps=200000 --max-burst-kbps=200000 t2cloud_qos
2 p6 P5 w$ O) J/ U7 o9 O+ m) {' H) }' s( l8 S; k: T! ~

# q# X# Z! [# a0 q2 {需要注意的是,端口的ingress对应虚拟机的上传带宽,egress对应虚拟机的下载带宽: i' V, {9 Y+ U2 _2 Y$ M

$ j; o5 S/ j/ o/ _6 y3 h将qos规则与虚拟机对应的port绑定
4 ^) b, c  r- E1 r$ p
) s5 I8 R% @5 S; @0 {neutron port-list |grep 172.160.1.4/ e3 E/ K9 z  ]: L+ Y
1 v" X/ i/ Z1 d; b6 Y7 N0 v
neutron port-update --qos-policy 0be11a7d-97e3-4dd9-a74e-616e7bdf65c99873a7ae-41ad-4b30-8c3e-1167a7e1c3bd& n- }, h/ `5 i( Z4 K

9 [2 n  ^# w. ^2 i. rneutron port-show 9873a7ae-41ad-4b30-8c3e-1167a7e1c3bd( D' Z' u0 Z( ?/ Z. I

+ M& W3 U" P% K" T- D% P/ N. |# w/ \+ W
因为neutron 的qos最终是通过linux tc来实现。可以使用tc命令查看设置是否生效( l1 Q2 `5 C; A* y+ L$ m" D

) S& p$ H, ]# ?' Ctc qdiscshow dev tap9873a7ae-41
$ k$ Y" |' B- ^
0 I1 y9 [+ [0 e' l1 ^' _$ itc filtershow dev tap9873a7ae-41 parent ffff:
" }5 e$ r+ B2 ^: [8 X+ A  h9 H3 f0 _' O. `2 c
9 E6 s4 l3 h, L8 t) M
再次用iperf测试带宽5 C6 ?+ K# K9 K! W8 N
) _+ ]) v- Z7 c# _- D* X/ s
可以看出,稳定值基本限制在qos限制的范围内
( L. q! }# ]. o9 e1 H
  {0 B& |1 B0 l' T) i测试总结- m. ^( Q/ I9 j% _, r- l/ |
以上测试了qos中最简单的场景,通过限制虚拟机网卡对应tap设备来限制虚拟机之间的通信带宽,过程中有过一些困惑和问题,现总结如下:
4 z1 G* t8 f/ ?0 \7 R! v4 g  [; @
- u* L, k) x* FIperf使用tcp测试带宽,短时间内的数据不是特别准确,特别是带宽上限的测试,因此尽可能测试时间长点,得出一个稳定的带宽值: g- D  Z; \$ q. O0 m; \; r6 n- y
( a+ X  B: c9 \& M+ G
关于max-kbps和max-burst-kbps的理解,max-kbps比较容易理解,就是最大带宽,max-burst-kbps在tc里面会转成字节单位burst,指的是令牌桶的大小,如果桶中有多余的令牌,允许短暂的突发流量通过,也就是说令牌桶越大,也就允许更多的突发流量通过。. E: |0 Z6 {9 C7 s9 i

2 ]# F5 e7 G4 zneutron还可以对一个网络设置qos1,这样所有创建在该网络下的虚拟机都会使用该qos1,如果对虚拟机再单独设置qos2,那么对于该虚拟机来说,只有qos2生效。目前对网络设置的qos只会作用于虚拟机对应的port,不会影响其他port(例如dhcp)。
: N1 [( [5 s' H# }/ X& y; g
& N9 c, W! W  w3 e' M4 _1 F. F& r; V7 |% Z0 p: H' a( D
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 00:02 , Processed in 0.049266 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表