Thursday, March 7, 2013

PogoPlug ArchLinux Speed Testing and Notes

If you've been reading this blog, you know I'm a big fan of the $15-20 Pogoplugs. They're really popular with people who want to run a low-powered embedded ARM Linux server. Depending on drive, they consume a mere 4 to 15 watts of power. The platform of choice and most popular is ArchLinux.

This post is tailored for those who are want to run ArchLinux ARM on their pogo and use it as a NAS/File Server. I also assume you have already ventured into the PogoLand with your unlocked Pogo with Arch installed.

I'm going to go over my findings and offer my recommendations.

First of all, before you do anything, make a full backup of your bootable Arch USB. There are a few ways to do it: DD, rsync, and tar gzipping.

Here is a link to get you started:

I personally do a TAR gzip of my USB so I can unzip back to a USB stick that may be a different size.

I believe most or all of the Pogoplugs come with Gigabit standard. However, network speed and copies will be dependent on a few things. The filesystem, the limitation of USB mass storage and your network file sharing protocol.

Out of the box, the Pogos run at 60 Megabytes per second in theory. This is serving from RAM and synthetic benchmarks. When you attach a USB drive, that speed will drop considerably. I would say around 35 MB/sec in super ideal situations.

You can stream 720p MKV and H.264 comfortably in most cases.

There are a few things you should take into consideration and YMMV (Your Mileage May Vary).

After making a backup, the next thing you should do is experiment with Jumbo Frames if your router/switch and network supports it. Start off at 4000 and try slowly going up to 9000. If your system is unresponsive, most likely your guest computer or network switch is incompatible. Worst case scenario, something is wrong with your Pogo and you will need to restore from a backup clone.

As you change your MTU to Jumbo frames, test the transfers using a tool like iperf.
To change MTU, you do like you do in any Linux distro:

ifconfig eth0 MTU XXXX

As you can see in the screenshot above, I started to average 110 Megabytes per second which is near the Gigabit's theoretical limit of 125 MB/s.

Now, when I drop it back to normal frames of 1500, you can see my network speed drop to normal of 65 MB/sec.

Changing to Jumbo Frames can also have undesired consequences. If your other client computers do not have Jumbo Frames, performance will suffer. For example, if you are connecting an iPad or Android device to your Pogo via Samba, there is no way to change Jumbo frames on most mobile devices.

In some cases, mismatch MTUs from client and server produced disastrous results. So YMMV. See below. 2.58 MB/sec.

You may be wondering why bother with network speeds when USB disk access is slow (next section).
Well, with faster Gigabit, you can network mount shares from other sources into your Pogoplug. For example, if you plan on building a Squeezebox music server and just the server itself, you can NFS mount from another file server. The same goes with running a torrent server and saving the files elsewhere. Importantly, if you have multiple disk with multiple shares, you want to ensure each client is not using up all the bandwidth.

Disks Considerations:

The most important thing that affects PogoPlugs (and Linux in general) is the filesystem you plan to use. Native  EXT3/EXT4 is the only way to go.

NTFS and FAT32/ExFAT is not recommended if you want speed. Fuse based Filesystems have to go through several layers.  NTFS and ExFAT is nice because you can store files larger than 4GB. However, Linux EXT filesystems also support large files as well.

The only problem with using EXT3/EXT4 is you can't easily unmount your USB drive and connect to non-Linux running computers. If your main platform of choice is Windows, you may want to stick with using NTFS. I have plenty of Linux computers around the house at my disposal so this is not an issue.

Just for comparison,using the same drive (a 1TB Western Digital Passport drive), NTFS was a slower. Especially in writes, it was horribly bad at 6.5 MB/sec vs 27 MB/sec using EXT3

Here are NTFS disk benchmarks

and EXT3.

I use DD to write and test the same drives. If you plan to use the Pogo as a dedicated server, it is highly recommended to use EXT3 or EXT4.

This also translates over to Network file access. Using Blackmagic's Speed Test on a Macintosh with Samba, I see similar results.

And with EXT3

Interestingly, using Netatalk, I was getting close to 35MB/sec reads.

Encryption will also take your speeds down quite a bit. With SCP/SFTP, you will only get around 5 MB/sec.

NFS did not really fare any better. The best I could get is 8 MB/sec.

In short, if you want the best performance, stick with EXT3 and Samba. USB 2.0 is really the bottleneck with PogoPlugs. They're great at what they do but dont expect them to replace a Synology or any other dedicated NAS for heavy duty work. 25-35 MB/sec is pretty respectable for a USB drive hosted NAS. Backups, Rsync, and Time Machine do not require much more. Then again, a Pogo plus Harddrive consumes 10 watts!

Hopefully this has changed with Series 4 of the PogoPlug. The V4 has a USM SATA dock connector and USB 3.0. However, unlike the Classic Pogos, they don't go for $15-20.
I have one on order and plan to report back soon.

1 comment:

  1. You have to mount ntfs with big_writes and your write performance will be ~4-5 times better ;)