VMware和VirtualBox中的网络适配器类型及虚拟网络性能优化
来源:互联网 发布:大数据产业测度 编辑:程序博客网 时间:2024/06/05 16:18
最近测试中发现虚拟机的网络性能遇到了瓶颈,于是想一探究竟,发现自己一直忽略了这块儿知识,于是做个笔记。
1.VirtualBox
eshizhan比较常用的是VirtualBox,以下简称Vbox,先从它入手:
网络适配器
查看官方文档发现,Vbox中可以模拟五种网络适配器,
AMD PCNet PCI II (Am79C970A);
AMD PCNet FAST III (Am79C973, 默认);
Intel PRO/1000 MT Desktop (82540EM);
Intel PRO/1000 T Server (82543GC);
Intel PRO/1000 MT Server (82545EM);
Paravirtualized network adapter (virtio-net).
从兼容性来讲, AMD PCNet系列兼容性好,也比较古老,Intel PRO/100系列是比较新的NIC,virtio-net一会儿讲。
从性能上来讲,新的Intel PRO/1000系列性能要比老的AMD PCNet系列要好,virtio-net要比前两者都好,因为virtio-net是专为虚拟机设计的,优化了很多,貌似出自Redhat,但这款NIC是虚拟的,而且有相对较新,因此大部分OS是不带驱动,需要配合Guest Addition中的驱动使用。 经过大概测试,使用virtio-net比默认的AMD PCNet有大约20%作用的性能提升。virtio-net比较新,以后还有很大提升空间。
网络类型
下面再谈Vbox中的网络类型,这是个老生常谈的话题,尤其是刚接触虚拟机又不熟悉网络的童鞋,个人推荐先简单看下网络方面的知识,尤其是拓扑图,很快就能搞懂。eshizhan在这里只介绍性能方面。
Bridged(桥接), Internal, Host-only这三种类型的性能几乎一样,Network Address Translation (NAT)则是性能最差的,因为功能最复杂嘛。除了Bridged和NAT模式外都不容易访问外网,因此推荐Bridged(桥接)模式。
内核驱动
这部分主要是需要在Guest启用网卡的segmentation offloading功能,默认是开启的,可以使用ethtool工具查看。
2.VMware
VMware算是虚拟机的行业老大,最近几年各种商业方案也是层出不穷
网络适配器
同样查看官方文档后发现有大概这几类,:
Vlance :其实就是AMD PCNet系列,型号为AMD 79C970 PCnet32- LANCE NICVMXNET :VMware自己开发的适用于虚拟环境的虚拟NIC
Flexible :启动时智能在前两者选择最佳NIC,默认
E1000 :Intel 82545EM Gigabit Ethernet NIC
E1000e :Intel 82574 Gigabit Ethernet NIC
VMXNET 2 (Enhanced):VMXNET改进版
VMXNET 3:VMXNET2改进版
这个毋庸置疑选择VMXNET系列最好,当然也Guest需要Vmware Tools的支持。这里补充一点,网络适配器类型的选择只针对Vmware Server级别的产品如ESX等,像Vmware Palyer,甚至大家常用的VMware Workstation中都无法通过界面选择网络适配器类型,但可以通过修改.vmx配置文件达到同样目的,
打开.vmx文件添加
ethernet0.virtualDev = "vmxnet3"
value is "vlance" or "e1000" or "vmxnet" or "vmxnet3"VMware的网络类型和内核驱动和Vbox相同
配置参数
ethernet0.numXmitBuffers = 64
3.总结
虚拟机的网络适配器都是依靠CPU去模拟,还没有类似像显卡那样利用硬件加速的技术,因此一方面通过使用为虚拟环境特殊优化过的Paravirtualized(准虚拟化)硬件驱动,另一方面通过使用如Bridged(桥接)模式,配置优化参数等方法将大部分网络IO交给物理NIC,减少CPU中断,来达到虚拟网络环境优化的目的。
P.S.
eshizhan测试发现大量并发的网络IO操作,虽然每个包不大,但可能涉及中断太多,导致虚拟网络性能下降很明显,只能达到物理NIC的30%到40%,甚至更低。如果有类似经验的朋友可以指教指教。
- VMware和VirtualBox中的网络适配器类型及虚拟网络性能优化
- VirtualBox中的虚拟网络环境设置
- VirtualBox中的虚拟网络环境设置
- VirtualBox中的虚拟网络环境设置
- VMware Workstation中虚拟网络类型
- VMware Workstation中虚拟网络类型
- VmWare VM 虚拟网卡类型及选择
- Oracle VM VirtualBox和vmware网络冲突
- VMware的使用及配置虚拟网络
- VMware Workstation的网络及虚拟编辑器
- VMware虚拟网络配置及原理
- 理解VMware Team中的虚拟网络
- Vmware中的虚拟网络 ( by quqi99 )
- vmware workstation虚拟机中的虚拟网络简介
- VirtualBOX 六种网络模式 及 虚拟网络组建
- Oracle VM Virtualbox 中的网络连接类型
- 转载:vmware 网络设置三:理解虚拟网络的类型
- vmware 网络设置三:理解虚拟网络的类型
- 面试经典(21)--最大回文
- JSP使用UrlRewriteFilter实现网站伪静态
- 第八周项目1-实现复数类中运算符的重载
- Linux中带缓冲IO和不带缓冲IO的详细说明
- 使用广播接收器
- VMware和VirtualBox中的网络适配器类型及虚拟网络性能优化
- java.lang.NoSuchMethodError解决办法,
- 深入理解Servlet线程安全问题
- 5.容器配接器和字符串
- 人生何处不相逢
- 嵌入式 hi3518c默认看门狗没有开启,uboot汇编start.s解析
- Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)
- 回文数(山东理工OJ)
- 【spark系列4】分类之SVMWithSGD