虚拟网络的简单知识总结
摘要
现在社会, 不管是C/S架构的软件还是B/S架构的软件
以及最新的Cloud native的服务器架构.
还是大家使用的移动, 联通以及互联网电视都离不开网络
网络是现代社会的基石. 没有网络难以想象整个世界会变成什么样子.
最近学习了一些物理机, 虚拟机相关的网络. 想着简单整理总结一下.
网络不仅会影响生活和工作,对性能和产品以及延时影响也很大.
第一部分: 一个简单的结论
部分虚拟机上面的延迟与带宽:
同一个虚拟机: 延迟: 12us 带宽: 6GB/S
同一个物理机上面的虚拟机: 延迟: 50us-100us 带宽: 1.2GB/S
同一个交换机上面的虚拟机: 延迟: 60us 带宽: 120MB/S
不同园区的虚拟机: 延迟: 460us 带宽: 80MB/S
测试用的命令为:
qperf -vvs -t 60 10.24.21.30 tcp_lat
qperf -vvs -t 60 10.24.21.30 tcp_bw
第一部分: 另外一个结论
本地IP地址的结果
qperf -vvs -t 60 10.110.139.181 tcp_lat
tcp_lat:
latency = 15.2 us
msg_rate = 65.8 K/sec
loc_send_bytes = 1.98 MB
loc_recv_bytes = 1.98 MB
loc_send_msgs = 1.98 million
loc_recv_msgs = 1.98 million
rem_send_bytes = 1.98 MB
rem_recv_bytes = 1.98 MB
rem_send_msgs = 1.98 million
rem_recv_msgs = 1.98 million
本地回文地址的结果
qperf -vvs -t 60 127.0.0.1 tcp_lat
tcp_lat:
latency = 15.2 us
msg_rate = 65.8 K/sec
loc_send_bytes = 1.97 MB
loc_recv_bytes = 1.97 MB
loc_send_msgs = 1.97 million
loc_recv_msgs = 1.97 million
rem_send_bytes = 1.97 MB
rem_recv_bytes = 1.97 MB
rem_send_msgs = 1.97 million
rem_recv_msgs = 1.97 million
第一部分: 结论的总结
1. 在本机的情况下 127.0.0.1和实际IP地址其实都是一样的.
不轮是带宽和时延. 都是一致的.
不需要认为输入本机IP地址不如127.0.0.1的性能好了.
2. 本机的性能是最好的 延迟只有12us.
跨越机房的速度最慢,我这边20km左右距离的机房就产生了 400多微秒的时延.
同一个交换机上面的机器的时延大概是本机的5到10倍.
同一个物理机上面不通虚拟机的时延也是本机的5到十倍
虚拟交换机的效率虽然没有物理网线, 但是与实际交换机效果差不多.
第二部分: 网卡,网线与交换机
网卡:
网卡是设备接入互联网,公司内部网,办公网,家庭网的设备入口.
网卡有很多种类型, 无线网卡, 板载网卡,USB网卡,PCI-E网卡,光纤网卡,IB网卡
网卡的速率也有很多种, 10M 100M 1000M 等等.
网线:
网线是从传输数据的载体. 他的质量好坏一定程度决定了网络传输的效率和质量
种类: 电磁波(无线空中接口),普通网线(五六七类),电缆,光纤,IB交换网线.
传输速率: 普通的双绞线网线为例 有屏蔽和非屏蔽有 五类, 超五类,六类,超六类之分.
不同网线的速率完全不通,抗感染能力也完全不通.
交换机:
交换机作用于OSI模型里面的2-3层网络.
一层的是作为网桥来使用.一般不区分冲突域.
二次的一般称之为交换机.
三层的一般称之为路由器
交换机和路由器其实实现了分类的分发功能,只不过路由器可能更多的路由记录
交换机可以仅记录组内的mac地址和上下级线路就可以了.
交换机和路由器是企业网络里面的核心应用.
第二部分: 设备相关的性能-网卡
网卡, 网线, 交换机 在服务器没有其他压力的情况下共同来决定机器的网络性能.
网卡主要是包转发效率(CPU能力),网卡的对外的吞吐量带宽,还有跟主机接口的带宽性能功能决定
现阶段的网卡大部分采用ARM内核架构的CPU, 之前的很多采取MIPS等架构的或者是ASIC的定制CPU
网卡的CPU属于专用的设备.他可以进行封包和解包, 可以实现大于MTU大小的包的拆分和合并.
在很多内核参数的调整下可以有各种参数配置粗来.
网卡对外的吞吐量一般看起来就是 是否双工,以及网卡的速度配置 10M 100M类似的.
一般网卡的极限速度是由较大的包来算出来的, 如果使用最小的包进行传输验证,带宽会很低
另外网吧一般会有一些校验位. 所以理论上1G带宽的网络,实际传输速度可能是 100MB/S
而不是正常计算的 125MB/S
网卡主机的接口也会决定很大一部分性能.
最开始网卡是连接的南桥. 通过南桥总系统总线连接CPU.
现阶段高速网卡一般都是走PCI-E 可以直连CPU,响应速度和带宽都有了极大的提升.
服务器的CPU相应网卡一般采用中断的模式. 中断可以绑定CPU, 也可以限制中断的频率与合并中断.
网卡的CPU性能以及主机的CPU性能,还有总线的能力也共同作用下来决定网卡的极限性能.
并且通过修改内存的TCP参数,可以适当调整不同应用负载下的性能表现
第二部分: 设备相关的性能-网线
网线的质量好坏决定了集群情况下的性能表现.
无线一般采用空中接口, 延迟和电磁干扰比较严重, 对应的无线网卡需要做很多整流以及排错
虽然无线可以采用MIMO的方式来提高带宽,但是对应的网卡CPU需要进行包重组等操作
所以无线一般用于toC业务, 很少有用作toB业务的场景.
最开始的互联网曾经是用过电话线(ADSL),或者是电缆传输(与强电共线)
但是随着历史的发展逐步退出了历史舞台.
网线方面数据库中心主要采用了两种, 双绞线以及光纤.
双绞线一般用户应用服务器,带宽和延迟要求不是特别高的场景.
特点是造价便宜,弯折容忍度高.不易损坏.较为持久
但是对应的性能表现就比较差, 虽然有七类等很高级别可以实现2.5G带宽的网线
但是实际表现远远不如光纤.并且双绞线的最大长度一般为100m. 高级别的距离更低.
光纤主要分为单模和多模光纤
长距离传输,以及海底传输,一般采用光纤传输.
光纤可以达到10km以上的距离. 并且光的衰减比电信号的衰减要低的多.
延迟更低.速度更快,更加稳定.
所以数据中心上面核心交换机以及核心设备都是采用光纤连接.
但是光纤不允许弯折的太厉害.容易断并且影响数据传输正确性和效率.
除此之外还有一些铜缆, 比如IB交换机使用的, 距离短,造价高昂. 但是延迟低.性能好.
第二部分: 设备相关的性能-交换机
交换机的性能主要是看包转发率, 转发时延 ,以及背板计算能力
提供的端口是用来连接设备.
交换机这边其实分类也很多,光纤交换机. 普通交换机. 带管理的交换机等等.
非专用交换机的性能可能不是非常好.会互相影响.
专用机的参数也很重要 不是简简单单看参数就可以, 可能还是需要实测.
虽然带宽很高可能在较小的包时性能会很差
所以为了提高整体性能, 不仅需要硬件进行优化, 还需要产品进行优化.
第三部分: 虚拟网卡相关
虚拟化的种类有很多 现在最常见的就是 VMwarevSphere MSHyperV RedHatKVM
虚拟化不同 硬件情况也有不同的地方
基于我的能力考虑, 这次总结不进行网卡直通 还有 RDMA方面的总结.
这次简单进行驱动和网卡类型的情况说明.
第三部分: 虚拟网卡ESXi相关说明
ESXi创建虚拟机时可以选择多种网卡:
E1000
E1000E
VMXNET3
很明显能够看出来E1000和E1000E 实质上仅能够实现千兆 1G的带宽.
VMXNET3实质上是可以实现万兆以及更高带宽的.
通过第一部分 同一个宿主机之间网络带宽为:1.2GB就可以看的出来.
但是跨服务器因为连接了交换机. 一般情况下交换机的速度会限制网卡的性能
也就是水桶能够存储的水量是最短的一款板子来决定.
提升性能也类似, 需要修改最差的一部分, 会对产品的性能提高最多.
第三部分: 虚拟网卡ESXi相关说明
因为网卡可以选择不同,所以机器的性能表现也不是很一样.
需要注意. 部分操作系统需要安装vmtools 才可以使用 VMXNET3的网卡
并且就算有的机器可以不使用驱动就安装VMXNET3的网卡.
但是这样对虚拟化平台来收很不优雅. 容易出问题一定的性能问题.
建议直接还是用最新的驱动然后对产品来说性能较好.
第四部分: 虚拟交换机相关
通过vSphere或者是vCenter平台可以进行虚拟机的创建工作
可以选择不同的操作系统,不同的设备进行处理.
可以选择网卡, 也可以选择不同的交换机.
注意虚拟交换机是有很大的区别
虚拟化平台里面有三类虚拟交换机:
VMKernel: 主要进行宿主机服务器管理等使用
标准的虚拟交换机: 主要是承载虚拟机的运行.用来暴露虚拟机的服务出来.
分布式的虚拟交换机: 多个物理机的协同使用的虚拟交换机.
第四部分: 虚拟交换机相关
ESXi开机的时候会提示进行网络管理, 并且设置IP地址
此时输入的IP地址主要是用于进行系统管理.
但是为了简化部署. 此时ESXi也会自动创建一个VM Network 的虚拟交换机
此时虚拟机使用的网卡与管理控制台的网卡是相同的.
如果在高频率使用情况下执行虚拟机管理比如克隆或者是备份
会导致网络堵塞.
所以最好的处理方式是 VMKernel 和 VM Network 独立到不同的网卡上面来.
其实这样的话可以讲管理平面和数据平面进行拆分. 也可以将管理平面隐藏. 避免暴露宿主机的地址被人攻击.
数据碰面的网卡可以进行网络聚合来提高性能.
第四部分: 虚拟交换机相关
虚拟交换机的的配置可能也需要进行优化:
BMC IMPI需要设置一个IP地址. 最后最终的管理手段
主机的管理可以比BMC要求稍微低一些,但是如果有比较多的虚拟机CLone备份的需求
建议还是需要有一个比较高性能的网卡进行承载.
承载VM Network 所需要的网卡应该是性能最好的,并且应该是连接最佳的交换机
在增加虚拟交换机时可以增加多个网卡,但是需要注意增加的网卡,必须连接相同的网络设置.
不然会出现网络失败的情况.
网卡的性能其实有很多需要调整的地方, 比如中断绑定. 是否支持分包offload等
以及tcp 的一些内核参数.
不同的应用场景需要单独进行配置.
标签:总结,虚拟,性能,知识,带宽,网卡,交换机,虚拟机
From: https://www.cnblogs.com/jinanxiaolaohu/p/16810199.html