hw.ibrs_disable=1net.isr.maxthreads=-1net.isr.bindthreads = 1net.isr.dispatch = deferrednet.inet.rss.enabled = 1net.inet.rss.bits = 6kern.ipc.maxsockbuf = 614400000net.inet.tcp.recvbuf_max=4194304net.inet.tcp.recvspace=65536net.inet.tcp.sendbuf_inc=65536net.inet.tcp.sendbuf_max=4194304net.inet.tcp.sendspace=65536net.inet.tcp.soreceive_stream = 1net.pf.source_nodes_hashsize = 1048576net.inet.tcp.mssdflt=1240net.inet.tcp.abc_l_var=52net.inet.tcp.minmss = 536kern.random.fortuna.minpoolsize=128net.isr.defaultqlimit=2048
How are your numbers with OPNsense on bare metal?
1) try your tunable BUTnet.inet.rss.enabled = 0
root@OPNsense:~ # iperf3 -s-----------------------------------------------------------Server listening on 5201 (test #1)-----------------------------------------------------------Accepted connection from 172.16.1.90, port 50532[ 5] local 172.16.1.80 port 5201 connected to 172.16.1.90 port 50533[ ID] Interval Transfer Bitrate[ 5] 0.00-1.00 sec 232 MBytes 1.94 Gbits/sec[ 5] 1.00-2.00 sec 172 MBytes 1.44 Gbits/sec[ 5] 2.00-3.00 sec 162 MBytes 1.36 Gbits/sec[ 5] 3.00-4.00 sec 154 MBytes 1.29 Gbits/sec[ 5] 4.00-5.00 sec 138 MBytes 1.16 Gbits/sec[ 5] 5.00-6.00 sec 138 MBytes 1.15 Gbits/sec[ 5] 6.00-7.00 sec 156 MBytes 1.30 Gbits/sec[ 5] 7.00-8.00 sec 127 MBytes 1.06 Gbits/sec[ 5] 8.00-9.00 sec 134 MBytes 1.13 Gbits/sec[ 5] 9.00-10.00 sec 165 MBytes 1.38 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 1.54 GBytes 1.32 Gbits/sec receiver
-----------------------------------------------------------Server listening on 5201 (test #2)-----------------------------------------------------------Accepted connection from 172.16.1.90, port 51523[ 5] local 172.16.1.80 port 5201 connected to 172.16.1.90 port 51524[ ID] Interval Transfer Bitrate[ 5] 0.00-1.00 sec 1000 MBytes 8.39 Gbits/sec[ 5] 1.00-2.00 sec 1.09 GBytes 9.41 Gbits/sec[ 5] 2.00-3.00 sec 1.09 GBytes 9.40 Gbits/sec[ 5] 3.00-4.00 sec 1.09 GBytes 9.40 Gbits/sec[ 5] 4.00-5.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 5.00-6.00 sec 1.09 GBytes 9.39 Gbits/sec[ 5] 6.00-7.00 sec 1.09 GBytes 9.39 Gbits/sec[ 5] 7.00-8.00 sec 1.10 GBytes 9.40 Gbits/sec[ 5] 8.00-9.00 sec 1.09 GBytes 9.41 Gbits/sec[ 5] 9.00-10.00 sec 1.09 GBytes 9.41 Gbits/sec[ 5] 10.00-10.00 sec 2.12 MBytes 8.80 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 10.8 GBytes 9.30 Gbits/sec receiver
-----------------------------------------------------------Server listening on 5201 (test #3)-----------------------------------------------------------Accepted connection from 172.16.1.90, port 51553[ 5] local 172.16.1.80 port 5201 connected to 172.16.1.90 port 51554[ ID] Interval Transfer Bitrate[ 5] 0.00-1.00 sec 238 MBytes 2.00 Gbits/sec[ 5] 1.00-2.00 sec 182 MBytes 1.53 Gbits/sec[ 5] 2.00-3.00 sec 73.8 MBytes 617 Mbits/sec[ 5] 3.00-4.00 sec 108 MBytes 910 Mbits/sec[ 5] 4.00-5.00 sec 151 MBytes 1.26 Gbits/sec[ 5] 5.00-6.00 sec 148 MBytes 1.24 Gbits/sec[ 5] 6.00-7.00 sec 153 MBytes 1.28 Gbits/sec[ 5] 7.00-8.00 sec 152 MBytes 1.28 Gbits/sec[ 5] 8.00-9.00 sec 171 MBytes 1.43 Gbits/sec[ 5] 9.00-10.00 sec 151 MBytes 1.27 Gbits/sec[ 5] 9.00-10.00 sec 151 MBytes 1.27 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-10.00 sec 1.51 GBytes 1.30 Gbits/sec receiveriperf3: the client has terminated
3) AND I see you have 4 SOCKETS 1 COREAND I THINK maybe you meant 1 SOCKET 4 CORES with your E3-1275V5SOCKET = CPU SOCKET - you have 1 E3-1275V5? RightCORE= Number of cores available for the VM including your VirtIO Hardware. Maybe you are CPU throtelling ? Even if you had 4 sockets, it would not be a good thing to multihread with different CPUs, maybe the is a use case i don't know out there Client Settings for Proxmoxagent: 1balloon: 0boot: order=scsi0;ide2;net0cores: 2cpu: host,flags=+aesefidisk0: local-lvm:vm-110-disk-0,efitype=4m,pre-enrolled-keys=1,size=16Ghostpci1: 0000:05:00,pcie=1,rombar=0 ##>> PCI pass through for WAN Interfaceide2: none,media=cdrommachine: q35memory: 3072name: opnsnsenet0: virtio=99:99:YY:XX:XX:XX,bridge=vmbr0,queues=4 ##Standard queue is 1 parallel streamnet2: virtio=99:99:YY:XX:XX:XX,bridge=vmbr10,queues=4 ##Standard queue is 1 parallel streamnuma: 0onboot: 1ostype: l26scsi0: local-lvm:vm-123-disk-0,size=16Gscsihw: virtio-scsi-pcismbios1: uuid=xxyyzz #your personal (SeaBIOS)sockets: 1startup: order=1,up=1vmgenid: xxyyzz #your personal4) Try deactivating IPS / IDS for testingService -> Intrusion Detection _-> Settings[ ] Enabled #unchecked[ ] IPS mode #unchecked
Looking at your mentioned tunables I can see you already applied them from most likelyhttps://binaryimpulse.com/2022/11/opnsense-performance-tuning-for-multi-gigabit-internetso it seems you already did some research Did you also take a look at the Performance tuning for IPS maximum performance thread on the Intrusion Detection and Prevention section of this forum?Some useful information is being mentioned there as well. I personally have seen big improvements with the Flow Control tunable, but your mileage may vary of course.https://forum.opnsense.org/index.php?topic=6590.0
The dropping of speed points to something that is likely not software. You use X520-DA2, but with what SFP+ module attached to it? Optical, Ethernet or DAC? Ethernet can get very hot... is there a drop on the interface speed? I had problems with Cat.5 cables when they were too long. Turned out to be the Cat.5 jacks, not the cabling itself.
> iperf3 -c 172.16.1.221 -p 5201 -t 30Connecting to host 172.16.1.221, port 5201[ 5] local 172.16.1.90 port 50331 connected to 172.16.1.221 port 5201[ ID] Interval Transfer Bitrate[ 5] 0.00-1.00 sec 1.06 GBytes 9.15 Gbits/sec[ 5] 1.00-2.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 2.00-3.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 3.00-4.00 sec 1.09 GBytes 9.41 Gbits/sec[ 5] 4.00-5.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 5.00-6.00 sec 1.09 GBytes 9.33 Gbits/sec[ 5] 6.00-7.00 sec 1.09 GBytes 9.39 Gbits/sec[ 5] 7.00-8.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 9.00-10.00 sec 1.09 GBytes 9.40 Gbits/sec[ 5] 10.00-11.00 sec 1.09 GBytes 9.40 Gbits/sec[ 5] 11.00-12.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 12.00-13.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 13.00-14.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 14.00-15.00 sec 1.09 GBytes 9.40 Gbits/sec[ 5] 15.00-16.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 16.00-17.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 17.00-18.00 sec 1.06 GBytes 9.12 Gbits/sec[ 5] 18.00-19.00 sec 302 MBytes 2.53 Gbits/sec[ 5] 19.00-20.00 sec 241 MBytes 2.02 Gbits/sec[ 5] 20.00-21.00 sec 397 MBytes 3.33 Gbits/sec[ 5] 21.00-22.00 sec 640 MBytes 5.37 Gbits/sec[ 5] 22.00-23.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 23.00-24.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 24.00-25.00 sec 530 MBytes 4.44 Gbits/sec[ 5] 25.00-26.00 sec 379 MBytes 3.18 Gbits/sec[ 5] 26.00-27.00 sec 1.02 GBytes 8.72 Gbits/sec[ 5] 27.00-28.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 28.00-29.00 sec 1.10 GBytes 9.41 Gbits/sec[ 5] 29.00-30.00 sec 1.08 GBytes 9.30 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 5] 0.00-30.00 sec 28.5 GBytes 8.17 Gbits/sec sender[ 5] 0.00-30.00 sec 28.5 GBytes 8.17 Gbits/sec receiveriperf Done.
> iperf3 -c truenas -p 5201 -t 30Connecting to host truenas, port 5201[ 7] local 172.16.1.90 port 50664 connected to 172.16.1.10 port 5201[ ID] Interval Transfer Bitrate[ 7] 0.00-1.00 sec 1.10 GBytes 9.42 Gbits/sec[ 7] 1.00-2.00 sec 1.09 GBytes 9.37 Gbits/sec[ 7] 2.00-3.00 sec 1.09 GBytes 9.41 Gbits/sec[ 7] 3.00-4.00 sec 1.08 GBytes 9.30 Gbits/sec[ 7] 4.00-5.00 sec 1.08 GBytes 9.26 Gbits/sec[ 7] 5.00-6.00 sec 1.09 GBytes 9.39 Gbits/sec[ 7] 6.00-7.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 7.00-8.00 sec 1.09 GBytes 9.40 Gbits/sec[ 7] 8.00-9.00 sec 1.09 GBytes 9.36 Gbits/sec[ 7] 9.00-10.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 10.00-11.00 sec 1.09 GBytes 9.37 Gbits/sec[ 7] 11.00-12.00 sec 1.09 GBytes 9.38 Gbits/sec[ 7] 12.00-13.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 13.00-14.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 14.00-15.00 sec 1.09 GBytes 9.39 Gbits/sec[ 7] 15.00-16.00 sec 1.08 GBytes 9.28 Gbits/sec[ 7] 16.00-17.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 17.00-18.00 sec 1.09 GBytes 9.41 Gbits/sec[ 7] 18.00-19.00 sec 1.09 GBytes 9.38 Gbits/sec[ 7] 19.00-20.00 sec 1.09 GBytes 9.35 Gbits/sec[ 7] 20.00-21.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 21.00-22.00 sec 1.09 GBytes 9.38 Gbits/sec[ 7] 22.00-23.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 23.00-24.00 sec 1.09 GBytes 9.40 Gbits/sec[ 7] 24.00-25.00 sec 1.10 GBytes 9.42 Gbits/sec[ 7] 25.00-26.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 26.00-27.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 27.00-28.00 sec 1.09 GBytes 9.39 Gbits/sec[ 7] 28.00-29.00 sec 1.10 GBytes 9.41 Gbits/sec[ 7] 29.00-30.00 sec 1.10 GBytes 9.41 Gbits/sec- - - - - - - - - - - - - - - - - - - - - - - - -[ ID] Interval Transfer Bitrate[ 7] 0.00-30.00 sec 32.8 GBytes 9.38 Gbits/sec sender[ 7] 0.00-30.00 sec 32.8 GBytes 9.38 Gbits/sec receiveriperf Done.
There is an issue with BSD here, either with the X520 interface, or something else within the OS. I will test the other interface cards when they arrive to see if they can improve the stability. There is still an issue with OPNsense here though where it is 20% the speed out of the box with the 10g interfaces then its FreeBSD base OS.