Slow QSFP+ iscsi performance

thiccnas

Cadet
Joined
Jan 20, 2022
Messages
5
Hello everyone, long time lurker, new poster. Through forum information i have been running Free/TrueNAS for a while without needing to post for help.

TLDR summary, when using ConnectX-3 QSFP+ dual port NIC, iSCSI is nearly unusable. When using a pair of 10gBaseT copper interfaces everything is fine. What tunable's should i be trying to get the qsfp+ nics to work properly?

System Summary:
Super Micro X10DRi-T4+ mainboard
2x Xeon E5-2620v3. (2x e5-2667v3 in route to upgrade)
This has 4 on board 10gbaseT nics that work great
384g ddr4-2133 (384gig ordered for 768g total)
2x Intel DC series SATA SSD for OS in zfs mirror.
BPN-SAS3-846EL1 24-port 4U SAS3 12Gbps single-expander backplane (all spinners here)
BPN-SAS3-826EL1 12-port 2U SAS3 12Gbps single-expander backplane (flash & scratch drives here, two empty bays)
LSI-9400 16i IT mode, two physical connections, one to each expander backplane, two open/unused connections)
Mellanox ConnectX-3 CX354A MCX354A-FCBT Dual port QSFP+ nic This one causes me problems.

ZIL Optane 280g 900p and L2-Arc Samsung NVME currently offline/not installed due to bracket issues (need lo-pro brackets to install in the current rack mount case)

Pool1: qty 12, 10tb SAS3 4kn PMR HDD, 3 drive raid-z vdev's, 4 vdevs.
Pool2: qty 12, 10tb SAS3 4kn PMR HDD, 3 drive raid-z vdev's, 4 vdevs.
Pool3: qty 2, 4tb sata, PMR hdd, mirror (scratch drive for misc high fragmentation activities)
Pool4: qty 8, 3.84tb PM1633a, SAS3 SSD, 4 drive raidz vdev, 2 vdevs.

networking: HP 5930 4 Slot chassis switch, latest firmware, 2x 8 port qsfp+ cards, 1x SFP+, 1x 10gBaseT. Appropriate HP SR4 QSFP's in switch, appropriate Finisar QSFP's in Mellanox NIC's, MPO 12 fiber cables between, links in Up/Up state.

Local NTP source with ALL devices syncing to that source.

I use this NAS in my home lab for a lot of different tasks and use cases involving CIFS/Samba, NFS, iscsi, occasional local vm's, etc. Everything was working great except for often maxing out the 10g interfaces hence the desire to upgrade to the 40g nics which I installed a week ago.

I have been struggling to figure out how to get speed from the Mellanox NIC. It doesnt seem to matter if jumbo/MTU9000 is enabled or not, flow control, hard set 40g full duplex on both ends or auto negotiate, switching PCI slots (to change the cpu they are connected to) etc etc the best i have been able to do on average is 30-40MBps on these nic's with iSCSI. i DO see some bursts up to 700-800MBps however they are very short and then drop into the low three digit KBps range. Actual throughput testing with only two VM's on spinning disk or flash, generally average out to 30-60MBps. The same test on the same VM's, using 10gBaseT are getting 200MBps each for writes, and far beyond the interface speed for reads in the 3-6GBps range. Im guessing for reads to get this high it is heavily dependent on VAAI / and cacheing magic despite sourcing my test data from /dev/urandom to create the test files Im reading/writing to therefore not just files full of zeros. Iozone exibits the same behavior 20-40MBps on qsfp, 180-200MBps on 10gBaseT for writes and faster than interface reads.

Testing from vmware hosts with qsfp+ nics and iperf3, i reliably get 34-38gbps between vmware hosts and Truenas.

MPIO / RR to either a pair of 10gBaseT or a pair of QSFP's on the mellanox card is in place and working using this configuration:
esxcli storage nmp satp rule add -s VMW_SATP_ALUA -V "TrueNAS" -M "iSCSI Disk" -P VMW_PSP_RR -O iops=1 -e "TrueNAS SATP rule"

I have positively identified that multipathing is working great within VMWare. I can also see an even load of IO on the 10gBaseT nics when stress testing.

On the QSFP nics I often see crazy levels of latency when writing, upwards of 1100ms. Same workload, same testing, same vm's might see a maximum spike of 50ms on the 10gBaseT interfaces.

I thought I might have been having some strange QPI interface issues between the CPU's but that has been ruled out moving the SAS controller and the NIC's to various PCIE ports within the case/motherboard. I thought maybe there was an issue with the old HBA so i swapped it for the 9400. That had virtually no effect on the iSCSI traffic on the mellanox cards but added ~50-100MBps to the 10tb spinner pools and the SAS SSD pool when using the onboard 10gBase-T ports so I intend to keep the 9400 within the system.

local iozone results are fair given the circumstances of the lower CPU clock rate along with the lack of L2-ARC and ZIL/SLOG. I should have the new CPU's some time next week and I'm still searching for appropriate low profile brackets for L2arc and ZIL/SLOG.

I look forward to your suggestions and input. What do I need to do with the 40g interfaces to get them to perform with iSCSI?
 

thiccnas

Cadet
Joined
Jan 20, 2022
Messages
5
Forgot to mention, this is running TrueNAS-12.0-U7. Im sure there are other things that i forgot as well to mention in my post. I will do my best to monitor the thread and answer any questions as quickly as possible.
 

Jessep

Patron
Joined
Aug 19, 2018
Messages
379
A keep skim through and didn't see if you had updated the the firmware on the Connextx-3 cards?
 

thiccnas

Cadet
Joined
Jan 20, 2022
Messages
5
I have not updated the firmware that is on the ConnectX-3 card that is in the TrueNas system. I just downloaded the firmware from mellanox/nvidia but it looks like i will need to pull the card from the nas and load up a physical machine with windows or nix to do the firmware update. For what its worth there appear to only be two firmware versions to download and both of them are from 2017 for whatever that is worth.

The QSFP cards in the VMWare hosts are 544+FLR-QSFP - 764285-B21 764737-001 within HP DL380G9 servers and they dont appear to be having any problems. They work fine when doing iscsi with the NAS on the 10gBaseT intel NIC's and all of my VM traffic is using them without any problems.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
ConnectX-3

So you have a QSFP+ 40G card. The Mellanox are second-tier cards as far as I'm concerned. They can be used to get you speeds faster than gigabit, and they're cheap, which is why some people like them for 10G, but for 40G, you really need a highly tuned card, which is the Chelsio, with Intel coming in a close second. It isn't clear to me that these are a good choice for demanding iSCSI environments. I suspect you can GET them to work better, but this may require some careful inspection of what is actually going on and where the bottleneck is.

Because you're using uncommon hardware, there is a lot less experience here available to provide insight into this. Definitely make sure you've updated the firmware. That seems to be a common sticking point with these.
 

thiccnas

Cadet
Joined
Jan 20, 2022
Messages
5
jgreco, thank you very much for chiming in! reading your replies to hundreds of other posts has answered nearly all of my other questions over the last year.

Can you help me understand why iperf3 with these mellanox cards would result in near line rate but iscsi would be different?

Could you recommend Chelsio and Intel QSFP NIC part numbers, ideally with two ports on one card and capable of half height brackets/installs?
 

thiccnas

Cadet
Joined
Jan 20, 2022
Messages
5
Would either of these cards be on your recommended list?

Ideally this one due to price if i can find the half height brackets for it:
Chelsio 110-1164-50 T580-LP-CR

Or this one (in canada so i would have to wait for the clearance through customs)
Chelsio T62100-LP-CR T6

The second one would be great for future proof to 100g, but appears to support the QSFP+ that also does 40g
sm40g-sr

 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
Well, the thing we know iXsystems to have been selling with their systems for 10G for a long time is the Chelsio T520-CR.

The cxgbe driver claims to support

The cxgbe driver supports 100Gb and 25Gb Ethernet adapters based on the
T6 ASIC:

• Chelsio T6225-CR
• Chelsio T6225-SO-CR
• Chelsio T62100-LP-CR
• Chelsio T62100-SO-CR
• Chelsio T62100-CR

The cxgbe driver supports 40Gb, 10Gb and 1Gb Ethernet adapters based on
the T5 ASIC:

• Chelsio T580-CR
• Chelsio T580-LP-CR
• Chelsio T580-LP-SO-CR
• Chelsio T560-CR
• Chelsio T540-CR
• Chelsio T540-LP-CR
• Chelsio T522-CR
• Chelsio T520-LL-CR
• Chelsio T520-CR
• Chelsio T520-SO
• Chelsio T520-BT
• Chelsio T504-BT

The cxgbe driver supports 10Gb and 1Gb Ethernet adapters based on the T4
ASIC:

• Chelsio T420-CR
• Chelsio T422-CR
• Chelsio T440-CR
• Chelsio T420-BCH
• Chelsio T440-BCH
• Chelsio T440-CH
• Chelsio T420-SO
• Chelsio T420-CX
• Chelsio T420-BT
• Chelsio T404-BT

So in theory there should be good compatibility with these options. However, I mention the T580 in particular because people here have been known to have tried it and it seems to work as expected.
 
Joined
Dec 29, 2014
Messages
1,135
So in theory there should be good compatibility with these options. However, I mention the T580 in particular because people here have been known to have tried it and it seems to work as expected.
I have 2 FreeNAS units with T580's and they work quite well for me.
 

Godfarva

Cadet
Joined
Feb 27, 2022
Messages
1
Hey Guys, I also a long time stalker, first time poster...
I wanted to toss in my two cents here as I have a somewhat identical setup and I get much better results on speed.

Here is my hardware layout.
ISCSI San:
Truenas Core 12.0-U7
Supermicro X10SRL-F Rockin a E5-2620v3
128 GB DDR4 ECC REG
LSI2008 HBA to a sas2-846-el1 backplane
ConnectX-3 CX354A MCX354A-FCBT Dual port QSFP+ (in ETH mode and NOT VPI or IB)
Intel X520 SFP+ 10Gig Nic
This "SAN" uplinks to a Cisco Nexus 3064PQ both 10g and 40g.
Then over to my ESXI 2 node cluster.

Here is what I get on my config. Simple VM (2vcpu 16GB ram) on a ISCSI share from the SAN and nothing fancy just a bunch of Spinner with now ZIL/L2ARC cache (12x 3TB Seagate constellations)

1645993624604.png


To be fair, I am not seeing any latency issues Like you are, Perhaps firmware, or do you have a partner card? I.E HP/Dell. If so it is worth researching to cross-flash them like I did, as the ones I have where originally HP PID's.

No here is my gripe, I am having issues breaking the 25Gbps threshold. I get real close 23.88Gbps but I was hoping for closer to 32-35.
Here is what I get from host to SAN

1645996123150.png
 

obsidiangroup

Dabbler
Joined
Oct 4, 2022
Messages
19
Hey Guys, I also a long time stalker, first time poster...
I wanted to toss in my two cents here as I have a somewhat identical setup and I get much better results on speed.

Here is my hardware layout.
ISCSI San:
Truenas Core 12.0-U7
Supermicro X10SRL-F Rockin a E5-2620v3
128 GB DDR4 ECC REG
LSI2008 HBA to a sas2-846-el1 backplane
ConnectX-3 CX354A MCX354A-FCBT Dual port QSFP+ (in ETH mode and NOT VPI or IB)
Intel X520 SFP+ 10Gig Nic
This "SAN" uplinks to a Cisco Nexus 3064PQ both 10g and 40g.
Then over to my ESXI 2 node cluster.

Here is what I get on my config. Simple VM (2vcpu 16GB ram) on a ISCSI share from the SAN and nothing fancy just a bunch of Spinner with now ZIL/L2ARC cache (12x 3TB Seagate constellations)

View attachment 53573

To be fair, I am not seeing any latency issues Like you are, Perhaps firmware, or do you have a partner card? I.E HP/Dell. If so it is worth researching to cross-flash them like I did, as the ones I have where originally HP PID's.

No here is my gripe, I am having issues breaking the 25Gbps threshold. I get real close 23.88Gbps but I was hoping for closer to 32-35.
Here is what I get from host to SAN

View attachment 53574
@Godfarva Did you have to make any changes to achieve these speeds? Change any tunables or anything? Im having issues even achieving these speeds using MCX354A-FCBT (in ETH mode and NOT VPI or IB). The two systems are connected via 5m DAC and ethtool shows the connection speed correct.
 
Top