Comparing Rockstor performance to OMV

I recently switched fom OMV to Rockstor, and I was wondering about a small performance issue. I’m using the exact same hardware for the NAS (Atom D510 with 2 GB RAM and a 3gb WD Red drive on a Windows SMB share). When I copy into and out of the NAS from my desktop HTPC (an SSD drive) I would get about 80-90 MB/s with OMV, and I get about 55 MB/s with Rockstor. I realize they use different file systems, but I was wondering if there is a setting in Rockstor that I need to tweak. Since I’m not really a power user, I’ve just used each distribution out of the box (no changes made in configuration to either from the defaults). Any ideas on things to check?

Thanks

Do you have compression turned on for the rockstor array? Could you also list all of your hardware it’s possible that OMV loaded a different driver for your NIC.

No compression turned on. the NIC is an Intel PWLA8391GTLBLK PRO/1000 GT. The NAS is created from this as the base system:

http://www.foxconnchannel.com/ProductDetail.aspx?T=Barebone&U=en-us0000057

if there is a way to create a more detailed list of what Rockstor is loading, I’m happy to provide it. Just let me know how to create it

Good morning (my local time) Gregory @gcole and welcome to Rockstor Community!

Reading your post made me remember my experience (and panic) while comparing simple samba share on a linux box (140-150 MB/s on Gigabit net) vs freebsd box samba share (30-40 MB/s with strange jumps to 90-100 and back to 10-5 MB/s too)
On my current Rockstor box (same net, gigabit cards) average speed is the same of the linux box (both with read and write to the share), so if you’re always on the same hardware it’s a little bit strange compared to OMV.

As suggested by @Spectre694 that should be nic driver related, specially with a Realtek nic cards.
I had a similar problem on the 140-150 MB/s linux box (with a Realtek nic card) after a kernel upgrade, driver got updated to r8169 (official kernel driver) but i had to downgrade to r8168 (realtek official driver)…and that box is still running with that old r8168, because with r8169 fails (kernel panic).

Realtek nic cards are strange animals

From a shell on you Rockstor box try lsmod to list your kernel loded modules and let us know :wink:

Flyer

Thanks for the reply Mirko. In order to avoid issues with Realtek drivers, I used an Intel gigabit card (PWLA8391GTLBLK PRO/1000 GT) instead of the onboard LAN. Here is what an lsmod generated for me:

Module Size Used by
xt_conntrack 16384 1
ipt_MASQUERADE 16384 1
nf_nat_masquerade_ipv4 16384 1 ipt_MASQUERADE
iptable_nat 16384 1
nf_conntrack_ipv4 16384 2
nf_defrag_ipv4 16384 1 nf_conntrack_ipv4
nf_nat_ipv4 16384 1 iptable_nat
xt_addrtype 16384 2
iptable_filter 16384 1
nf_nat 24576 2 nf_nat_ipv4,nf_nat_masquerade_ipv4
nf_conntrack 110592 5 nf_nat,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ipv4
ext4 573440 1
mbcache 20480 1 ext4
jbd2 110592 1 ext4
ppdev 20480 0
gpio_ich 16384 0
iTCO_wdt 16384 0
iTCO_vendor_support 16384 1 iTCO_wdt
coretemp 16384 0
snd_hda_codec_realtek 81920 1
snd_hda_codec_generic 73728 1 snd_hda_codec_realtek
sg 36864 0
snd_hda_intel 36864 0
pcspkr 16384 0
snd_hda_codec 135168 3 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel
snd_hda_core 65536 4 snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hwdep 16384 1 snd_hda_codec
snd_seq 69632 0
snd_seq_device 16384 1 snd_seq
ite_cir 28672 0
snd_pcm 98304 3 snd_hda_codec,snd_hda_intel,snd_hda_core
parport_pc 28672 0
rc_core 28672 1 ite_cir
parport 49152 2 ppdev,parport_pc
tpm_infineon 20480 0
8250_fintek 16384 0
snd_timer 32768 2 snd_pcm,snd_seq
snd 81920 9 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_pcm,snd_seq,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
soundcore 16384 1 snd
i2c_i801 24576 0
lpc_ich 24576 0
shpchp 36864 0
mfd_core 16384 1 lpc_ich
acpi_cpufreq 20480 0
nfsd 290816 13
auth_rpcgss 61440 1 nfsd
nfs_acl 16384 1 nfsd
lockd 94208 1 nfsd
grace 16384 2 nfsd,lockd
sunrpc 327680 19 nfsd,auth_rpcgss,lockd,nfs_acl
ip_tables 28672 2 iptable_filter,iptable_nat
btrfs 966656 2
xor 24576 1 btrfs
raid6_pq 106496 1 btrfs
sd_mod 40960 5
ata_generic 16384 0
pata_acpi 16384 0
serio_raw 16384 0
e1000 135168 0
ata_piix 36864 1
libata 237568 3 pata_acpi,ata_generic,ata_piix
fjes 28672 0
i915 1146880 1
video 36864 1 i915
i2c_algo_bit 16384 1 i915
drm_kms_helper 131072 1 i915
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 356352 3 i915,drm_kms_helper
uas 24576 0
usb_storage 69632 4 uas

and lspci gives:

00:00.0 Host bridge: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx DMI Bridge (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation NM10/ICH7 Family High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation NM10/ICH7 Family PCI Express Port 1 (rev 02)
00:1d.0 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #1 (rev 02)
00:1d.1 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #2 (rev 02)
00:1d.2 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #3 (rev 02)
00:1d.3 USB controller: Intel Corporation NM10/ICH7 Family USB UHCI Controller #4 (rev 02)
00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation NM10 Family LPC Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation NM10/ICH7 Family SATA Controller [IDE mode] (rev 02)
00:1f.3 SMBus: Intel Corporation NM10/ICH7 Family SMBus Controller (rev 02)
02:00.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)

HI @gcole, is that lsmod from the Rockstor box?!?

My current lsmod (on dev env and not on a running stable/testing channel box) differs from your specially for iptable references (maybe dev env differs from running box, but don’t think so)

Flyer

Yes, that is the Rockstor

lsmod shows e1000 which is the driver for that card.do a

dmesg | grep ‘Ethernet’

just to check for sure. Also is the HTPC a windows box? If so go to the wired driver settings and turn off a setting called Large Send Offload (LSO) and test again.

For whatever reason no one including Intel has made a NIC card where that wasn’t broken and Windows enables it by default. On mine disabling that changed my speeds from around 50MB/s to 100MB/s ish.

1 Like

Thanks for the tip of disable LSO.

In addition: Docker images is slower than OMV, torrent download is around 10x slower. Except for that, I find OS to run pretty much the same.

from dmesg:

[ 3.070978] e1000 0000:02:00.0 eth0: (PCI:33MHz:32-bit) 00:1b:21:06:9a:c3
[ 3.071067] e1000 0000:02:00.0 eth0: Intel® PRO/1000 Network Connection
[ 3.273892] e1000 0000:02:00.0 enp2s0: renamed from eth0

and I disabled LSO and didn’t have any change. Anything else to check?

Ya just to make sure we aren’t running in circles test the actual performance using iperf there are some instructions on this thread here

1 Like

Here are the iperf results. The first is with my normal setup, which is the PC and the Rockstor running thought a Trendnet Gigabit router. The second test was with both the PC and the Rockstor connected straight into the Tp-Link gigabit router. Not any real difference to speak of. Any chance it is testing the write speed of the USB boot device rathe than the WD Red storage drive? Just a thought as to why iperf was even lower than my transfer speeds into the Rockstor share.

bin/iperf.exe -c 192.168.1.124 -P 1 -i 1 -p 5001 -f M -t 10

Client connecting to 192.168.1.124, TCP port 5001
TCP window size: 0.01 MByte (default)

[168] local 192.168.1.100 port 49705 connected with 192.168.1.124 port 5001
[ ID] Interval Transfer Bandwidth
[168] 0.0- 1.0 sec 33.5 MBytes 33.5 MBytes/sec
[168] 1.0- 2.0 sec 31.7 MBytes 31.7 MBytes/sec
[168] 2.0- 3.0 sec 32.3 MBytes 32.3 MBytes/sec
[168] 3.0- 4.0 sec 30.8 MBytes 30.8 MBytes/sec
[168] 4.0- 5.0 sec 32.3 MBytes 32.3 MBytes/sec
[168] 5.0- 6.0 sec 31.7 MBytes 31.7 MBytes/sec
[168] 6.0- 7.0 sec 30.8 MBytes 30.8 MBytes/sec
[168] 7.0- 8.0 sec 31.7 MBytes 31.7 MBytes/sec
[168] 8.0- 9.0 sec 31.4 MBytes 31.4 MBytes/sec
[168] 9.0-10.0 sec 32.2 MBytes 32.2 MBytes/sec
[168] 0.0-10.0 sec 318 MBytes 31.8 MBytes/sec
Done.

bin/iperf.exe -c 192.168.1.124 -P 1 -i 1 -p 5001 -f M -t 10

Client connecting to 192.168.1.124, TCP port 5001
TCP window size: 0.01 MByte (default)

[168] local 192.168.1.100 port 49734 connected with 192.168.1.124 port 5001
[ ID] Interval Transfer Bandwidth
[168] 0.0- 1.0 sec 29.0 MBytes 29.0 MBytes/sec
[168] 1.0- 2.0 sec 31.8 MBytes 31.8 MBytes/sec
[168] 2.0- 3.0 sec 32.1 MBytes 32.1 MBytes/sec
[168] 3.0- 4.0 sec 32.1 MBytes 32.1 MBytes/sec
[168] 4.0- 5.0 sec 31.2 MBytes 31.2 MBytes/sec
[168] 5.0- 6.0 sec 29.0 MBytes 29.0 MBytes/sec
[168] 6.0- 7.0 sec 31.0 MBytes 31.0 MBytes/sec
[168] 7.0- 8.0 sec 30.6 MBytes 30.6 MBytes/sec
[168] 8.0- 9.0 sec 29.6 MBytes 29.6 MBytes/sec
[168] 9.0-10.0 sec 30.3 MBytes 30.3 MBytes/sec
[168] 0.0-10.0 sec 307 MBytes 30.7 MBytes/sec
Done.

@gcole I have just popped a “PWLA8391GTLBLK PRO/1000 GT” (same model as you detail) in a Rockstor 3.8-13.03 and got the following:
Rockstor machine running iperf -s (ie server mode) it’s ip is 192.168.1.247
Client is Fedora 23 using a build in RTL8111 running iperf -c 192.168.1.247 -i1

Client connecting to 192.168.1.247, TCP port 5001
TCP window size: 85.0 KByte (default)

iperf -c 192.168.1.247 -i1
------------------------------------------------------------
[  3] local 192.168.1.110 port 34440 connected with 192.168.1.247 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   101 MBytes   848 Mbits/sec
[  3]  1.0- 2.0 sec   101 MBytes   847 Mbits/sec
[  3]  2.0- 3.0 sec   101 MBytes   844 Mbits/sec
[  3]  3.0- 4.0 sec   101 MBytes   846 Mbits/sec
[  3]  4.0- 5.0 sec   101 MBytes   845 Mbits/sec
[  3]  5.0- 6.0 sec   101 MBytes   845 Mbits/sec
[  3]  6.0- 7.0 sec  80.1 MBytes   672 Mbits/sec
[  3]  7.0- 8.0 sec   101 MBytes   848 Mbits/sec
[  3]  8.0- 9.0 sec   101 MBytes   845 Mbits/sec
[  3]  9.0-10.0 sec   101 MBytes   847 Mbits/sec
[  3]  0.0-10.0 sec   988 MBytes   829 Mbits/sec

So there’s something fishy going on re the sporadic drop to 672Mbps but the rest looks about right and nothing like the very low figures you experienced.
And in the opposite direction as I have often found this test to be asynchronous:-
ie running now iperf -s on the Fedora 23 and iperf -c client-ip-address -i1

------------------------------------------------------------
Client connecting to 192.168.1.110, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.247 port 37682 connected with 192.168.1.110 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   106 MBytes   889 Mbits/sec
[  3]  1.0- 2.0 sec   104 MBytes   873 Mbits/sec
[  3]  2.0- 3.0 sec   104 MBytes   877 Mbits/sec
[  3]  3.0- 4.0 sec   105 MBytes   879 Mbits/sec
[  3]  4.0- 5.0 sec   104 MBytes   872 Mbits/sec
[  3]  5.0- 6.0 sec   104 MBytes   877 Mbits/sec
[  3]  6.0- 7.0 sec   104 MBytes   876 Mbits/sec
[  3]  7.0- 8.0 sec   105 MBytes   879 Mbits/sec
[  3]  8.0- 9.0 sec   104 MBytes   871 Mbits/sec
[  3]  9.0-10.0 sec   105 MBytes   878 Mbits/sec
[  3]  0.0-10.0 sec  1.02 GBytes   877 Mbits/sec

So given no jumbo frames and around 94% efficiency the max should be around 118 MB/s so a little short but fairly usual measurements here with that card in a Rockstor machine, I also have a few things going on with the client that could be dropping these figures a tad but they are in the ball park of what is expected I think.

Regular gigabit network with both machines attached to an HP ProCurve.

Just turned off some network stuff on my Fedora 23 client and ran this time through a silent network TP-Link Archer C5 v1.2’s build in switch.
This section with desktop running iperf -c to the -s on Rockstor with the intel GT in and we have:-

------------------------------------------------------------
Client connecting to 192.168.0.101, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.100 port 57370 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   101 MBytes   846 Mbits/sec
[  3]  1.0- 2.0 sec   102 MBytes   851 Mbits/sec
[  3]  2.0- 3.0 sec   102 MBytes   852 Mbits/sec
[  3]  3.0- 4.0 sec   102 MBytes   852 Mbits/sec
[  3]  4.0- 5.0 sec   102 MBytes   854 Mbits/sec
[  3]  5.0- 6.0 sec   101 MBytes   847 Mbits/sec
[  3]  6.0- 7.0 sec   102 MBytes   854 Mbits/sec
[  3]  7.0- 8.0 sec   102 MBytes   852 Mbits/sec
[  3]  8.0- 9.0 sec   102 MBytes   852 Mbits/sec
[  3]  9.0-10.0 sec   102 MBytes   852 Mbits/sec
[  3]  0.0-10.0 sec  1015 MBytes   851 Mbits/sec

So now consistent and a better result than before. The reverse is pretty much the same as before.
And just for comparison I ran the same tests but this time with the lesser Realtek RTL8169C in the Rockstor machine:-
Again on a silent network through the TP-Link’s build in switch.
iperf -s on Rockstor machine first

------------------------------------------------------------
Client connecting to 192.168.0.101, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.100 port 57396 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  69.0 MBytes   579 Mbits/sec
[  3]  1.0- 2.0 sec  69.1 MBytes   580 Mbits/sec
[  3]  2.0- 3.0 sec  42.1 MBytes   353 Mbits/sec
[  3]  3.0- 4.0 sec  78.8 MBytes   661 Mbits/sec
[  3]  4.0- 5.0 sec  69.1 MBytes   580 Mbits/sec
[  3]  5.0- 6.0 sec  86.4 MBytes   725 Mbits/sec
[  3]  6.0- 7.0 sec  85.1 MBytes   714 Mbits/sec
[  3]  7.0- 8.0 sec  86.4 MBytes   725 Mbits/sec
[  3]  8.0- 9.0 sec  86.4 MBytes   725 Mbits/sec
[  3]  9.0-10.0 sec  86.2 MBytes   724 Mbits/sec
[  3]  0.0-10.0 sec   759 MBytes   636 Mbits/sec

and the reverse so the Rockstor RTL8169 is running iperf -c desktop-f23-ip

Client connecting to 192.168.0.100, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.101 port 55672 connected with 192.168.0.100 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  69.6 MBytes   584 Mbits/sec
[  3]  1.0- 2.0 sec  69.4 MBytes   582 Mbits/sec
[  3]  2.0- 3.0 sec  69.4 MBytes   582 Mbits/sec
[  3]  3.0- 4.0 sec  69.5 MBytes   583 Mbits/sec
[  3]  4.0- 5.0 sec  69.4 MBytes   582 Mbits/sec
[  3]  5.0- 6.0 sec  69.4 MBytes   582 Mbits/sec
[  3]  6.0- 7.0 sec  69.4 MBytes   582 Mbits/sec
[  3]  7.0- 8.0 sec  69.2 MBytes   581 Mbits/sec
[  3]  8.0- 9.0 sec  69.4 MBytes   582 Mbits/sec
[  3]  9.0-10.0 sec  69.5 MBytes   583 Mbits/sec
[  3]  0.0-10.0 sec   694 MBytes   582 Mbits/sec

as can be seen the performance is significantly less with this very common realtek chip, at least it used to be pretty common.

so to summarise:-
Intel PRO/1000 GT card in Rockstor - 851/877 Mbps
Realtek RTL8169C in Rockstor -636/582 Mbps
Note that the Intel GT card is a desktop class network card not a server class.

I have posted these results as I’ve been meaning to test this routers switch again and given your post and my finding the same model network card here it seemed like an opportunity to provide context.
The Rockstor machine was a single core Celeron with 2MB ram.

1 Like

Thanks for the testing Philip. I am using the exact same router myself (TP-Link Archer C5). I dug up an old system here in my office and I’ll put Fedora on it and see what I get. Also grabbed a few new cables, just to check the physical layer as well. I appreciate the data points.

Greg

Interestingly enough, the issue seems to be with the Intel cards under Windows. I threw together another Rockstor on an old Lenovo desktop with a Broadcom gigabit onboard NIC. Here is what IPERF returns between the two Rockstors:

[root@rockstor ~]# iperf -c 192.168.1.105

Client connecting to 192.168.1.105, TCP port 5001
TCP window size: 85.0 KByte (default)

[ 3] local 192.168.1.115 port 43934 connected with 192.168.1.105 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 1.01 GBytes 868 Mbits/sec

So I guess the next step is to start adjusting things under Windows and see what happens there. To take the hardware out of the equation, I’ve also used another Windows box that was a steady 38 MB/sec. I also switched out the router and switch and cables, so I’m fairly sure the answer isn’t within those parameters.

1 Like

Seems to clearly be the Intel NICs under Windows causing the problems. I took out the Intel NIC and used the onboard Realtek LAN and got this into the Rockstor:

bin/iperf.exe -c 192.168.1.124 -P 1 -i 1 -p 5001 -f M -t 10

Client connecting to 192.168.1.124, TCP port 5001
TCP window size: 0.06 MByte (default)

[240] local 192.168.1.121 port 50189 connected with 192.168.1.124 port 5001
[ ID] Interval Transfer Bandwidth
[240] 0.0- 1.0 sec 97.7 MBytes 97.7 MBytes/sec
[240] 1.0- 2.0 sec 98.1 MBytes 98.1 MBytes/sec
[240] 2.0- 3.0 sec 99.3 MBytes 99.3 MBytes/sec
[240] 3.0- 4.0 sec 99.0 MBytes 99.0 MBytes/sec
[240] 4.0- 5.0 sec 100 MBytes 100 MBytes/sec
[240] 5.0- 6.0 sec 99.3 MBytes 99.3 MBytes/sec
[240] 6.0- 7.0 sec 101 MBytes 101 MBytes/sec
[240] 7.0- 8.0 sec 99.9 MBytes 99.9 MBytes/sec
[240] 8.0- 9.0 sec 99.7 MBytes 99.7 MBytes/sec
[240] 9.0-10.0 sec 99.8 MBytes 99.8 MBytes/sec
[240] 0.0-10.0 sec 993 MBytes 99.3 MBytes/sec
Done.

That’s more like it! So now I have to figure out what the issue is within the Intel NICs that is causing them to slow down. I would think Intel to Intel would be ideal, but something doesn’t add up. The problem is my HTPC has onboard Intel. The Windows machine I just used to get the correct transfer rates is a backup server running Windows 10 and didn’t have Intel as the onboard LAN. As suggested earlier, I tried disabling LSO but didn’t see any change. Any other suggesting to check? Again, my Rockstor and my HTPC both have Intel LAN chips