NVMe Z1 Pool - best practice ? Ultra slow writes

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
I've setup an ESXi with FreeNas.
Now I got 4 NVMe drives, which I passed to the freenas VM.
The performance is, well I would expect the same performance out of a floppy Z1 volume..
So clearly I missed some tuning and setup.
Are there guidelines, I couldn't find any, for NVMe pools?

Using 4 of those: TS1TMTE220S mounted to a card with a PCIe Switch. So maximum bandwidth is limited to x8 for all 4.
I don't see any errors within freenas or the log.
As a little reference I've tested the 4 SSDs with the card together with windows server 2019 and build a Storage Spaces pool with one drive parity and ReFS as file system.. with that setup I was able to get nearly the bandwidth of the PCIe x8 3.0..

Thus I spend some time googling for best practice for NVMe pools but didn't find anything.
 

Attachments

  • Untitled.jpg
    Untitled.jpg
    319.7 KB · Views: 282
  • Untitled2.jpg
    Untitled2.jpg
    233.7 KB · Views: 270
Last edited:

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703
With a Z1 pool, you're going to expect the IOPS of only a single NVME, so the way you're testing with tiny (512b) IO, is bringing that limitation to the front.

With that single NVME also in contention to write at the same time as the other 3 with the limited PCIe lanes, I'm not surprised to see IO is significantly worse than would be possible with 16 available lanes (and hence no contention).

I'm also not surprised to see nothing in the logs of FreeNAS about that, it's handled by the Chipset as far as I understand, so as long as the IO gets to the card eventually, there's nothing to report.

What do you get from a pool of 1 NVME? also for a striped pair? (and just for fun stripe all 4)
 

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
well I would be happy with 1/4 of the IO of a single NVMe.. as you can see from the test above it's way below.
Further more I had tested the card with the drives storage spaces and ReFS... that's as close as it could come to comparable to ZFS Z1.
Additionally as you could see it varies from test to test to way slower than an single 5.9k HDD...
will test with single drive and report back

tested as suggested by @sretalla with stripes see below. no real performance impact.
while still best outcome is with 2 drives
 

Attachments

  • stripe test.jpg
    stripe test.jpg
    260.7 KB · Views: 284
Last edited:

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
Digging further I noticed if I use large files with the stripe test. only tested with 4. performance will break down.
for insanity check I removed the nvme devices from the vm and attached them to the host. Than I created 4 vm datastores and put on each a single vmdk attached to the freenas. just thin provisioned for a quick test.
I've noticed to so good performance with that test but way better and more consistent than with freenas. noticed the bumps in write speed during the test from taskmgr. I assume the statement the nvme are fighting over bandwidth might be right.

I assume I need 2 x8 cards for 2 nvme each only so bandwidth is there.
 

Attachments

  • stripe test4drives_large_testfile.jpg
    stripe test4drives_large_testfile.jpg
    126.7 KB · Views: 242
  • vmdk_z1_test.jpg
    vmdk_z1_test.jpg
    295.4 KB · Views: 249

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
I did some changes to the ESXi and upgraded from 6.5 to 6.7.
Went for a Z1 with the 4 NVMe drives and tested prior to upgrade and later.
results are strange. As both times hardware is passed to the VM.
upgraded FreeNAS to TureNAS and run the test with 6.5 and again with 6.7

Performance is at least now consistent but slow..
 

Attachments

  • 65vs67.png
    65vs67.png
    82.9 KB · Views: 233

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
Don't do RAIDZn for block storage.
 

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
Fun fact.
There is no difference between RAIDz1 and mirrors regarding performance.
 
Last edited:

Patrick M. Hausen

Hall of Famer
Joined
Nov 25, 2013
Messages
7,776
I should have read the whole thread, sorry.
 

HoneyBadger

actually does care
Administrator
Moderator
iXsystems
Joined
Feb 6, 2014
Messages
5,112
Another user had some issues with interrupts using PLX-based PCIe switches with NVMe devices. The FreeBSD drivers might not be as performant as the Windows or Linux based solutions.


The use of PLX also impacts latency which will show up at small records as well.


Adding ESXi/vSphere into the mix could certainly be adding complexity/bottleneck points too.
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703
Adding ESXi/vSphere into the mix could certainly be adding complexity/bottleneck points too.
Since TrueNAS runs off a USB stick, giving that a direct hardware test would be an interesting (and not costing a lot) exercise.
 

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
Yeah can do probably later the week.
 

Herr_Merlin

Patron
Joined
Oct 25, 2019
Messages
200
Tested.
So it comes down to BSD having bad drivers for the PCIe switchs or something like that.
If I insert a single NVMe into a PCIe x8 Slot with an add-on card without a PLX I get the same performance as while using Windows Server with PLX between the SSDs and the OS.
Issue is this old board is unable to run PCIe bifurcation as Supermicro never released a fixed bios for this X9 Board..
 
Top