Dell R740XD 24xNVME - Disappointing SSD performance?

Hi all,

Long time TrueNAS user, it’s been working great for years on other machines. I’m upgrading our primary video storage server and based on a bunch of reading here in and in other forms decided to try out a Dell R740XD in 24xNVME configuration which was a pretty good deal. The specs and configuration are below.

I’m well aware of the PCIe lane limitations on the R740XD and similar 14th gen platforms which dedicate 32 lanes to the 24xNVME drives resulting in 1.33 PCIe Gen 3 lanes per drive which should be about 1.33GB/s, significantly lower than what the drives themselves are capable of (~3GB/s). Even worst case on a single drive, this should still be faster than a traditional HDD array…. Right? Not so far. Happy to be the lab monkey and document the definitive guide to making this type of project work for the next guy so bring your ideas, tweaks and tests please.

Project expectations & success criteria:

  1. Need ~40TB of raw storage so can use 2 drives for parity (2xRAIDz1 or 1xRAIDz2, data will be nightly backed up).

  2. Data will mostly consist of large compressed video files (1GB-80GB, avg is probably in the 15GB range).

  3. Would expect ~2-2.5GB/s (2x PCIe limitation) sustained write speeds over SMB or from another server via 100Gbps (replication/ssh/netcat).

  4. Would expect significantly higher read speeds given the number of drives, probably capable of saturating the 100Gbps link.

  5. Secondary use case, the machine will have 2-3 VMs/apps hosted focused on services, not much data activity.

Initial configurations:

  • BIOS configured per Dell recommendations for performance & low latency.

  • Configure TrueNAS Scale Kernel parameters to optimize for 100Gbps as recommended by Level1Techs.

  • Configure 24xNVMe drives as 2xRAIDz1 vdevs, RS=128k, compression off, sync=standard (have seen suggestions on larger record size, tested below)

  • Configure zfs primarycache=metadata per forum recommendations on pools using NVMe

Initial test results:

SMB test (128k RS):

  1. Create new dataset (RS=128k, compression off, zfs primarycache=metadata)
  2. WRITE: Copy 75GB .mkv video file to Darkstar from Workstation (Windows rock solid 1.7GB/s—this is ok)
  3. READ: Copy 75GB .mkv video file from Darkstar to Workstation (Windows rock solid at 1.3GB/s—this is sad)

SMB test (1m RS, a little better read performance):

  1. Create new dataset (RS=1m, compression off, zfs primarycache=metadata)
  2. WRITE: Copy 75GB .mkv video file to Darkstar from Workstation – Windows rock solid 1.6GB/s—no change with record size
  3. READ: Copy 75GB .mkv video file from Darkstar to Workstation – Windows rock solid at 1.84GB/s—better……, probably at the limit of 2x10Gbps)

Local ramdisk test (w/ 1m RS on nvme):

  1. Create ramdisk locally (mkdir /mnt/ramfs) + (mount -t tmpfs -o size=30G myramdisk /mnt/ramfs)
  2. READ: Use dd to copy 19GB .mkv video file from test dataset to ramdisk (dd status=progress if=/mnt/dspool/1mtest/test.mkv of=/mnt/ramfs/test.mkv bs=1m) – shows 1.3GB/s… that seems very slow……
  3. WRITE: Use dd to copy 19GB .mkv video file from ramdisk to test dataset (dd status=progress of=/mnt/dspool/1mtest/test.mkv if=/mnt/ramfs/test.mkv bs=1m) – shows 2.4GB/s… faster writes than reads? WTF?

If someone knows how to properly use fio, happy to test your suggested commands and report back. I’ve tried a bunch of different tests from various threads which result in wildly varying numbers that I’m not confident are representative at all.

So…… any ideas? The write speeds seem ok, not spectacular but ok given the PCIe limitations. The read speeds are terrible. For the level of performance this is currently providing, we might as well go back to spinning disk which I find shocking. I know there are similar systems in production out there, I’d be really surprised if this is the top performance it can provide.

Appreciate the ideas and support!
Thanks,

For reference, the current server is an R730XD “Apollo” with 12x8TB drives that manages real world SMB (multi-channel on) performance of ~1.2GB/s read and write speeds which seems great given the spinning disks.

SMB test (128k RS):

  1. Create new dataset (RS=128k, compression off, zfs primarycache=metadata)
  2. Copy 75GB .mkv video file to Apollo from Workstation (Windows ranges around 900MBs-1.3GB/s)
  3. Copy 75GB .mkv video file from Apollo to Workstation (Windows rock solid at 1.12GB/s)

Local ramdisk test:

  1. Create ramdisk locally (mkdir /mnt/ramfs) + (mount -t tmpfs -o size=30G myramdisk /mnt/ramfs)
  2. Use dd to copy 19GB .mkv video file from test dataset to ramdisk (dd status=progress if=/mnt/STORAGE96TB/test/test.mkv of=/mnt/ramfs/test.mkv bs=128k) – shows 820MB/s… that seems slow……
  3. Use dd to copy 19GB .mkv video file from ramdisk to test dataset (dd status=progress of=/mnt/STORAGE96TB/test/test.mkv if=/mnt/ramfs/test.mkv bs=128k) – shows 1.2GB/s which syncs with SMB performance

Hardware:

R740XD “Darkstar”

  • Built using the official Dell parts for 24xNVMe support
  • 2x Xeon Gold 6140s 18C/36T @ 2.3Ghz
  • 256GB Ram
  • 100Gbps ConnectX-4 NIC
  • 24x Intel DC P4510 2TB drives
  • 2x 120GB SATA SSDs in BOSS card for boot
  • Everything on the latest firmware
  • Running TrueNAS Scale 24.10.2.3

R730XD “Apollo”

  • 2x Xeon E5-2660 v4 14C/28T @ 2.0Ghz
  • 128GB Ram
  • 100Gbps ConnectX-4 NIC
  • 8x Seagate Enterprise 8TB SATA 6Gb/s via Dell H200 HBA in IT mode
  • 2x Samsung 980 Pro 500GB NVMe SSDs (VM storage)
  • 2x 120GB SATA SSDs for boot
  • Running TrueNAS Scale 24.10.2.3

Workstation

  • Intel Core i9-9900KF 8C/16T @ 4.97Ghz (OC’d)
  • 64GB Ram
  • 2x 10GB Intel X520 NIC
  • 1x Samsung 960 Pro 512GB (boot)
  • 1x Corsair Force MP600 1TB (storage)
  • Nvidia 2080 Ti
  • Windows 10 Enterprise

Networking

  • Dell S4148FE-ON 48x 10GB + 2x 25GB + 4x 100GB
  • All machines directly connected via DACs
  • Verified network is good with iperf3 (multiple instances needed for 100Gbps but get ~98Gbps between servers, 9.8Gbps between Workstation & servers)
  • Jumbo frames 9014 enabled

Hi.

Not sure what the difference between ok and sad is, TBH.

What speed do you expect from a 10Gbps card? Note the lowercase b. FWIW, SMB protocol can be bottlenecked by the CPU, because samba is single-core (per connection).


Also, what is your CPU utilisation during the copying? Do you use encryption?

It can be the case that the CPU isn’t fast enough to calculate such amount of parity data and checksums. You can try to test mirrored VDEVs (eliminating the need for parity).


Kinda normal for sequential writes on SSDs. You can write to any cell, but you must read from particular cells.

Agreed, will be limited to roughly ~2GB/s on a SMB multi-channel 2x 10GB card.

No encryption. Here’s the CPU data during the same tests. I can try mirrored vdevs if you think that’s valuable to test.

SMB WRITE:
Darkstar CPU: 15%, highest single core at 40%
Workstation CPU: 7%, highest single core around 20%

SMB READ:
Darkstar CPU: 7%, highest single core at 54%
Workstation CPU: 15%, highest single core around 15%

NVMe WRITE to Ramdisk Darkstar CPU: 1%, single core at 100%
Ramdisk WRITE to NVMe Darkstar CPU: 10%, single core at 97%

Thanks!

You didn’t mention multichannel. Even though (from my experience) multichannel would work ok when not properly configured, I would not use it for tests.

Smoking guns.


Regarding the fio. I’m not very familiar with it and used it only once. Take all the considerations below with a pinch of salt.

You can create a test dataset fio with params you wanna test. Then run something like:

sudo fio --directory=/mnt/<pool-name>/fio --name=read --ioengine=libaio --iodepth=4 --rw=read --bs=1M --size=256M --numjobs=4 --time_based --runtime=180

This will create test files and run sequential read test. You can read more about options here. The important ones (IMO) are rw, numjobs, and iodepth.

rw=read is for sequential reads. Numjobs can represent the number of simultaneous users – if you plan to use it solo, then it should be 1. The correct iodepth value depends on the application. I suspect that it is also 1 for the SMB sequential R/W. Change the values respectively. Change both to 32 to see the values from the manufacturer’s ad.

I’m not sure about sequential QD1 performance, but random QD1 performance of SSDs can be very different from QD64. Also, the sequential performance of SSDs is not that good (considering the price). Buying SSDs for mostly sequential workloads is not the best idea.

Do not forget to delete fio dataset after the tests.

Also, you can monitor your drives real-time performance during the fio with any of these commands:

sudo zpool iostat <pool-name> -lv -y 5 30
sudo /usr/bin/iostat -x 5 30

I think this might be more related to dd being a single threaded. If the parity or array was CPU limited, I would expect to see pegged single cores in the SMB tests as well.

Did the same write test with rsync from ramdisk to the nvme pool and while rsync is slower (800MB/s), the CPU load is 4% with 2 cores at about 70%.

This particular test results in a 11.5GB/s read. If I increase the number of jobs to 8, it hits 16.2GB/s. Those are more like the numbers that I’d expect to see, I just can’t get anywhere close to that in real world.

Same test but sequential write (4 jobs) is 9GB/s with 2 cores in the 80% range, briefly spiking to 100% for about 2 seconds before dropping again. Overall load 43%. This seems suspiciously high given the PCIe lane limitation and in theory only 2x write advantage on this pool…

Well, all the tests you made (AIUI) had a 1-1 workload, not 4-4 or 8-8.

Sure, fair enough. If I re-run with only 1 job, read and write are both 3GB/s. That single thread is running a CPU load of 89%. I’d be stoked with 3GB/s real world write and something north of that in read.

1.3GB/s is very close to 10Gbps. It’s even so close that I would suspect your multichannel doesn’t work. Just to rule out this possible cause, you can borrow the 100Gbps card from your second server, install it into the workstation, and perform the test again. Better yet, make a direct connection between windows and truenas. Thus ruling out other possible network-related causes.

Can’t say anything for Ramdisk tests.

Running tests locally with something like TN-Bench will help you rule out inefficiencies in networking or sharing protocols.

There’s also lots of context in that thread with my personal venture into understanding bottlenecks in less-than-ideal NVME systems

1 Like

Wowwwww, wish I knew about TN-Bench earlier, 10/10 work my friend. Results below. Individual disk tests show the PCIe 1GB/s limitation. Read & write results also look about as expected. Do you see any issues? Currently only running 4x channel memory per CPU, could go the full 6x for 384GB total.

############################################################
#                      TN-Bench v1.10                      #
############################################################

TN-Bench is an OpenSource Software Script that uses standard tools to
Benchmark your System and collect various statistical information via
the TrueNAS API.

* TN-Bench will create a Dataset in each of your pools for testing purposes
* that will consume 20 GiB of space for every thread in your system.

! WARNING: This test will make your system EXTREMELY slow during its run.
! WARNING: It is recommended to run this test when no other workloads are running.

* ZFS ARC will impact your results. You can set zfs_arc_max to 1 to prevent ARC caching.
* Setting it back to 0 restores default behavior but requires a system restart.

============================================================
 Confirmation 
============================================================

Would you like to continue? (yes/no): yes

------------------------------------------------------------
|                    System Information                    |
------------------------------------------------------------

Field                 | Value                                   
----------------------+-----------------------------------------
Version               | TrueNAS-SCALE-24.10.2.3                 
Load Average (1m)     | 0.25439453125                           
Load Average (5m)     | 0.3037109375                            
Load Average (15m)    | 0.2958984375                            
Model                 | Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz
Cores                 | 72                                      
Physical Cores        | 36                                      
System Product        | PowerEdge R740xd                        
Physical Memory (GiB) | 251.51                                  

------------------------------------------------------------
|                     Pool Information                     |
------------------------------------------------------------

Field      | Value           
-----------+-----------------
Name       | samsungtest     
Path       | /mnt/samsungtest
Status     | OFFLINE         
VDEV Count | 0               
Disk Count | 0               

VDEV Name  | Type           | Disk Count
-----------+----------------+---------------

------------------------------------------------------------
|                     Pool Information                     |
------------------------------------------------------------

Field      | Value      
-----------+------------
Name       | dspool     
Path       | /mnt/dspool
Status     | ONLINE     
VDEV Count | 2          
Disk Count | 24         

VDEV Name  | Type           | Disk Count
-----------+----------------+---------------
raidz1-0    | RAIDZ1         | 12
raidz1-1    | RAIDZ1         | 12

------------------------------------------------------------
|                     Disk Information                     |
------------------------------------------------------------

* The TrueNAS API returns N/A for the Pool for boot devices and disks not in a pool.
Field      | Value              
-----------+--------------------
Name       | sda                
Model      | DELLBOSS_VD        
Serial     | ba8d9f70e1100010   
ZFS GUID   | None               
Pool       | N/A                
Size (GiB) | 119.18             
-----------+--------------------
Name       | nvme5n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ916401982P0BGN 
ZFS GUID   | 5628909457530630758
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme7n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ9183001B2P0BGN 
ZFS GUID   | 3814524054512588667
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme1n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918000LP2P0BGN 
ZFS GUID   | 2194625387536678897
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme3n1            
Model      | INTEL SSDPE2KX020T8
Serial     | BTLJ914503AD2P0BGN 
ZFS GUID   | 3466362619159729249
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme9n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ917600K12P0BGN 
ZFS GUID   | 15220527152320368478
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme11n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918000DS2P0BGN 
ZFS GUID   | 1050510391378178878
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme13n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918000HQ2P0BGN 
ZFS GUID   | 7534853165912083445
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme15n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918100VX2P0BGN 
ZFS GUID   | 1525451702046694273
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme17n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918600HH2P0BGN 
ZFS GUID   | 10029036033193565748
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme19n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ914400UN2P0BGN 
ZFS GUID   | 13956023050041575681
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme21n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ917100Y82P0BGN 
ZFS GUID   | 15958474702000390886
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme23n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ914500052P0BGN 
ZFS GUID   | 10066802367696162294
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme0n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ917100Y52P0BGN 
ZFS GUID   | 17754276955237960209
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme2n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ916500JF2P0BGN 
ZFS GUID   | 10891426602178177056
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme4n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918300M12P0BGN 
ZFS GUID   | 15866509507358187499
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme6n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ918600HP2P0BGN 
ZFS GUID   | 4638906162398781126
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme8n1            
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ916500FS2P0BGN 
ZFS GUID   | 13339094842106156350
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme10n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ917000AP2P0BGN 
ZFS GUID   | 424422250124590131 
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme12n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ917000MX2P0BGN 
ZFS GUID   | 8601114335767534927
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme14n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ9145001V2P0BGN 
ZFS GUID   | 6658900461204691257
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme16n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ914300Z82P0BGN 
ZFS GUID   | 10174431092960666542
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme18n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ919200CF2P0BGN 
ZFS GUID   | 8969679944657584878
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme20n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ9182000X2P0BGN 
ZFS GUID   | 8266252572902876577
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------
Name       | nvme22n1           
Model      | INTEL SSDPE2KX020T8
Serial     | PHLJ917500S22P0BGN 
ZFS GUID   | 1381494103913799328
Pool       | dspool             
Size (GiB) | 1863.02            
-----------+--------------------

############################################################
#                      Pool Selection                      #
############################################################

* Available pools:
• 1. samsungtest
• 2. dspool
* Options:
• 1. Enter specific pool numbers (comma separated)
• 2. Type 'all' to test all pools
• 3. Type 'none' to skip pool testing

Enter your choice [all]: 2

############################################################
#              ZFS Pool Benchmark Iterations               #
############################################################

* How many times should we run each test?
• 1. Run each test once (faster)
• 2. Run each test twice (default, more accurate)

Enter iteration count (1 or 2) [2]: 1

############################################################
#                Individual Disk Benchmark                 #
############################################################

Run individual disk read benchmark? (yes/no) [yes]: y

############################################################
#           Individual Disk Benchmark Iterations           #
############################################################

* How many times should we run each test?
• 1. Run each test once (faster)
• 2. Run each test twice (default, more accurate)

Enter iteration count (1 or 2) [2]: 1

############################################################
#                  DD Benchmark Starting                   #
############################################################

* Using 72 threads for the benchmark.
* ZFS tests will run 1 time(s) per configuration
* Disk tests will run 1 time(s) per disk

############################################################
#                   Testing Pool: dspool                   #
############################################################

* Creating test dataset for pool: dspool
✓ Created temporary dataset: dspool/tn-bench
✓ Dataset dspool/tn-bench created successfully.

============================================================
 Space Verification 
============================================================

* Available space: 39343.45 GiB
* Space required:  1440.00 GiB (20 GiB/thread × 72 threads)
✓ Sufficient space available - proceeding with benchmarks

============================================================
 Testing Pool: dspool - Threads: 1 
============================================================

* Running DD write benchmark with 1 threads...
* Run 1 write speed: 268.03 MB/s
✓ Average write speed: 268.03 MB/s
* Running DD read benchmark with 1 threads...
* Run 1 read speed: 6671.78 MB/s
✓ Average read speed: 6671.78 MB/s

============================================================
 Testing Pool: dspool - Threads: 18 
============================================================

* Running DD write benchmark with 18 threads...
* Run 1 write speed: 4182.46 MB/s
✓ Average write speed: 4182.46 MB/s
* Running DD read benchmark with 18 threads...
* Run 1 read speed: 24989.48 MB/s
✓ Average read speed: 24989.48 MB/s

============================================================
 Testing Pool: dspool - Threads: 36 
============================================================

* Running DD write benchmark with 36 threads...
* Run 1 write speed: 6563.14 MB/s
✓ Average write speed: 6563.14 MB/s
* Running DD read benchmark with 36 threads...
* Run 1 read speed: 20132.82 MB/s
✓ Average read speed: 20132.82 MB/s

============================================================
 Testing Pool: dspool - Threads: 72 
============================================================

* Running DD write benchmark with 72 threads...
* Run 1 write speed: 9369.59 MB/s
✓ Average write speed: 9369.59 MB/s
* Running DD read benchmark with 72 threads...
* Run 1 read speed: 22761.50 MB/s
✓ Average read speed: 22761.50 MB/s

############################################################
#          DD Benchmark Results for Pool: dspool           #
############################################################


------------------------------------------------------------
|                        Threads: 1                        |
------------------------------------------------------------

• 1M Seq Write Run 1: 268.03 MB/s
• 1M Seq Write Avg: 268.03 MB/s
• 1M Seq Read Run 1: 6671.78 MB/s
• 1M Seq Read Avg: 6671.78 MB/s

------------------------------------------------------------
|                       Threads: 18                        |
------------------------------------------------------------

• 1M Seq Write Run 1: 4182.46 MB/s
• 1M Seq Write Avg: 4182.46 MB/s
• 1M Seq Read Run 1: 24989.48 MB/s
• 1M Seq Read Avg: 24989.48 MB/s

------------------------------------------------------------
|                       Threads: 36                        |
------------------------------------------------------------

• 1M Seq Write Run 1: 6563.14 MB/s
• 1M Seq Write Avg: 6563.14 MB/s
• 1M Seq Read Run 1: 20132.82 MB/s
• 1M Seq Read Avg: 20132.82 MB/s

------------------------------------------------------------
|                       Threads: 72                        |
------------------------------------------------------------

• 1M Seq Write Run 1: 9369.59 MB/s
• 1M Seq Write Avg: 9369.59 MB/s
• 1M Seq Read Run 1: 22761.50 MB/s
• 1M Seq Read Avg: 22761.50 MB/s
* Cleaning up test files...

############################################################
#                   Disk Read Benchmark                    #
############################################################

* This benchmark tests the 4K sequential read performance of each disk
* To work around ARC caching, reads data = min(system RAM, disk size)

============================================================
 Testing Disk: sda 
============================================================

* Testing disk: sda
* Run 1: 472.20 MB/s
✓ Average: 472.20 MB/s

============================================================
 Testing Disk: nvme5n1 
============================================================

* Testing disk: nvme5n1
* Run 1: 871.13 MB/s
✓ Average: 871.13 MB/s

============================================================
 Testing Disk: nvme7n1 
============================================================

* Testing disk: nvme7n1
* Run 1: 1062.68 MB/s
✓ Average: 1062.68 MB/s

============================================================
 Testing Disk: nvme1n1 
============================================================

* Testing disk: nvme1n1
* Run 1: 1072.47 MB/s
✓ Average: 1072.47 MB/s

============================================================
 Testing Disk: nvme3n1 
============================================================

* Testing disk: nvme3n1
* Run 1: 1070.45 MB/s
✓ Average: 1070.45 MB/s

============================================================
 Testing Disk: nvme9n1 
============================================================

* Testing disk: nvme9n1
* Run 1: 1080.92 MB/s
✓ Average: 1080.92 MB/s

============================================================
 Testing Disk: nvme11n1 
============================================================

* Testing disk: nvme11n1
* Run 1: 1095.67 MB/s
✓ Average: 1095.67 MB/s

============================================================
 Testing Disk: nvme13n1 
============================================================

* Testing disk: nvme13n1
* Run 1: 1106.80 MB/s
✓ Average: 1106.80 MB/s

============================================================
 Testing Disk: nvme15n1 
============================================================

* Testing disk: nvme15n1
* Run 1: 1105.67 MB/s
✓ Average: 1105.67 MB/s

============================================================
 Testing Disk: nvme17n1 
============================================================

* Testing disk: nvme17n1
* Run 1: 1054.59 MB/s
✓ Average: 1054.59 MB/s

============================================================
 Testing Disk: nvme19n1 
============================================================

* Testing disk: nvme19n1
* Run 1: 1044.52 MB/s
✓ Average: 1044.52 MB/s

============================================================
 Testing Disk: nvme21n1 
============================================================

* Testing disk: nvme21n1
* Run 1: 1035.04 MB/s
✓ Average: 1035.04 MB/s

============================================================
 Testing Disk: nvme23n1 
============================================================

* Testing disk: nvme23n1
* Run 1: 1081.54 MB/s
✓ Average: 1081.54 MB/s

============================================================
 Testing Disk: nvme0n1 
============================================================

* Testing disk: nvme0n1
* Run 1: 1115.62 MB/s
✓ Average: 1115.62 MB/s

============================================================
 Testing Disk: nvme2n1 
============================================================

* Testing disk: nvme2n1
* Run 1: 1094.79 MB/s
✓ Average: 1094.79 MB/s

============================================================
 Testing Disk: nvme4n1 
============================================================

* Testing disk: nvme4n1
* Run 1: 1069.38 MB/s
✓ Average: 1069.38 MB/s

============================================================
 Testing Disk: nvme6n1 
============================================================

* Testing disk: nvme6n1
* Run 1: 1074.32 MB/s
✓ Average: 1074.32 MB/s

============================================================
 Testing Disk: nvme8n1 
============================================================

* Testing disk: nvme8n1
* Run 1: 1088.86 MB/s
✓ Average: 1088.86 MB/s

============================================================
 Testing Disk: nvme10n1 
============================================================

* Testing disk: nvme10n1
* Run 1: 1099.50 MB/s
✓ Average: 1099.50 MB/s

============================================================
 Testing Disk: nvme12n1 
============================================================

* Testing disk: nvme12n1
* Run 1: 1084.92 MB/s
✓ Average: 1084.92 MB/s

============================================================
 Testing Disk: nvme14n1 
============================================================

* Testing disk: nvme14n1
* Run 1: 1092.99 MB/s
✓ Average: 1092.99 MB/s

============================================================
 Testing Disk: nvme16n1 
============================================================

* Testing disk: nvme16n1
* Run 1: 1100.55 MB/s
✓ Average: 1100.55 MB/s

============================================================
 Testing Disk: nvme18n1 
============================================================

* Testing disk: nvme18n1
* Run 1: 1087.87 MB/s
✓ Average: 1087.87 MB/s

============================================================
 Testing Disk: nvme20n1 
============================================================

* Testing disk: nvme20n1
* Run 1: 1096.02 MB/s
✓ Average: 1096.02 MB/s

============================================================
 Testing Disk: nvme22n1 
============================================================

* Testing disk: nvme22n1
* Run 1: 1054.69 MB/s
✓ Average: 1054.69 MB/s

############################################################
#               Disk Read Benchmark Results                #
############################################################


------------------------------------------------------------
|                        Disk: sda                         |
------------------------------------------------------------

• Run 1: 472.20 MB/s
• Average: 472.20 MB/s

------------------------------------------------------------
|                      Disk: nvme5n1                       |
------------------------------------------------------------

• Run 1: 871.13 MB/s
• Average: 871.13 MB/s

------------------------------------------------------------
|                      Disk: nvme7n1                       |
------------------------------------------------------------

• Run 1: 1062.68 MB/s
• Average: 1062.68 MB/s

------------------------------------------------------------
|                      Disk: nvme1n1                       |
------------------------------------------------------------

• Run 1: 1072.47 MB/s
• Average: 1072.47 MB/s

------------------------------------------------------------
|                      Disk: nvme3n1                       |
------------------------------------------------------------

• Run 1: 1070.45 MB/s
• Average: 1070.45 MB/s

------------------------------------------------------------
|                      Disk: nvme9n1                       |
------------------------------------------------------------

• Run 1: 1080.92 MB/s
• Average: 1080.92 MB/s

------------------------------------------------------------
|                      Disk: nvme11n1                      |
------------------------------------------------------------

• Run 1: 1095.67 MB/s
• Average: 1095.67 MB/s

------------------------------------------------------------
|                      Disk: nvme13n1                      |
------------------------------------------------------------

• Run 1: 1106.80 MB/s
• Average: 1106.80 MB/s

------------------------------------------------------------
|                      Disk: nvme15n1                      |
------------------------------------------------------------

• Run 1: 1105.67 MB/s
• Average: 1105.67 MB/s

------------------------------------------------------------
|                      Disk: nvme17n1                      |
------------------------------------------------------------

• Run 1: 1054.59 MB/s
• Average: 1054.59 MB/s

------------------------------------------------------------
|                      Disk: nvme19n1                      |
------------------------------------------------------------

• Run 1: 1044.52 MB/s
• Average: 1044.52 MB/s

------------------------------------------------------------
|                      Disk: nvme21n1                      |
------------------------------------------------------------

• Run 1: 1035.04 MB/s
• Average: 1035.04 MB/s

------------------------------------------------------------
|                      Disk: nvme23n1                      |
------------------------------------------------------------

• Run 1: 1081.54 MB/s
• Average: 1081.54 MB/s

------------------------------------------------------------
|                      Disk: nvme0n1                       |
------------------------------------------------------------

• Run 1: 1115.62 MB/s
• Average: 1115.62 MB/s

------------------------------------------------------------
|                      Disk: nvme2n1                       |
------------------------------------------------------------

• Run 1: 1094.79 MB/s
• Average: 1094.79 MB/s

------------------------------------------------------------
|                      Disk: nvme4n1                       |
------------------------------------------------------------

• Run 1: 1069.38 MB/s
• Average: 1069.38 MB/s

------------------------------------------------------------
|                      Disk: nvme6n1                       |
------------------------------------------------------------

• Run 1: 1074.32 MB/s
• Average: 1074.32 MB/s

------------------------------------------------------------
|                      Disk: nvme8n1                       |
------------------------------------------------------------

• Run 1: 1088.86 MB/s
• Average: 1088.86 MB/s

------------------------------------------------------------
|                      Disk: nvme10n1                      |
------------------------------------------------------------

• Run 1: 1099.50 MB/s
• Average: 1099.50 MB/s

------------------------------------------------------------
|                      Disk: nvme12n1                      |
------------------------------------------------------------

• Run 1: 1084.92 MB/s
• Average: 1084.92 MB/s

------------------------------------------------------------
|                      Disk: nvme14n1                      |
------------------------------------------------------------

• Run 1: 1092.99 MB/s
• Average: 1092.99 MB/s

------------------------------------------------------------
|                      Disk: nvme16n1                      |
------------------------------------------------------------

• Run 1: 1100.55 MB/s
• Average: 1100.55 MB/s

------------------------------------------------------------
|                      Disk: nvme18n1                      |
------------------------------------------------------------

• Run 1: 1087.87 MB/s
• Average: 1087.87 MB/s

------------------------------------------------------------
|                      Disk: nvme20n1                      |
------------------------------------------------------------

• Run 1: 1096.02 MB/s
• Average: 1096.02 MB/s

------------------------------------------------------------
|                      Disk: nvme22n1                      |
------------------------------------------------------------

• Run 1: 1054.69 MB/s
• Average: 1054.69 MB/s

############################################################
#                    Benchmark Complete                    #
############################################################

✓ Total benchmark time: 106.65 minutes```

First impression

 Testing Disk: nvme5n1 
============================================================

* Testing disk: nvme5n1
* Run 1: 871.13 MB/s
✓ Average: 871.13 MB/s

This disk is almost 20% slower than the rest, which would contribute to a slower over all pool

Safe bet this would be a great play.

Tested both of these scenarios, the workstation is ultimately limited to a PCIe Gen 3 x8 slot so it maxes out around 50Gbps using iperf3 multi-server and multi-client.

Ran the test again twice and this appears to be a test anomaly, same speeds as the other disks reported in both follow on runs.

Noted, we’re going to put the machine into production and see how it performs until multi-client loads. It seems to perform as expected from a TN-Bench perspective. I’ll report back in a few days.

1 Like

Okay. And what about SMB performance with this card? Is it also 1.3GB/s?

Interesting. Were you running another workload or some other test just prior to running TN-Bench?

It was better, ~2GB/s read, ~1.5GB/s write. Write speed makes sense, read still feels slow. Receiving workstation SSD can definitely take the incoming data faster than 2GB/s… not sure.

Nope, nothing was running under either test.

Perhaps I should do the first read test, mix up the order of disks, do the second read test and then average the results.
This may help fix this false positive, and I can allow the user to run 4 times instead of 1/2.

My goal is to eliminate any outliers like this with the exception of hardware related ones. This should make the whole benchmark idea and leaderboard comparison more useful.

Thanks for your feedback!

According to @Constantin, SMB connection is single-threaded. And he managed to max out a single core, doing 10Gbps transfers with his Xeon D-1537.

According to this, Xeon 6140 has ~1.75X better single-core performance. Which leaves us with maxing out at 17.5Gbps. 2GB/s is 16Gbps. Looks like a close call to me.

I’m not saying that it’s definitely the cause. But it easily could be.


Now, what is more interesting, what is your planned workload scenario exactly? I wonder when 10GBps is not enough for a single connection.

Apologies, there must have been a misunderstanding.

I wish I was maxing out the 10GbE connection. It’s not even close. Instead, my 1.7GHz CPU keeps maxing out single cores / threads, so i know my NAS could be faster but for now the CPU is holding it back.

The most I get in writes has been about 400MB/s over the 10GbE connection or about 40% of the theoretical max. Bandwidth. That’s with a 1/4 full pool and a sVDEV. If I wanted a better throughput, I’d likely need more VDEVs and a faster CPU. Or set up a dataset that solely resides on the sVDEV.

Well, it doesn’t really change the statement that single-core performance can bottleneck “single-connection” transfers. Perhaps my “math” is incorrect, though.