linux – 获取virtio-net网络适配器的链接速度

前端之家收集整理的这篇文章主要介绍了linux – 获取virtio-net网络适配器的链接速度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个在vvm上使用virtio-net运行的 linux vm,我想查看链接速度.我怎样才能做到这一点?

到目前为止我尝试了什么:

# ethtool eth0
Settings for eth0:
Link detected: yes

似乎ethtool不支持virtio-net(但是?)我有debian jessie的版本3.16-1,ethtool是否支持更新版本?接缝版本6是最新版本.

# cat /sys/class/net/eth0/speed
cat: /sys/class/net/eth0/speed: Invalid argument


 # lspci | grep -iE --color 'network|ethernet'
00:12.0 Ethernet controller: Red Hat,Inc Virtio network device

  # lshw -class network
  *-network
       description: Ethernet interface
       product: Virtio network device
       vendor: Red Hat,Inc
       physical id: 12
       bus info: pci@0000:00:12.0
       logical name: eth0
       version: 00
       serial: 4e:ff:a8:bf:61:12
       width: 32 bits
       clock: 33MHz
       capabilities: msix bus_master cap_list rom ethernet physical
       configuration: broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.30.2.152 latency=0 link=yes multicast=yes
       resources: irq:10 ioport:c080(size=32) memory:febf2000-febf2fff memory:febe0000-febeffff

我找到了一个描述redhat kb中问题的链接,但不幸的是我没有订阅阅读它.

解决方法

Virtio是一个半虚拟化驱动程序,这意味着操作系统和驱动程序都知道它不是物理设备.驱动程序实际上是guest虚拟机和虚拟机管理程序之间的API,因此它的速度完全与任何物理设备或以太网标准断开连接.这是一件好事,因为这比虚拟机管理程序假装成一个物理设备并应用任意“链接速度”概念更快. VM只是将帧转储到总线上,它是处理物理设备的主机工作;不需要vm知道或关心主机物理设备的链接速度.

这样做的一个优点是
当数据包在同一主机上的2个VM之间移动时,它们可以像主机的cpu一样快地将数据包从一组内存移动到另一个内存,这里设置一个链接速度只是放入一个不需要的速度限制.

这还允许主机进行适配器组合并跨多个链路传播流量,而不需要显式配置每个VM以获得设置的全部带宽.

如果您想知道实际将数据从VM传输到更远的位置有多快,您需要使用iperf等工具进行实际吞吐量测试

猜你在找的Linux相关文章