大头吃小头 发表于 2023-9-15 19:49

折腾sriov的时候发现个诡异的问题

最近挂网心云发现cpu占用太高想着开着sriov可以降低一点cpu占用

网上找了个教程,却发现开启失败,我很疑惑我的x550明明是支持的啊,是哪步出错了呢

教程都有个修改/sys/class/net/(网卡设备名称)/device/sriov_numvfs 这个步骤

我复制好改好教程之后重启发现啥都没发生....


然后查看了一下/sys/class/net/下的目录,发现个诡异的事情

我的网卡设备名不见了 多了十二个不知道啥东西(之前的教程曾经尝试创建过12个不叫这名的虚拟网卡正确的网卡名字在主机的设备里可以看到)

还能救一救嘛,目前设备运行还是正常,就是三块硬盘频繁启动我怕他出事就暂时没敢再试了

summerq 发表于 2023-9-15 19:53

用如下命令看一下pcie设备
lshw -businfo -c netwrok

summerq 发表于 2023-9-15 19:57

summerq 发表于 2023-9-15 19:53
用如下命令看一下pcie设备
lshw -businfo -c netwrok

老饭 发表于 2023-9-15 20:41

virtual function就是sriov的虚拟网卡。不过sriov好像跟cpu占用率没啥关系

大头吃小头 发表于 2023-9-15 20:43

summerq 发表于 2023-9-15 19:57


这个命令pve里好像没有,我手动用包管理器安装之后 一个设备都没显示出来

大头吃小头 发表于 2023-9-15 20:47

summerq 发表于 2023-9-15 19:57


后续我简化了一下命令能显示了

您给看看,就很奇怪

我网卡是已经挂载给ikuai了,是这个原因不显示的吗

大头吃小头 发表于 2023-9-15 21:09

我好像明白了,那些莫名其妙的网卡文件是我虚拟机的虚拟网卡.....

ksong 发表于 2023-9-15 22:11

本帖最后由 ksong 于 2023-9-15 22:23 编辑

可能看的老教程,或者你amdcpu,在grub里面的用了intel的参数?

大头吃小头 发表于 2023-9-15 22:22

ksong 发表于 2023-9-15 22:11
你看错教程了

大佬有没有好用的教程?

我查看了一下在pve里 8-13行是有东西的

并且pci那里是有sriov的

应该能开启,但是按照几个教程的来搞,第一个是会报错,第二个无事发生,都找不到vf设备

天道太酬勤 发表于 2023-9-15 22:24

建议用脚本把MAC地址固定下来,只改vf数量的话,MAC会跳变

ksong 发表于 2023-9-15 22:25

大头吃小头 发表于 2023-9-15 22:22
大佬有没有好用的教程?

我查看了一下在pve里 8-13行是有东西的


lshw -businfo -c NETWORK 结果看(ps:network大写),你的550并没有开启sriov

天道太酬勤 发表于 2023-9-15 22:26

老饭 发表于 2023-9-15 20:41
virtual function就是sriov的虚拟网卡。不过sriov好像跟cpu占用率没啥关系

设计出来就是为了降低CPU和内存占用率,提高IO的

iooo 发表于 2023-9-15 22:45

sriov要求还是比较高的,各种软硬件的兼容都必须做到

大头吃小头 发表于 2023-9-15 22:46

ksong 发表于 2023-9-15 22:25
lshw -businfo -c NETWORK 结果看(ps:network大写),你的550并没有开启sriov

那么大佬这个怎么开启呢?

去BIOS开吗?

我查到的教程是写个服务注册进去,我照着写了开机闪红字报错,然后啥事都没发生

summerq 发表于 2023-9-15 22:46

ksong 发表于 2023-9-15 22:25
lshw -businfo -c NETWORK 结果看(ps:network大写),你的550并没有开启sriov

是的 没开起来

大头吃小头 发表于 2023-9-15 22:55

ksong 发表于 2023-9-15 22:11
可能看的老教程,或者你amdcpu,在grub里面的用了intel的参数?

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"


我的grub里是这么写的,应该没啥问题吧,我的6600都已经直通了.....

大佬有可以参考的教程吗?

summerq 发表于 2023-9-15 22:57

本帖最后由 summerq 于 2023-9-15 23:01 编辑

大头吃小头 发表于 2023-9-15 22:55
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction ...

我给你个开启的教程吧。你修改这个脚本即可。
0. 首先grub里开启iommu,编辑 /etc/default/grub,内容如下。之后更新grub并且重启: update-grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="intel_pstate=disable amd_iommu=on iommu=pt mitigations=off"
GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX pci=assign-busses pcie_acs_override=downstream,multifunction pci=noaer"

1. 创建一个文件 /etc/init.d/net-sriov
其中enp2s0f0要根据你的x550两个网口的名称进行修改。mac地址也可以改掉。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          sriov_script
# Required-Start:    $network $named $remote_fs $syslog $sriov_scripts
# Required-Stop:   $remote_fs $sriov_scripts
# Default-Start:   2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SR-IOV initialization.
#Description:       Initializing VM's network with sriov support.
### END INIT INFO

start () {
    # enable SRIOV
    # 8 vf for LAN
    echo 8 > /sys/class/net/enp2s0f0/device/sriov_numvfs

    # 2 vf for WAN
    # echo 2 > /sys/class/net/enp2s0f1/device/sriov_numvfs
    # sleep 2

    # set up mac addresses
    ip link set dev enp2s0f0 vf 3 trust on mac 20:00:11:01:02:00 spoofchk off
    ip link set dev enp2s0f0 vf 1 trust on mac 20:00:11:01:02:01 spoofchk off
    ip link set dev enp2s0f0 vf 2 trust on mac 20:00:11:01:02:02 spoofchk off
    ip link set dev enp2s0f0 vf 0 trust on mac 20:00:11:01:02:03 spoofchk off
    ip link set dev enp2s0f0 vf 4 trust on mac 20:00:11:01:02:04 spoofchk off
    ip link set dev enp2s0f0 vf 5 trust on mac 20:00:11:01:02:05 spoofchk off
    ip link set dev enp2s0f0 vf 6 trust on mac 20:00:11:01:02:06 spoofchk off
    ip link set dev enp2s0f0 vf 7 trust on mac 20:00:11:01:02:07 spoofchk off

    # setup wan mac addresses
    # ip link set dev enp2s0f1 vf 0 trust on mac 20:00:11:88:88:01 spoofchk off
    # ip link set dev enp2s0f1 vf 1 trust on mac 20:00:11:88:88:02 spoofchk off

    # turn off HT for cores 5,6,7, reserved for DPDK
    # echo 0 > /sys/devices/system/cpu/cpu13/online
    # echo 0 > /sys/devices/system/cpu/cpu14/online
    # echo 0 > /sys/devices/system/cpu/cpu15/online
}

stop () {
    [ "$READ_INTERFACES" != "no" ] && network_interfaces ifdown
}

case $1 in
    start)
      start
      ;;
    stop | force-stop)
      stop
      ;;
    *)
      echo "Usage: $0 {start|stop}" >&2
      exit 1
      ;;
esac

exit 0

2. 给与此文件可执行属性
chmod +x /etc/init.d/net-sriov

3. 添加默认systemd启动
systemctl enable net-sriov

4. 重启看效果。别问我是谁,我就是步步高点读机[恶魔]

大头吃小头 发表于 2023-9-15 23:17

summerq 发表于 2023-9-15 22:57
我给你个开启的教程吧。你修改这个脚本即可。
0. 首先grub里开启iommu,编辑 /etc/default/grub,内容如 ...

感谢大佬[傻笑]

summerq 发表于 2023-9-15 23:26

大头吃小头 发表于 2023-9-15 23:17
感谢大佬

最后要注意的是看一下有无这个文件,如果没有就说明网卡不支持sriov。
sriov_numvfs

大头吃小头 发表于 2023-9-15 23:52

summerq 发表于 2023-9-15 23:26
最后要注意的是看一下有无这个文件,如果没有就说明网卡不支持sriov。
sriov_numvfs ...

是这样的,我现在一楼那个路径里到net那个文件夹里就没有我的网卡设备名称了(enp6s0

所以我有点奇怪

afyr 发表于 2023-9-16 00:39

大头吃小头
后续我简化了一下命令能显示了

您给看看,就很奇怪

我网卡是已经挂载给ikuai了,是这个原因不显 ...

ikuai不支持sriov

fangl2002 发表于 2023-9-16 00:46

主板要支持,网卡要支持,系统要支持~一堆的要支持,我都折磨到把主板搞坏了,新换的主板居然不支持了,行吧,就这样吧。

大头吃小头 发表于 2023-9-16 00:54

fangl2002 发表于 2023-9-16 00:46
主板要支持,网卡要支持,系统要支持~一堆的要支持,我都折磨到把主板搞坏了,新换的主板居然不支持了,行 ...

可太惨了[困惑]

aaronlong 发表于 2023-9-16 08:14

马克一下,这里有高手出没。。。

tyy474 发表于 2023-9-16 08:16

网心不是因为你桥接消耗cpu是因为它里面自己在干别的计算,我挂了那么多家,没有哪家说传输数据会把cpu吃得那么多,以前有人进去检查过,也有人爆料过,它自己在里面除了跑数据还在运算或者说是挖

vvvsrx 发表于 2023-9-16 10:19

本帖最后由 vvvsrx 于 2023-9-16 10:20 编辑

爱快支持sriov的网卡,但是一旦使用upnp就失效了....无论是intel还是bcm我都试过了....有点莫名其妙...
如果你是NAT1就无所谓upnp了
还有一点,爱快不支持vlan pppoe,搞得我没办法把数据压力转移到交换机,真的拉~

大头吃小头 发表于 2023-9-16 13:52

vvvsrx 发表于 2023-9-16 10:19
爱快支持sriov的网卡,但是一旦使用upnp就失效了....无论是intel还是bcm我都试过了....有点莫名其妙...
如果 ...

非高峰期也是100%占用啊 不知道在跑啥,一天只有几毛钱我都怀疑能不能赚回来电费……CPU有负载的情况下怎么也得一百来瓦了

vvvsrx 发表于 2023-9-16 14:18

大头吃小头 发表于 2023-9-16 13:52
非高峰期也是100%占用啊 不知道在跑啥,一天只有几毛钱我都怀疑能不能赚回来电费……CPU有负载的情况下 ...

我是12500跑的.....一台机器一根宽带,一共3根宽带,没用sriov,cpu常年60%把...不过我不是网心,是小公司,一根200M上行,工作日4-7块,节假日7-11块....我觉得还行...

牡鹿 发表于 2023-9-17 01:04

esxi7.0亲测X550网卡插在第二条PICE插槽可以开sriov,插在第一条PCIE就无法开sriov,两块主板都是这样的情况,B365跟Z390

naoki66 发表于 2023-10-20 17:02


root@pve12:/etc/init.d# systemctl enable net-sriov
net-sriov.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable net-sriov

实在搞不定重装后,这个命令无法执行。

换到https://blog.csdn.net/Jackykxy/article/details/120585563这个教程
cd /etc/systemd/system
vi sriov.service
开机回卡红色报错, Failled to Strart sriov.service --- Script to enable SR-IOV on boot
但进系统后lspci又能看到PF存在
页: [1] 2
查看完整版本: 折腾sriov的时候发现个诡异的问题