Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于terway网络性能 #12

Open
zrbcool opened this issue Apr 1, 2019 · 10 comments
Open

关于terway网络性能 #12

zrbcool opened this issue Apr 1, 2019 · 10 comments

Comments

@zrbcool
Copy link

zrbcool commented Apr 1, 2019

image
您好,最近我司计划将生产环境重建并大规模落地到基于terway的阿里云容器服务平台上,所以对网络性能做了评估,对于评估结果有几点疑问
所有的测试均为跨主机跨可用区访问
1)terway默认(未绑定弹性网卡)模式到terway默认的延时(ping 的RTT延时)测试结果最优,理论上说经过网桥转发或者hostgateway方式也会多一层转发,应该比直接主机网络栈性能有损失才对,这块不明白是为什么
2)terway默认模式到宿主机(跨可用区worker节点)的性能明显比其他场景低

麻烦大神给解答下上述两个问题的原因,谢谢

@zrbcool
Copy link
Author

zrbcool commented Apr 1, 2019

补充下测试方式,测试均基于iperf3工具测试,延时使用ping命令,
延时:ping -t 30 测试5组取平均值
PPS:kubectl run iperf3 --restart=Never --image=networkstatic/iperf3 -- -u -l 16 -b 100m -t 120 -c 172.16.38.223 -i 1 -p 16000 -A 0
吞吐量:kubectl exec -it iperf3-6f7565c65b-5wvp5 -- iperf3 -c 172.16.38.223 -t 90 -P 8 -p 16000

@BSWANG
Copy link
Member

BSWANG commented Apr 1, 2019

请问下您用的机型是什么机型,建议不要使用共享型的机型测试,因为共享型的机型本身底层网络波动就比较大,理论来说默认模式下的vpc路由方式性能是不如宿主机之间的,我们之前的测试数据也是这样的。
另外可以验证下用纯ENI的容器的性能,就是用limits: aliyun/eni=1那种方式的。

@zrbcool
Copy link
Author

zrbcool commented Apr 1, 2019

嗯嗯,后面是有计划要对ENI的容器进行一波测试对比的

@zrbcool
Copy link
Author

zrbcool commented Apr 1, 2019

请问下您用的机型是什么机型,建议不要使用共享型的机型测试,因为共享型的机型本身底层网络波动就比较大,理论来说默认模式下的vpc路由方式性能是不如宿主机之间的,我们之前的测试数据也是这样的。
另外可以验证下用纯ENI的容器的性能,就是用limits: aliyun/eni=1那种方式的。

你好,我们是为生产环境准备的,所以选择的机型是计算网络优化型,但是节点间是跨可用区的,请参考下面这个图,谢谢:
image

@BSWANG
Copy link
Member

BSWANG commented Apr 1, 2019

@zrbcool 这个机型应该是独享型的,每种模式的5次测试是穿插着测试的吗?还是分批测试的。
因为是跨可用区,受底层网络的干扰比较多,穿插着可以更好的控制变量。

@zrbcool
Copy link
Author

zrbcool commented Apr 1, 2019

@BSWANG 你好,五次测试并不是穿插测试的,是连续测试的,测试过程中也确实发现一些不稳定的情况,某个时间整体的性能都提高了这种情况,但是pod to pod这个前后不在同一天的测试中,也是性能优于其他几个场景的,后面有时间的时候我这边可以穿插的方式再测一次

@zrbcool
Copy link
Author

zrbcool commented Apr 1, 2019

@BSWANG :),另外我想了解下terway默认这种VPC路由方式的实现原理,这里没有用到VxLan或者HostGateway的方式对吗?我理解是Kubernetes创建Pods分配网络的时候,Terway的ds向VPC的路由写一条路由信息,进而把网络打平,这样理解对吗?
所以:
容器向容器:走ipvs在节点上的写路由表
容器到节点:走VPC路由?
容器到集群外ECS:走VPC路由?

以上,十分感谢

@BSWANG
Copy link
Member

BSWANG commented Apr 1, 2019

  • 向容器的流量不同主机上都是走VPC路由表
  • 容器访问主机或者外部,走主机SNAT之后通过主机的IP访问

@zrbcool
Copy link
Author

zrbcool commented Apr 2, 2019

image
在同可用区下,用我们新建的staging环境进行了一轮测试,测试的机型如下:
image
从测试的结果可以看到:
1)流入eni容器的流量:吞吐量,PPS,延时,均接近甚至超过ECS默认弹性网卡性能
2)从eni容器流出的流量:各项指标均高于terway默认模式,低于host网络,但接近ECS
默认弹性网卡性能

@zrbcool
Copy link
Author

zrbcool commented Apr 2, 2019

image
在同可用区下,用我们新建的staging环境进行了一轮测试,测试的机型如下:
image
从测试的结果可以看到:
1)流入eni容器的流量:吞吐量,PPS,延时,均接近甚至超过ECS默认弹性网卡性能
2)从eni容器流出的流量:各项指标均为最高


不同于前次测试,本次测试均为同可用区内跨主机间访问,通过两次测试发现,跨可用区的网络有一些不稳定因素不明原因,这里把跨可用区跨主机的测试结果也一并放上来,测试的机型如下:
image
测试结果如下:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants