Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

OS: TrueNAS Scale 25.10 RC1,

Power Limits: 15W/15W (BIOS: Performance mode)

Disk pool record size: 128K

...

4xSamsung 990 Pro
GMKtec NucBox G9
TrueNAS and Synology
SequentalRandom
Read (MiB/s)Write (MiB/s)Read (MiB/s)Write (MiB/s)
RAIDcompressionbs = 1Mbs = 4Kbs = 1Mbs = 4Kbs = 1Mbs = 4Kbs = 1Mbs = 4K
MirrorGZIP-1/4K1261635102107126948910296.9
MirrorGZIP-1/16K2876360

147

224286611514870.4
MirrorGZIP-1/128K2870529

93.2

348439028.091.119.8
MirrorGZIP-1/1M5082560

93.0

375492929.792.50.4
MirrorLZ4/4K1197641

628

3401272484567241
MirrorLZ4/16K2790882

1168

48928213771147186
MirrorLZ4/128K42011047

1517

617409666.7144649.4
MirrorLZ4/1M45061064

1428

652476814.815856.7
MirrorOFF/4K1219665

646

3351274598526246
MirrorOFF/16K2872890

1550

50227964441454223
MirrorOFF/128K44911076

2015

5954443173201260.2
MirrorOFF/1M50571100

2054

636505129.920527.5
MirrorOFF/4M42271028

1925

47716227.45411.9
MirrorAES-256-GCM4462104619314611896170187634.5
Mirror
DS220+
OFF
2xHDD
17962.716820.918261.51699.6

Mirror

DS220+

AES-256-CBC

(not direct)

139

178

129

138

32.43.5142

5.6


RAID0 on Ubuntu 24.04 using LVM

...

, BTRFS and MDADM 

4xSamsung 990 Pro
GMKtec NucBox G9
Ubuntu 24.04 LVM RAID0
SequentalRandom
Read (MiB/s)Write (MiB/s)Read (MiB/s)Write (MiB/s)
RAIDcompressionbs = 1Mbs = 4Kbs = 1Mbs = 4Kbs = 1Mbs = 4Kbs = 1Mbs = 4K
ZFS MirrorOFF/4K1219665

646

3351274598526246
ZFS StripeOFF/128K4357986

3405

5084258168300780.3
LVM Stripe (ext4)OFF/4K2596213

2434

165230265.32437162
LVM Stripe (ext4)OFF/16K2574220

2357

167216364.92362157
LVM Stripe (ext4)OFF/128K261951

2369

148232265.62372143
btrfs raid 0OFF/4K1947126

2017

134194342.51988118
btrfs raid 0ON/4K196044.7

2036

129193040.01993117

VG PE Size 4M, PV PE Size 4M ext fs default cluster size 4k

mdraid (ext4)OFF/4K2292207

2132

157205165.42037148
mdraid (ext4)OFF/16K2271211

2080

153204864.52067155


Code Block
mkfs.ext4 -C
Code Block
mkfs.ext4 -C 16384 -O  bigalloc -L EXT4-16K /dev/storage/fs
mkfs.btrfs --data raid0 --sectorsize 4k /dev/nvme0n1p1 /dev/nvme1n1p1 /dev/nvme2n1p1 /dev/nvme3n1p1

Commands used to test disk speed

Code Block
cd /mnt/pool/shared/user
# each command executed 3 times
# 1M
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=1M --size=4G --readwrite=write --ramp_time=4 # Col 3
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=1M --size=4G --readwrite=read --ramp_time=4 # Col 1
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=1M --size=4G --readwrite=randwrite --ramp_time=4  # Col  7
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=1M --size=4G --readwrite=randread --ramp_time=4 # Col 5
# 4K
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=4K --size=4G --readwrite=write --ramp_time=4 # Col 4
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=4K --size=4G --readwrite=read --ramp_time=4 # Col 2
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=4k --size=4G --readwrite=randwrite --ramp_time=4 # Col 8
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=4k --size=4G --readwrite=randread --ramp_time=4 # Col 6

Table for comparison with non-NAS devices

...

For disk performance comparison next system were use,

...

1 Year is 8766 hours (37877 hours = 4.3 Years)

Check Power Limits

Code Block
root@truenas:/mnt/pool/shared/user# turbostat 2>&1|grep Watt
RAPL: 43691 sec. Joule Counter Range, at 6 Watts
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 Watts, 0.000061 Joules, 0.000977 sec.)
cpu0: PKG Limit #1: ENabled (15.000 Watts, 8.000000 sec, clamp ENabled)
cpu0: PKG Limit #2: ENabled (15.000 Watts, 0.002441* sec, clamp DISabled)
cpu0: PKG Limit #4: 78.000000 Watts (UNlocked)
cpu0: DRAM Limit: DISabled (0.000 Watts, 0.000977 sec, clamp DISabled)
cpu0: Cores Limit: DISabled (0.000 Watts, 0.000977 sec, clamp DISabled)
cpu0: GFX Limit: DISabled (0.000 Watts, 0.000977 sec, clamp DISabled)

RAIDZ1 (LZ4) commands output

Code Block
root@truenas:/mnt/pool/shared/user# zfs get all pool/shared |grep comp
pool/shared  compressratio            1.41x                    -
pool/shared  compression              lz4                      inherited from pool
pool/shared  refcompressratio         1.41x                    -

Code Block
root@truenas:/mnt/pool/shared/user# sync;fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --bs=4k --size=4G --readwrite=randwrite --ramp_time=4
test: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.33
Starting 1 process
test: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=0): [f(1)][100.0%][w=147MiB/s][w=37.6k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=41307: Thu Apr 10 12:49:43 2025
  write: IOPS=21.1k, BW=82.5MiB/s (86.5MB/s)(3672MiB/44503msec); 0 zone resets
    slat (usec): min=4, max=80062, avg=45.37, stdev=167.42
    clat (nsec): min=614, max=4072.6k, avg=1133.86, stdev=6985.89
     lat (usec): min=5, max=80072, avg=46.50, stdev=167.70
    clat percentiles (nsec):
     |  1.00th=[  740],  5.00th=[  836], 10.00th=[  884], 20.00th=[  924],
     | 30.00th=[  956], 40.00th=[  972], 50.00th=[  996], 60.00th=[ 1020],
     | 70.00th=[ 1048], 80.00th=[ 1080], 90.00th=[ 1192], 95.00th=[ 1384],
     | 99.00th=[ 2008], 99.50th=[ 3312], 99.90th=[24704], 99.95th=[41728],
     | 99.99th=[72192]
   bw (  KiB/s): min=48766, max=137119, per=98.81%, avg=83487.14, stdev=11581.15, samples=87
   iops        : min=12191, max=34279, avg=20872.08, stdev=2895.09, samples=87
  lat (nsec)   : 750=1.20%, 1000=50.42%
  lat (usec)   : 2=47.36%, 4=0.59%, 10=0.14%, 20=0.16%, 50=0.10%
  lat (usec)   : 100=0.02%, 250=0.01%, 500=0.01%, 750=0.01%, 1000=0.01%
  lat (msec)   : 2=0.01%, 4=0.01%, 10=0.01%
  cpu          : usr=3.69%, sys=85.07%, ctx=107206, majf=0, minf=37
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,940003,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=82.5MiB/s (86.5MB/s), 82.5MiB/s-82.5MiB/s (86.5MB/s-86.5MB/s), io=3672MiB (3850MB), run=44503-44503msec


root@truenas:/mnt/pool/shared/user# sync;fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --bs=4k --size=4G --readwrite=randread --ramp_time=4
test: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.33
Starting 1 process
Jobs: 1 (f=1): [r(1)][91.3%][r=160MiB/s][r=41.0k IOPS][eta 00m:04s]
test: (groupid=0, jobs=1): err= 0: pid=41962: Thu Apr 10 12:50:58 2025
  read: IOPS=25.4k, BW=99.2MiB/s (104MB/s)(3708MiB/37391msec)
    slat (usec): min=2, max=467, avg=38.12, stdev=11.50
    clat (nsec): min=587, max=54938, avg=738.69, stdev=251.78
     lat (usec): min=3, max=470, avg=38.86, stdev=11.53
    clat percentiles (nsec):
     |  1.00th=[  636],  5.00th=[  668], 10.00th=[  684], 20.00th=[  692],
     | 30.00th=[  700], 40.00th=[  708], 50.00th=[  716], 60.00th=[  724],
     | 70.00th=[  740], 80.00th=[  756], 90.00th=[  804], 95.00th=[  876],
     | 99.00th=[ 1012], 99.50th=[ 1096], 99.90th=[ 2416], 99.95th=[ 3056],
     | 99.99th=[14144]
   bw (  KiB/s): min=91048, max=157648, per=98.65%, avg=100191.19, stdev=8691.21, samples=74
   iops        : min=22762, max=39412, avg=25047.76, stdev=2172.79, samples=74
  lat (nsec)   : 750=76.93%, 1000=21.93%
  lat (usec)   : 2=1.03%, 4=0.08%, 10=0.01%, 20=0.01%, 50=0.01%
  lat (usec)   : 100=0.01%
  cpu          : usr=2.95%, sys=96.97%, ctx=420, majf=0, minf=37
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=949364,0,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
   READ: bw=99.2MiB/s (104MB/s), 99.2MiB/s-99.2MiB/s (104MB/s-104MB/s), io=3708MiB (3889MB), run=37391-37391msec

root@truenas:/mnt/pool/shared/user# sync;fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --bs=4k --size=4G --readwrite=write --ramp_time=4
test: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.33
Starting 1 process
Jobs: 1 (f=1): [W(1)][53.8%][w=555MiB/s][w=142k IOPS][eta 00m:06s]
test: (groupid=0, jobs=1): err= 0: pid=43581: Thu Apr 10 12:53:42 2025
  write: IOPS=145k, BW=568MiB/s (595MB/s)(1808MiB/3184msec); 0 zone resets
    slat (usec): min=3, max=7144, avg= 5.85, stdev=13.87
    clat (nsec): min=581, max=149242, avg=722.02, stdev=731.07
     lat (usec): min=4, max=7154, avg= 6.57, stdev=13.94
    clat percentiles (nsec):
     |  1.00th=[  636],  5.00th=[  644], 10.00th=[  652], 20.00th=[  660],
     | 30.00th=[  668], 40.00th=[  676], 50.00th=[  684], 60.00th=[  692],
     | 70.00th=[  700], 80.00th=[  732], 90.00th=[  844], 95.00th=[  892],
     | 99.00th=[  972], 99.50th=[ 1144], 99.90th=[ 1576], 99.95th=[ 4384],
     | 99.99th=[47360]
   bw (  KiB/s): min=565370, max=595054, per=99.72%, avg=579799.00, stdev=12657.07, samples=6
   iops        : min=141342, max=148763, avg=144949.50, stdev=3164.21, samples=6
  lat (nsec)   : 750=82.16%, 1000=17.03%
  lat (usec)   : 2=0.73%, 4=0.02%, 10=0.02%, 20=0.01%, 50=0.01%
  lat (usec)   : 100=0.01%, 250=0.01%
  cpu          : usr=13.51%, sys=84.32%, ctx=1523, majf=0, minf=37
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,462792,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=568MiB/s (595MB/s), 568MiB/s-568MiB/s (595MB/s-595MB/s), io=1808MiB (1896MB), run=3184-3184msec

RAIDZ1 (OFF) commands output

Code Block
root@truenas:/mnt/pool/shared/user# zfs get all pool/shared |grep comp
pool/shared  compressratio            1.41x                    -
pool/shared  compression              off                      local
pool/shared  refcompressratio         1.41x                    -

...

Table for comparison with non-NAS devices


SequentalRandom
Read (MiB/s)Write (MiB/s)Read (MiB/s)Write (MiB/s)
devicedisk typebs = 1Mbs = 4Kbs = 1Mbs = 4Kbs = 1Mbs = 4Kbs = 1Mbs = 4K
R100N1xNVMe13021231047104121149.11056103
R100S1xSSD40557.434749.932120.034148.5
N200N1xNVMe129389.91212202125574.01152193
I1071N1xNVMe27202782691280246275.02414216
I1355N1xNVMe175628916.0 2.5134857.415.92.6
U185HL2xNVME104313610591781486112592142
U185HH2xNVME5936 131 4245188 6032 1204452 75-166 
DS220+2xHDD17962.716820.918261.51699.6

For disk performance comparison next system were use,

codeHardwareDiskspace used,%Power On, hoursLife Time Remain, %
N150RIntel N150, 12GB LPDDR5, Debian, TrueNAS 25.04 RC1, ZFSSamsung SSD 990 PRO with Heatsink 4TB (4 in RAID)156100
R100NIntel N100, 16GB DDR4, Ubuntu 24.04, CasaOS, ext4Movespeed YSSDHB-4TN7000 4TB NVMe84822100
R100SIntel N100, 16GB DDR4, Ubuntu 24.04, CasaOS, ext4Transcend SSD230S 4 TB SATA SSD491522100
N200NIntel N200, 32GB DDR5, Ubuntu 24.04, ext4Fanxiang S500PRO 2TB978343100
I1071NIntel Core i7-10710U, 64GB DDR4, Ubuntu 24.0Lexar SSD ARES 4TB741223899
I1355NIntel Core i7-1355U (15W), 96GB DDR5, Ubuntu 24.04XPG GAMMIX S70 BLADE 8TB856823100
U185HLIntel Core Ultra 9 (95W), 128GB DDR5, Ubuntu 24, btrfs RAID0WD_BLACK SN850X 8TB (2 in btrfs RAID0) - 3.40W48336100
U185HHIntel Core Ultra 9 (95W), 128GB DDR5, Ubuntu 24, btrfs RAID0WD_BLACK SN850X 8TB (2 in btrfs RAID0) - 8.25W48336100
DS220+Synology DS220+, J4025, 2GB, RAID1, btrfsWD Gold Enterprise Class 18 TB 7200 RPM(2 in RAID1)7737877N/A

1 Year is 8766 hours (37877 hours = 4.3 Years)


Commands used to test disk speed

Code Block
cd /mnt/pool/shared/user
# each command executed 3 times
# 1M
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=1M --size=4G --readwrite=write --ramp_time=4 # Col 3
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=1M --size=4G --readwrite=read --ramp_time=4 # Col 1
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=1M --size=4G --readwrite=randwrite --ramp_time=4  # Col  7
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=1M --size=4G --readwrite=randread --ramp_time=4 # Col 5
# 4K
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=4K --size=4G --readwrite=write --ramp_time=4 # Col 4
fio --ioengine=libaio --direct=1 --name=test --filename=test0 --bs=4K --size=4G --readwrite=read --ramp_time=4 # Col 2
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=4k --size=4G --readwrite=randwrite --ramp_time=4 # Col 8
fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test1 --filename=test2 --bs=4k --size=4G --readwrite=randread --ramp_time=4 # Col 6


Table of Contents