Poor performance on Dell R720 with H310 Mini flashed to IT mode

phillipsnick

Cadet
Joined
Aug 18, 2016
Messages
5
I've been losing my mind over this problem for a few days now, although I've had the problem for a while now. I'm throwing the towel in and reaching out to see if anyone else has had similar issues.

I'm basing a lot of my expectations here on the white paper https://static.ixsystems.co/uploads/2020/09/ZFS_Storage_Pool_Layout_White_Paper_2020_WEB.pdf (along with some previous experiences using ZFS).

So down to the problem, I've got a play server for learning:

Hardware
  • Dell R720
  • Dual Xeon E5 2660
  • 4x Kingston 16 GB DDR3 ECC 1600Mhz
  • 8x HGST 5K3000 - 3TB / 5400rpm
  • H310 Mini (model K09CJ) flashed to IT mode
Software
  • TrueNAS-12.0U2.1
  • RAID-Z2
    • ashift=12

The main problem, when running the 8 drives in RAID-Z2 each drive will only read at 50MB/s (monitored with zpool iostat) and the overall performance measured with fio is between 400-470MiB/s. Somewhat disappointing!

Based on my testing, a single Hitachi 5K3000 drive is good for 110MiB/s. I've also set up each of these as individual drives in TrueNAS and tested them all simultaneously and managed to hit this number for all 8 drives at the same time.

The test

Code:
fio \
--name=test \
--filename=test64g \
--bs=1m \
--iodepth=1 \
--size=64G \
--readwrite=read \
--ramp_time=4 \
--group_reporting


Now I'm only testing sequential reads here because it's the quickest/easiest way to replicate this exact issue. Although it also appears when fio layers the file on the disk, I see maximum 50MB/s writes too.

The Dell H310 Mini has been flashed using fourlynx's method using 9211-8i_Package_P20_IR_IT_FW_BIOS_for_MSDOS_Windows.zip which I believe is still the latest version available for this card.

-----

Now if we take the bootable USB out of the R720 including the 8 drives and move them over to the following setup
  • Supermicro X9DRL-F
  • Xeon 1620v2
  • 4x Kingston 8 GB DDR3 ECC 133Mhz
  • 8x HGST 5K3000 - 3TB / 5400rpm
  • M1015 flashed to IT mode (assuming R20 too)
Running the exact same test zpool iostat shows 98-102MB/s per drive and the result for fio is roughly what I'm expecting (Streaming read speed: (N - p) * Streaming read speed of single drive) given any potential overheads with RAID-Z2.

Code:
   READ: bw=590MiB/s (618MB/s), 590MiB/s-590MiB/s (618MB/s-618MB/s), io=62.9GiB (67.5GB), run=109177-109177msec


:cool:

Has anyone else had similar issues with the H310 Mini installed in the Dell R720?
 
Last edited:

RichTJ99

Patron
Joined
Sep 12, 2013
Messages
384
I have a R720 & can run a test if you give me the CLI you used for your test?
 

phillipsnick

Cadet
Joined
Aug 18, 2016
Messages
5
I have a R720 & can run a test if you give me the CLI you used for your test?

I created a dataset with 1MiB record size and used

Code:
fio \
--name=test \
--filename=test64g \
--bs=1m \
--iodepth=1 \
--size=64G \
--readwrite=read \
--ramp_time=4 \
--group_reporting
 

phillipsnick

Cadet
Joined
Aug 18, 2016
Messages
5
As a quick update as I have spent some time this afternoon debugging some more. Managed to get hold of some long SFF-8087 leads, put the M1015 card from my other test system in the R720 and connected everything up to the backplane.

All tests that were run on the generic system pretty much matched the results with the M1015 installed in the R720. As I suspected the H310 is 100% the issue but can't really figure out why because I've had them all maxed out individually on the H310.
 

Lix

Dabbler
Joined
Apr 20, 2015
Messages
27
Server
  • R720xd
  • 2x E2620 v0
  • 128GB RAM
  • H710 mini IT-flashed
Pool

6x500GB 2.5" 7.200rpm IBM-Sata drives in raidz2 and ashift=12

Inside a VM running on a NFS datastore on the above hardware and pool:

READ: bw=490MiB/s (514MB/s), 490MiB/s-490MiB/s (514MB/s-514MB/s), io=62.3GiB (66.9GB), run=129988-129988msec
 

Zak95

Dabbler
Joined
Mar 4, 2018
Messages
20
I'm also seeing poor performance on a Dell R720xd (12 x 4TB SAS) with H710 mini in IT mode, specifically iSCSI multi-path over 10GbE. Speeds are terrible with sync enabled, 5-600MB/sec with sync disabled but only maintains that for a few seconds then plunges to ~40MB/sec
 

RichTJ99

Patron
Joined
Sep 12, 2013
Messages
384
Sorry - I realized my R720 is using the passthrough sas not the h710.
 

fisherwei

Dabbler
Joined
Oct 28, 2013
Messages
47
in my env, result seems better than you.

r720xd
h310 @ it mode
8 HDDs RAID-Z2 (6 x HC320 + 2 x ST8000NM0055)

READ: bw=594MiB/s (622MB/s), 594MiB/s-594MiB/s (622MB/s-622MB/s), io=384GiB (412GB), run=661795-661795msec

Code:
                                                  capacity     operations     bandwidth
pool                                            alloc   free   read  write   read  write
----------------------------------------------  -----  -----  -----  -----  -----  -----
pool0                                           38.9T  19.3T  28.7K     15   684M   143K
  raidz2                                        38.9T  19.3T  28.7K     15   684M   143K
    gptid/7500b090-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.56K      1  84.7M  15.9K
    gptid/769921c0-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.68K      1  85.1M  19.9K
    gptid/7843d984-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.51K      1  86.0M  19.9K
    gptid/78e82965-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.63K      1  83.9M  19.9K
    gptid/793534bf-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.54K      1  85.7M  19.9K
    gptid/7a775b7b-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.55K      1  86.2M  19.9K
    gptid/7c6f8323-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.67K      1  85.4M  15.9K
    gptid/607d0c58-350a-11eb-8d80-b8ca3a6fb4c0      -      -  3.50K      1  86.6M  11.9K
----------------------------------------------  -----  -----  -----  -----  -----  -----
                                                  capacity     operations     bandwidth
pool                                            alloc   free   read  write   read  write
----------------------------------------------  -----  -----  -----  -----  -----  -----
pool0                                           38.9T  19.3T  18.1K     15   470M   103K
  raidz2                                        38.9T  19.3T  18.1K     15   469M   103K
    gptid/7500b090-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.26K      1  59.3M  15.9K
    gptid/769921c0-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.16K      1  59.0M  15.9K
    gptid/7843d984-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.32K      1  59.1M  15.9K
    gptid/78e82965-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.34K      1  58.8M  15.9K
    gptid/793534bf-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.21K      1  59.2M  11.9K
    gptid/7a775b7b-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.31K      1  57.8M  7.95K
    gptid/7c6f8323-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.12K      1  59.7M  7.95K
    gptid/607d0c58-350a-11eb-8d80-b8ca3a6fb4c0      -      -  2.46K      1  57.3M  11.9K
----------------------------------------------  -----  -----  -----  -----  -----  -----
                                                  capacity     operations     bandwidth
pool                                            alloc   free   read  write   read  write
----------------------------------------------  -----  -----  -----  -----  -----  -----
pool0                                           38.9T  19.3T  29.8K    501   700M  5.38M
  raidz2                                        38.9T  19.3T  29.8K    501   700M  5.38M
    gptid/7500b090-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.76K     69  86.7M   747K
    gptid/769921c0-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.67K     64  88.4M   707K
    gptid/7843d984-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.69K     64  88.1M   699K
    gptid/78e82965-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.75K     61  87.3M   667K
    gptid/793534bf-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.62K     66  87.3M   655K
    gptid/7a775b7b-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.70K     53  88.0M   620K
    gptid/7c6f8323-3322-11eb-8d19-b8ca3a6fb4c0      -      -  3.83K     59  86.6M   679K
    gptid/607d0c58-350a-11eb-8d80-b8ca3a6fb4c0      -      -  3.77K     61  86.6M   735K
----------------------------------------------  -----  -----  -----  -----  -----  -----
                                                  capacity     operations     bandwidth
pool                                            alloc   free   read  write   read  write
----------------------------------------------  -----  -----  -----  -----  -----  -----
pool0                                           38.9T  19.3T  16.0K     62   467M   328K
  raidz2                                        38.9T  19.3T  16.0K     62   467M   328K
    gptid/7500b090-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.10K      7  57.2M  43.0K
    gptid/769921c0-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.14K      7  56.8M  46.9K
    gptid/7843d984-3322-11eb-8d19-b8ca3a6fb4c0      -      -  1.91K      7  59.6M  43.0K
    gptid/78e82965-3322-11eb-8d19-b8ca3a6fb4c0      -      -  1.87K      7  58.5M  43.0K
    gptid/793534bf-3322-11eb-8d19-b8ca3a6fb4c0      -      -  1.87K      7  60.1M  39.1K
    gptid/7a775b7b-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.03K      7  57.4M  39.1K
    gptid/7c6f8323-3322-11eb-8d19-b8ca3a6fb4c0      -      -  2.13K      7  57.8M  35.2K
    gptid/607d0c58-350a-11eb-8d80-b8ca3a6fb4c0      -      -  1.95K      7  60.1M  39.1K
----------------------------------------------  -----  -----  -----  -----  -----  -----


BTW:
why HDD can reach >3K operations? in my memory, HDD only have 100-150 IOPS.
 

jgreco

Resident Grinch
Joined
May 29, 2011
Messages
18,680
Really? How many IOPS do you think are needed to sustain 250MBytes/sec sequential speed, given a 512 byte sector size?

HDD's have only 100-200 *seeks* per second, or thereabouts, depending on the drive.

IOPS is a hideously poor term because what people generally mean by "IOPS" is how many different transactions are sent to the storage device, but reading a 64KB sequence of contiguous sectors or a single 512 byte sector are both an IO. Further, there's no requirement that neighboring IO requests must involve a seek; if one IO requests bytes 0-65535 of a sequential file and another IO requests 65536-131071, that's two IO's covering 256 sectors, and there is likely to be almost no time at all between the completion of the first IO and the second, because they're sequential. But they still get counted as separate IO's.
 
Top