设为首页 收藏本站
查看: 1485|回复: 0

[经验分享] KVM虚拟机网络设备性能测试

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-8 12:22:18 | 显示全部楼层 |阅读模式
  摘要:虚拟机可以生成数种虚拟的网络设备类型,比如常见的e1000,rtl8139,纯粹虚拟化的virtio等。在加载不同的网络设备情况下,虚拟机的通讯效率如何呢?本文就是具体的测试过程和结果的记录。
  
  简介
  KVM虚拟机可以生成数种虚拟的网络设备类型,比如常见的e1000,rtl8139,纯粹虚拟化的virtio,兼容老式网卡的ne2k_pci,pcnet等。本文测试单台虚拟机在加载不同的网络设备情况下,虚拟机对外服务的通讯效率。
  测试方法
  网络通讯是一个复杂的过程,都很多外部因素影响。因此本此测试构造一个单纯的测试环境,把外部因素的影响尽量降低到最低,用简单的方法,单纯地测试虚拟网络设备的通讯效率,而且主要记录服务带宽(吞吐量)数据,其他如时延,差错等都不做考虑。
  测 试的具体方法是构造一个封闭的100M网络,两台物理主机,其中一台作为宿主机P1并安装运行一台虚拟机V,另一台作为客户机P2,运行 scp命令,用ssh的方法从主机V拷贝一个500M文件到自身硬盘。scp命令会汇总报告远程拷贝的速度,以此作为吞吐量数据记录。每次虚拟机需要关机并通过virt-manager修改虚拟网卡的类型,然后重新启动,验证虚拟网卡正确加载,scp,重复这个过程至几种主要的kvm支持的虚拟网卡类型都被测试。
  测试步骤:
  1、修改虚拟网卡类型。
  2、启动虚拟机V。
  3、登录V的控制台,分别用命令
# lspci | grep Ethernet
# ethtool -i eth0
# dmesg | grep eth0
  验证虚拟网卡是否正常加载;
  4、登录P2控制台,运行scp,从V拷贝一个500M文件到P2。
  5、记录scp报告的吞吐量数据。
  6、关闭V,重复上面过程。
  测试环境
  
DSC0000.png

  网络:如图,封闭的100M网络(很想用,也应该用千兆网络来测试,但条件不具备 DSC0001.gif ),网段为10.0.112.0/24,主机P1采用桥接模式配置IP地址。
  表1 主机P1(宿主机)配置
  CPU
  Pentium(R) Dual-Core CPU E5800 @ 3.20GHz
  Memory
  2G
  NIC
  Marvell 88E8057 PCI-E Gigabit Ethernet Controller 百兆网卡
  IP
  10.0.112.39
  OS
  CentOS6.2 x86
  表2 主机P2配置
  CPU
  Pentium(R) Dual-Core CPU E5800 @ 3.20GHz
  Memory
  2G
  NIC
  Marvell 88E8057 PCI-E Gigabit Ethernet Controller 百兆网卡
  IP
  10.0.112.38
  OS
  CentOS6.2 x86
  表3 主机V(虚拟机)配置
  CPU
  QEMU Virtual CPU version (cpu64-rhel6)
  Memory
  512M
  NIC
  根据测试变化
  IP
  10.0.112.160
  OS
  CentOS6.0 i386
  测试结果
  表4 不同的虚拟网卡的测试速度

  虚拟网卡类型
  传输速度
  网络状态
  virtio
  10.9-11.2MB/s
  稳定
  e1000
  10.8-11.2MB/s
  稳定
  rtl8139
  10.8-11.2MB/s
  稳定
  ne2k_pci
  6.5-6.7MB/s
  稳定
  pcinet
  9.1MB/s
  不稳定,85%虚拟机网卡崩溃
  VirtIO paravirtual 是 Linux 虚拟机平台上统一的虚拟 IO 接口驱动。通常主机为了让客户机像在真实环境中一样运行,需要为客户机创建各式各样的虚拟设备,如磁盘,网卡,显卡,时钟,USB 等。这些虚拟设备大大降低了客户机的性能。如果客户机不关注这些硬件设备,就可以用统一的虚拟设备代替他们,这样可以大大提高虚拟机的性能。这个统一的标准化接口在 Linux 上就是 VirtIO 。需要注意的是 VirtIO 运行在 kernel 2.6.24 以上的版本中才能发挥它的性能优势。另外KVM 项目组也发布了 Windows 平台上的 VirtIO 驱动,这样 windows 客户机的网络性能也可以大大提高了。
  Virtio/e1000/rtl8139 都达到了100M网络的理论最大值。

  附:虚拟网卡设备验证记录
  =====虚拟机网卡:virtio
# lspci | grep Ethernet
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device

# ethtool -i eth0
Cannot get driver information: Operation not supported

# dmesg | grep eth0
eth0: no IPv6 routers present

=====虚拟机网卡:e1000
# lspci | grep Ethernet
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit EthernetController (rev 03)

#ethtool -i eth0
driver: e1000
version: 7.3.21-k6-NAPI
firmware-version: N/A
bus-info: 0000:00:03.0

# dmesg | grep eth0
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
eth0: no IPv6 routers present

=====虚拟机网卡:rtl8139
# lspci | grep Ethernet
00:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)

#ethtool -i eth0
driver: 8139cp
version: 1.3
firmware-version:
bus-info: 0000:00:03.0

# dmesg | grep eth0
eth0: RTL-8139C+ at0xe1134000, 52:54:00:4f:1b:07, IRQ11
eth0: link up, 100Mbps, full-duplex, lpa 0x05E1
eth0: no IPv6 routers present

=====虚拟机网卡:ne2k_pci
# lspci | grep Ethernet
00:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)

# ethtool -i eth0
driver: ne2k-pci
version: 1.03
firmware-version:
bus-info: 0000:00:03.0

#dmesg | grep eth0
eth0: RealTek RTL-8029 found at 0xc100, IRQ 11, 52:54:00:4f:1b:07.
eth0: no IPv6 routers present

=====虚拟机网卡:pcnet
# lspci | grep Ethernet
00:03.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)

#ethtool -i eth0
driver: pcnet32
version: 1.35
firmware-version:
bus-info: 0000:00:03.0

# dmesg | grep eth0
eth0: registered as PCnet/PCI II 79C970A
eth0: link up
eth0: no IPv6 routers present

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-161865-1-1.html 上篇帖子: KVM果然很快,另请教writeback和virtio性能问题 下篇帖子: qemu-kvm 网络 手动建桥接(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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