Wednesday, May 20, 2020

Odroid NAS died, Trying a Raspberry pi 4

My Odroid died over the weekend. It's been running every day for 4 years so, I guess it did OK doing what it wasn't really meant to do.


So I'll use something else not meant to do it again :D
This time a Raspberry Pi 4. USB 3 and gigabit ethernet.
https://magpi.raspberrypi.org/articles/raspberry-pi-4-specs-benchmarks



Using the Pi's Wifi:

beomagi@BeoBalthazar ~  2020-05-19 21:46:24
└─ $ ∙ iperf -c 192.168.1.42
------------------------------------------------------------
Client connecting to 192.168.1.42, TCP port 5001
TCP window size:  512 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.109 port 61000 connected with 192.168.1.42 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  91.2 MBytes  76.5 Mbits/sec

beomagi@BeoBalthazar ~  2020-05-19 21:46:45
└─ $ ∙ iperf -c 192.168.1.42
------------------------------------------------------------
Client connecting to 192.168.1.42, TCP port 5001
TCP window size:  512 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.109 port 61509 connected with 192.168.1.42 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  99.5 MBytes  83.4 Mbits/sec

2 runs showing this will generally be ~80 Mbps, so I can expect about 10 megabytes per second. It's not great, though it will handle HD videos (ish).
Benchmarking the wireless has not been great - so I'll have to hook it up to my router via gigabit ethernet.



Using the Pi's ethernet to my router, then over AC wifi:
Hooked up to my AC router, via gigabit ethernet, my PC over AC is getting much better bandwidth.


Using the Pi's ethernet to my router, then over AC wifi:

beomagi@BeoBalthazar ~  2020-05-19 22:07:18
└─ $ ∙ iperf -c 192.168.1.42
------------------------------------------------------------
Client connecting to 192.168.1.42, TCP port 5001
TCP window size:  512 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.109 port 49435 connected with 192.168.1.42 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   468 MBytes   392 Mbits/sec

beomagi@BeoBalthazar ~  2020-05-20 12:57:16
└─ $ ∙ iperf -c 192.168.1.42
------------------------------------------------------------
Client connecting to 192.168.1.42, TCP port 5001
TCP window size:  512 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.109 port 49454 connected with 192.168.1.42 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   483 MBytes   405 Mbits/sec

My HTPC is directly connected to the same router via cable, so pure wired numbers look excellent.
Downloading files are near 50MB/s so this is quite nice.



Using the Pi's purely over gigabit ethernet:

beomagi@beo-htpc ~  2020-05-20 13:11:17
└─ $ ∙ iperf -c 192.168.1.42
------------------------------------------------------------
Client connecting to 192.168.1.42, TCP port 5001
TCP window size:  604 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.108 port 54694 connected with 192.168.1.42 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   943 Mbits/sec

beomagi@beo-htpc ~  2020-05-20 13:17:44
└─ $ ∙ iperf -c 192.168.1.42
------------------------------------------------------------
Client connecting to 192.168.1.42, TCP port 5001
TCP window size:  408 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.108 port 54706 connected with 192.168.1.42 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.09 GBytes   940 Mbits/sec

Now we're talking. This should be good for ~115MBps



Bottleneck - harddrive:

pi@raspberrypi:~/shares/major $ dd if=/dev/zero of=./testfile bs=1000M count=1 oflag=direct
1+0 records in
1+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 10.8304 s, 96.8 MB/s
pi@raspberrypi:~/shares/major $  dd if=./testfile of=/dev/null bs=1000M count=1
1+0 records in
1+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 8.92268 s, 118 MB/s


These are directly on the pi, so they give a decent indication of that USB 3 capability with harddrive storage. It's not far off from the gigabit throughput so it's well matched. The numbers are actually slightly better than the odroid, which is excellent.

Previous NAS setup:
https://beomagi.blogspot.com/2016/09/odroid-xu4-my-new-nas.html