... work in progress, please come back later ...

Understanding NAS performance

This article tries to explain why low-end NAS devices perform so badly. It is not hindered by any real knowledge of it’s author, it descibes roughly the bottlenecks that are likely to cause this slowness.

The possible bottlenecks are described in the following chapters. After that a performance analisys is given.

Server/client communication


Storage subsystem

Many NAS solutions use RAID to combine several harddisk into one single giant virtual harddisk to store the data on. There are several forms of RAID called ‘levels’ and each level has it’s own specific behaviour. If you are unaware of how RAID works then it would be a good idea to read some more information on RAID before continuing.

As RAID level 5 is one of the most commonly used and sensible RAID level (to be used in a NAS device carrying three or more harddisk), this article will primarily focus on this RAID level and its influence on the performance.

In the next paragraphs is explained how data is read and written using RAID-5:

How data is stored

The controller stripes blocks of data and parity information (for error recovery) across all drives. In RAID 5, the parity block is distributed among the drives of the array, giving a more balanced access load across the drives.

The parity information is used to recover the data if one drive fails and is calculated using an exclusive-OR algorithm (XOR). The disadvantage is a relatively slow write cycle (2 reads and 2 writes are required for each block written). The array capacity is N-1, with a minimum of 3 drives required. RAID 5 includes disk striping at the byte level and parity. In RAID 5, the parity information is written to several drives. RAID 5 is best suited for networks that perform a lot of small I/O transactions simultaneously. RAID 5 also addresses the bottleneck issue for random I/O operations. Since each drive contains both data and parity, numerous writes can take place concurrently.

How data is read

As opposed to writing to a RAID-5 array, reading from the array doesn’t include parity data as long as the data correctly read. When a CRC error occures or when a disk fails the parity is used to repair the data.


So far a number of The two major performance dermining parameters are underlined in the text above. In general the performance of a NAS device is determined by two factors:

  • The XOR processing power of the CPU.
  • The subsystems capability of moving data around quickly.

RAID situations are capable of slowing any NAS device down, especially RAID-5.

doc/general/nasperformance.txt · Last modified: 2006/05/03 16:16 by admin