2

Setting up some network file shares. I'm looking at either a NAS or a headless desktop PC. Both have gigabit ethernet, and comparable SATA connections. The main difference being CPU and RAM.

How much will CPU and RAM make a difference for transferring data?

Will disk IO become the bottleneck before CPU or RAM does?

7
  • 2
    Just my two cents, but are you not going to be limited more by R/W speeds to disk than any particular OS?
    – James
    Jun 26, 2013 at 18:26
  • 1
    my two bits says go with the nas, unless you want to get into server administration. Jun 26, 2013 at 18:32
  • If you just want something that works, get a NAS and read reviews to make sure that the device can sustain about 100MB/s or more during sequential write with whatever RAID mode you plan to configure the drives in. If you're just worrying about how well it can serve files, RAM shouldn't be too much of an issue. Jun 26, 2013 at 18:36
  • @James I suppose that is part of my question - if throughput is bound by disk R/W speeds, then CPU/RAM shouldn't make too much of a difference?
    – dtmland
    Jun 26, 2013 at 18:37
  • 1
    @dtmland Exactly. Most embedded NASes assume that you'll be bound by disk or network before you are bound by CPU. RAM only really matters for disk caching / web interface, and won't matter if you're occasionally reading large files (i.e., media server). If you're frequently reading small files, then RAM will make a much bigger difference) Jun 26, 2013 at 18:39

2 Answers 2

5

Answer to updated question (see below for original answer):

You'll actually be bound by gigabit networking limits before CPU or Disk in scenarios involving sequential I/O (like a media server with video, music, or photo files) and more than 1 disk. Random I/O will bottleneck you on platter disks, but SSDs will easily put the bottlenet back on the gigabit networking. Some platter disks can saturate a gigabit line by themselves (WD Black drives, 10K rpm drives, 15K RPM drives)

For reference, using 5 disks I can easily hit more than three times gigabit speed with sustained sequential I/O. Using an SSD as a cache drive (with ZFS), I can fairly easily keep both gigabit lines on the server saturated for many (but not all) workloads.

More CPU / RAM comes into play when you want to start running applications on the NAS, such as a backup utility (i.e., CrashPlan), media transcoding/streaming or other CPU-intensive tasks that aren't related strictly to storing data on disk.


A NAS really is just a headless PC with less CPU/RAM, often with an embedded OS.

This question is far too broad to offer any real performance metrics, but know that it can matter. I recently purchased a small ARM-based NAS device, and found that the CPU couldn't handle all the calculations at full speed (RAID5 requires a respectable amount of CPU power). I was copying files at 30MB/s instead of 100MB/s (roughly gigabit speed).

This question is borderline off-topic because it's really broad, but it ultimately boils down to what you plan to do with the device. Most NASes are nice and self-contained; They boot and shut down quickly, have easy-to-replace drives, but are often make you choose between "expensive" or "slow". Desktops and servers are relatively cheap on the other hand, and you can do more with them, but you'll find yourself doing lots of setup yourself (installing the OS, configuring drives, etc.). I'm moving away from embedded NASes because I don't mind the configuration work, and I want to do more on my fileserver than I can reasonably do on the embedded NAS that I have, but that's a personal choice that nobody on this site can answer for you, and hardware changes far too fast for us to give out recommendations.

4
  • +1 for 'I want to do more on my fileserver than I can reasonably do on the embedded NAS'. You also find that, on some vendor offerings, the things you take for granted like WAN synchronisation and access etc. are only available via proprietary addons which cost extra $$
    – James
    Jun 26, 2013 at 18:37
  • Very good input. I've updated my question to hopefully be more on-topic. Let me know what you think. Thanks!
    – dtmland
    Jun 26, 2013 at 18:52
  • @dtmland I've updated my answer. Jun 26, 2013 at 19:02
  • great update, shame I can't upvote again ;-)
    – James
    Jun 26, 2013 at 19:09
3

I wish I had 50 reputation because I'd just agree with the above answer by Darth Android.

You don't hit issues with CPU/Memory generally until you hit 10Gbps networks and that is when you start adding TOE (TCP Offload Engine) to the mix to offload the work to dedicated processing on the NIC card.

TOE is the network card equivalent of a GPU from a graphic card along with something like DMA (Direct Memory Access) used by old style hard drive controllers. It allows for offloading the work of the TCP/IP stack to the NIC instead of running it through motherboard front side bus and CPU which are bottle necks for data being processed at this speed.

Short answer is you are generally not bound by CPU/RAM/Bus until 10Gbps cards are being used.

1
  • So what does "generally" really mean? I don't have an Intel Atom, but I do have an AMD E350 (similar to Atom, stronger graphics, dual core 1,6 GHz), and it doesn't seem to be able to saturate Gbit Ethernet despite a fast platter disk being installed, only doing 40 MB/s instead of 100 MB/s. - Okay, I just read that the E350 is underpowered in this regard. A dual-core Celeron 2,4 GHz would saturate the line just fine. - So I bought a CPU that is indeed an exception to the general rule, and that's what led me here in the first place.
    – Lumi
    Nov 25, 2013 at 19:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .