Testing my Odroid’s best-case scenario speed for data transfer. Using NFS. Using 2x Crucial MX500 SSDs in BTRFS mirror.
[oddmin@bikypi4 tmp]$ rsync -v --progress hrmpf-x86_64-5.15.11_1-20211227.iso /mnt/2/hrmpf-x86_64-5.15.11_1-20211227.iso
1,566,277,632 100% 72.31MB/s 0:00:20 (xfr#1, to-chk=0/1)
sent 1,566,660,132 bytes received 35 bytes 66,666,390.09 bytes/sec
total size is 1,566,277,632 speedup is 1.00
66 MB/s write. Not looking good.
[oddmin@bikypi4 tmp]$ rsync -v --progress /mnt/2/hrmpf-x86_64-5.15.11_1-20211227.iso odroidhc4/hrmpf-x86_64-5.15.11_1-20211227.iso
1,566,277,632 100% 44.50MB/s 0:00:33 (xfr#1, to-chk=0/1)
sent 1,566,660,132 bytes received 35 bytes 46,765,975.13 bytes/sec
total size is 1,566,277,632 speedup is 1.00
~47 MB/s reads? u w8 m8
Maybe my Pi 4 is not up to snuff. I am using a m.2 NVME SSD in a USB 3.0 enclosure. I still have about 88 GB left (out of 256), so it shouldn’t slow down that much, but the Pi doesn’t have the best CPU, nor the best USB controller, so there are tons of bottlenecks here.
Let’s switch things a little. My TR system has 2x Intel 670p 1TB QLC NVME SSDs in ZFS mirror, of which I only have about 106GB left (not ideal, as it’s not under the 80% mark to have better caching and stuff in MLC or TLC mode), but should be way better than my main PC (the Pi 4). Besides, it will probably cache the image in its massive 64GB of RAM anyway.
[oddmin@biky-tr ~]$ rsync -v --progress /media/hrmpf-x86_64-5.15.11_1-20211227.iso .
hrmpf-x86_64-5.15.11_1-20211227.iso
1,566,277,632 100% 110.64MB/s 0:00:13 (xfr#1, to-chk=0/1)
sent 1,566,660,132 bytes received 35 bytes 108,045,528.76 bytes/sec
total size is 1,566,277,632 speedup is 1.00
108 MB/s reads, now we’re talking!
[oddmin@biky-tr ~]$ rsync -v --progress hrmpf-x86_64-5.15.11_1-20211227.iso /media/
hrmpf-x86_64-5.15.11_1-20211227.iso
1,566,277,632 100% 785.74MB/s 0:00:01 (xfr#1, to-chk=0/1)
sent 1,566,660,132 bytes received 35 bytes 89,523,438.11 bytes/sec
total size is 1,566,277,632 speedup is 1.00
Wait, what the…?! 785 MB/s writes? That can’t be right. It took 1 second to transfer it, WTH? It’s a 1.5GB file! That is 6825 Mbps, that’s almost 7x faster than gigabit. I don’t trust it. The 89.5 MB/s sounds more realistic.
I did delete the file before transferring it, but just to make sure the result isn’t skewed by some kind of RAM caching or BTRFS on-disk recreation schenanigans, I just transferred a win10 iso from my PC to my TR system. Attempting to write this to the HC4 via NFS.
[oddmin@biky-tr ~]$ rsync -v --progress Win10_21H2_English_x64.iso /media/
Win10_21H2_English_x64.iso
5,883,697,152 100% 815.57MB/s 0:00:06 (xfr#1, to-chk=0/1)
sent 5,885,133,702 bytes received 35 bytes 97,274,937.80 bytes/sec
total size is 5,883,697,152 speedup is 1.00
I don’t understand how rsync does that thing with the initial read, I should probably RTFM. But 97 MB/s sounds realistic, I’ll take it.
I’m happy with the results for now for big files.
sent 1,046,287,563 bytes received 44,867 bytes 15,055,142.88 bytes/sec
total size is 1,045,868,704 speedup is 1.00
This is my PC transferring 1GB of spicy memes to the HC4. All small files. 15MB/s write. Not great, but hey… small files. Besides, bottlenecks from the Pi. This thing really is kinda garbage, isn’t it (the Pi 4)?
Here’s what a real tiny chad transfer looks like:
sent 1,046,276,466 bytes received 44,867 bytes 72,160,091.93 bytes/sec
total size is 1,045,868,704 speedup is 1.00
72MB/s reads from HC4 to TR. For small files.
How about we delete the memes on the HC4 and re-transfer them from the TR?
sent 1,046,287,730 bytes received 44,867 bytes 16,222,210.81 bytes/sec
total size is 1,045,868,704 speedup is 1.00
16MB/s write. Ouch. I’d say it’s margin of error at this point. Still, a GB of memes. Ok, ok, fine, the HC4 isn’t the greatest in writing tons of small files at once. I wonder how it will perform when I will launch a package manager update for the containers that will run on the HC4. It will be an interesting experiment, although I kinda wish to use iSCSI and make new FS on it, instead of using NFS. From my experience with NFS on the Pi 2 on a USB 5400 RPM external HDD, I was not impressed with the speed my package manager was extracting and installing downloaded binaries.
Well, that’s a story for another time. That’s all for now.