Network share speed

A while back I bought a Raspberry Pi zero (non-wireless) to use as a network share. It works fine for the small text files I needed it for! But then I attached my 1TB external SSD to share my video files also and discovered the transfer speed was… 512KBps! After much troubleshooting, I found the culprit was the micro-USB to Ethernet adapter I was using was limited to USB 1.1 speeds, despite otherwise being a USB 2.0 device. And apparently, this is pretty much the same with all micro-USB-to-ethernet adapters. Yikes!

So I’d like to upgrade, as I can salvage the zero into another unrelated project I had planned. I’d like to have at least a 20MBps transfer speed, which would be about 160Mbps. I’d need either 1Gbps ethernet or 5GHz Wifi. Would the Raspberry Pi 3 Model A+ be a viable solution? https://core-electronics.com.au/raspberry-pi-3-model-a-plus.html

My only worry is that the USB port might be the bottleneck, I’ve found no where that mentions what version that USB port is, just that it exists. Since it’s relatively recent, I would assume it’s USB 2.0, but that doesn’t guarantee that it will work in high speed mode (450Mbps), which would be more than enough for my needs. Just fast mode (12Mbps) is no good.

Basically I’m asking, what’s the max transfer speed of the Raspberry Pi 3 Model A+'s USB port? Has anyone tried it with an external SSD before?

A clear datasheet is hard to find! The best I could dig up was a modified version of the BCM2835 peripherals datasheet (attached) from here:

BCM2837-ARM-Peripherals.-.Revised.-.V2-1.pdf (3.0 MB)

Here’s a good write up on network speed tests on the 3A+: Raspberry Pi 3A+ network speed tested - NotEnoughTech

It’s a USB 2 as well, since the USB controller is in the Broadcom chip - BCM2837B0 - the same as used on the CM3+ and the 3B+. The ethernet port on the 3B+ actually runs off the USB interface which is why it’s only good for about 300Mbps even though it’s a gigabit connection.

Just note that if you’re running both a HDD and ethernet via USB simultaneously, you’ll cut your available bandwidth in half (but that’ll probably still be fast enough for you).

As for wifi, the 3A+ has 5GHz wifi, same as the 3B+.

1 Like

I intend to use the 5GHz Wifi to connect to my network, and it will be sitting no more than 30cm away from my router. I was under the assumption that 5GHz Wifi was capable of nearly 1Gbps throughput. Assuming that with ordinary interference and in a worse case scenario that the device doesn’t support wide band and has to half the bandwidth, it should at least still be getting 400Mbps so I assumed I wouldn’t have to worry about this at all.

That test showing the Pi only connecting at 47Mbps at average speeds has made me double back. If I have to buy a USB 3.0 to ethernet adapter, then I may as well use that extra money to buy the high-end Raspberry Pi 4 Model B instead, which has true 1Gbps ethernet. I’ll research this a bit more to find my optimal device then, thank you for your comprehensive input.

Edit: I’ve just found that disabling the Wifi interface not used will double the bandwidth of the Raspberry Pi! But only if using a USB to Wifi adapter, further convincing me that a Raspberry Pi 4 is the most effective solution.

1 Like

Hi Ryan,

I don’t have too much to offer here, my RPi 4 NAS is able to achieve about 100-800Mbps on ethernet depending on the file size you’re trying to move off. If it doesn’t need to move around I strongly recommend ethernet, truly bombproof compared to wifi. Generally I’ve found even fast devices can only manage about 50mbps from wifi depending on the signal strength and interference.

Good luck with the NAS and I hope you work something out!
-James

2 Likes

Yes, I think I’ll do that then, a Pi 4 over ethernet. With this research I’ve learned that there are many more variables that can decide the final transfer speed over the network. Although I initially thought the Pi 4 would be overkill, in reality it seems like it will strike the perfect balance. The 800Mbps looks good.

Thanks for the help.

1 Like

Hi Ryan,

Glad to see I’ve given you a nudge in the right direction, just keep in mind that tiny files can really bog down a Samba server, what type of files are you moving around mostly?

-James

1 Like

Initially just text files, something to help me remember things. Having it on a network share helped when I forgot which device I made the note on. Yep.

But then I wanted to also use it as a general NAS, for making backups and streaming videos/music. Transfer speed suddenly became a lot more important, 512 KBps is no good.

1 Like

Cool, I just use Samba on top of mdadm for RAID, and stuff like Jellyfin/Kodi on top of that for media streaming and the like. I map it as a drive and use it to store games on so Steam can move stuff on and off my PC quickly and it does well, moving 80GB games around just fine, just make sure obviously that your drives and ports are USB3.

Another thing to consider is booting off USB instead of the SD card , as SD cards are prone to dying after a while out of the blue.

I’ve got a python script I could dig up to display system stats like CPU, RAM, Disk, and network usage on a PiOLED

Hope you enjoy your NAS once you get it built!

1 Like

Woah, I was just going to use Samba for everything, especially since I have a Windows computer I want it to interface with. I genuinely had no idea there was software specific to streaming over local networks, which I’ll research in my own time as it’s a bit off topic for this post.

Booting off the SSD seems like a good idea, but I’ve already got an old SD card waiting. That being said, it is old and probably prone to failure. Would using the SSD as the booting media make it still usable as a portable SSD on other Windows machines (in case I ever want to detach it from the Pi)?

1 Like

Hi Ryan,

Since Pis (and most linux machines) like to run on ext4, and windows wants to talk NTFS or FAT32, you’d have to partition off part of the drive for each use case.

James

2 Likes

The thrilling conclusion!

So I’ve received and set up my new Raspberry Pi 4 as my file hoster/media server and it’s working wonderfully. Just like you said, nearly 800mbps on ethernet! It’s almost like I’m just accessing the computer’s own SSD.

This has worked so well in fact I might get another (well, more that the other project I was going to reuse the pi zero in is also too weak to perform well in). Thank you guys for your valuable inputs!

1 Like

Hey Ryan,

Fantastic! Great to hear it worked out for you! When you’re ready to go down the rabbit hole of multiple ARM-based NASs I’d look at GlusterFS, an amazing enterprise-grade tool to merge multiple server nodes into a single share. I haven’t used it yet but I’m sure I’ll be looking at it as soon as I fill my drives :slight_smile:.

Also if you want to get LOTS of nodes the Odroid HC-series is pretty cool, but a bit less documented than the Pi

Best of luck!
-James

2 Likes