[转帖]SR-IOV是什么?性能能好到什么程度?

sr,iov,什么,性能,程度 · 浏览次数 : 0

小编点评

**SR-IOV简介** SR-IOV是Single Root I/O Virtualization的缩写。它是一种将物理的PCI-e设备直接分配给虚拟机的方法。 **SR-IOV性能** SR-IOV可以显著提高虚拟机网络性能。测试结果表明,SR-IOV的VF网卡可以提供比虚拟网卡更高的速度。 **使用SR-IOV的步骤** 1. 打开虚拟机平台。 2. 配置SR-IOV网卡。 3. 启动虚拟机。 **SR-IOV性能提升** * 降低CPU负荷。 * 提高网络性能。 * 降低网络时延。 **结论** SR-IOV是一种非常有效的技术,可以显著提高虚拟机网络性能。它是一个在虚拟化中非常重要的技术。

正文

https://zhuanlan.zhihu.com/p/91197211

 

SR-IOV是Single Root I/O Virtualization的缩写。

在虚拟机中,一切皆虚拟。比如网卡,虚拟机看来好像有一个真实网卡,但是这个网卡是宿主机虚拟出来的硬件,也就是一堆软件代码而已,没有真实硬件。

虚拟虽然万能,但是很显然,这一堆代码是需要CPU去执行的!所以,虚拟设备的性能会随着宿主机的性能而改变,另外宿主机由于需要进行数据处理,时延等也产生了。

我们之前也提到过,VT-D这个功能可以将物理的PCI-e设备直接分配给虚拟机,让虚拟机直接控制硬件,那么就可以避开上述的问题。但是,虚拟机会独占这个直通的PCI-e设备,一台宿主机可能有成百上千个虚拟机,如果每个虚拟机都给直通一个PCI-e设备,比如网卡,那么该造什么样的主机?拥有100个物理网卡的主机?想象一下也是不太可能。

为了解决这个问题,Intel提出来SR-IOV这个东西。SR-IOV最初应用在网卡上。简单的说,就是一个物理网卡可以虚拟出来多个轻量化的PCI-e物理设备,从而可以分配给虚拟机使用。大概的框图如下:

SR-IOV是虚拟化的一个重要功能。启用SR-IOV的这个功能,将大大减轻宿主机的CPU负荷,提高网络性能,降低网络时延等。


废话少说,下面说一下我们怎么使用SR-IOV,以及SR-IOV的性能如何?

各种主流虚拟宿主机都支持SR-IOV。下面我们用VMware的ESXi平台来讲解。

SR-IOV需要软硬都支持才行。这次我们使用的硬件如下:

  • SuperMICRO X9DRL-iF主版
  • XEON E5 2687W 双CPU
  • DDR3 ECC REG 128GB 内存
  • Intel X540-T2双口万兆网卡
  • 存储若干

首先需要在BIOS打开VT-D及SRIOV支持选项,这个不细说。接下来配置ESXi。

进入ESXi硬件配置页面,找到我们需要进行配置的SR-IOV网卡。

两个网口,我们配置第一个网口为SR-IOV口。

设置虚拟VF为8个。这个网卡每个网口最大支持64个VF。

保存配置之后,重新启动ESXi,就可以看到硬件上出现了8个虚拟网卡设备。这样子我们就完成了ESXi的SR-IOV配置。

小TIPS:初次玩这些东西时,最好选用可靠的服务器平台,这些服务器平台都是经过测试支持SR-IOV的。不要选用民用主板,要不然硬件这一部分你都搞不定,可能就放弃了。


接下来,SR-IOV的性能如何呢?我们对比一下看看。

测试时使用的网络拓扑如下:

两台主机,FreeBSD 12.0和ESXi的10G网口0直连。新建一台虚拟机,Port0中的SR-IOV VF0分配给VM使用。另外,PF设置连接虚拟交换机,然后再给VM分配一个虚拟网卡,连接这个虚拟交换机。

我们将流量跑不同的路径,就可以对比出来两者的性能差异。

下图是Windows8.1虚拟机中的网卡配置,Ethernet1是vmxnet3虚拟网卡,pciPassthru0是SR-IOV的网卡。

下面是虚拟机中的网卡界面。

测试工具使用iperf3。我们在FreeBSD中启动服务端。

虚拟机中,我们先把虚拟机中SR-IOV的VF网卡禁用,先测试虚拟网卡。

2.21Gbit/sec,哦?好像成绩不怎么好?

接下来禁用虚拟网卡,启用VF网卡。看一下VF的网卡的表现:

3.21Gbits/sec

第一轮VF网卡就已经胜出!3.21Gbits VS 2.21Gbits。另外我们也可以看出,虚拟网卡的流量不怎么稳定,最快3.05G, 最慢1.96G/sec。而VF网卡的性能就很稳定了。

不过怎么10G网卡才只有这么点性能?一般来说,单线程流量是喂不饱10G网络的。我们接下来用5个线程来看看。iperf可以通过参数-P 5打开5个线程。

先看虚拟网卡的情况:

不错!变成了8.68Gbits/sec!VF网卡呢?

9.57Gbits/sec!快达到10G网卡的上限了!

当然,10G网络相比较对于1G网络来说,调优非常关键。我们这次限于篇幅这次只用缺省的参数进行测试,不能算是一次严谨的对比。

但是抛开CPU占用等情况,VF网卡已经比虚拟网卡在速度上胜出了。


如果你喜欢今后能多看到类似的文章,请看完之后点赞收藏分享,这样子我就可以有动力多写一些啦~~~

如果真的真的很喜欢,那么请赞赏!

与[转帖]SR-IOV是什么?性能能好到什么程度?相似的内容:

[转帖]SR-IOV是什么?性能能好到什么程度?

https://zhuanlan.zhihu.com/p/91197211 SR-IOV是Single Root I/O Virtualization的缩写。 在虚拟机中,一切皆虚拟。比如网卡,虚拟机看来好像有一个真实网卡,但是这个网卡是宿主机虚拟出来的硬件,也就是一堆软件代码而已,没有真实硬件。

[转帖]IO虚拟化——SR-IOV 原理

摘要: 介绍SR-IOV 的概念、使用场景、VMware 和 KVM 中的配置方法。 第一部分:虚拟化通信延迟: 第二部分:IO 虚拟化 第三部分:SR-IOV 第四部分:Intel网卡在VMware 环境 实现 SR-IOV 需要的条件和配置方法 第五部分:SR-IOV 在Red Hat Virt

【转帖】linux 调优篇 :硬件调优(BIOS配置)* 壹

一. 设置内存刷新频率为Auto二. 开启NUMA三. 设置Stream Write Mode四. 开启CPU预取配置五. 开启SRIOV六. 开启SMMU 通过在BIOS中设置一些高级选项,可以有效提升虚拟化平台性能。表1列出了TaiShan服务器和性能相关的BIOS推荐配置项。 表1 BIOS性

[转帖]linux 调优篇 :硬件调优(BIOS配置)* 壹

https://blog.csdn.net/tony_vip?type=blog 一. 设置内存刷新频率为Auto二. 开启NUMA三. 设置Stream Write Mode四. 开启CPU预取配置五. 开启SRIOV六. 开启SMMU 通过在BIOS中设置一些高级选项,可以有效提升虚拟化平台性能

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地