Thank you for purchasing through links and ads on this site.
diglloyd Deal Finder...
Buy other stuff at
Speed To Create, Capacity To Dream
Storage Wishlist…

CPU Usage for RAID-0 vs RAID-4 or RAID-5

Last updated 2014-11-23 - Send Feedback
Related: Storage, Video, Thunderbay 4 Mini, storage, RAID, Thunderbolt
OWC Thunderbay Mini

Thunderbay Mini configurations start at about $379 without drives. Thunderbay Mini RAID-5 edition also available.

RAID-4 = striping with a dedicated parity drive
RAID-5 = striping with distributed parity

Both RAID-5 and RAID-4 consume significant CPU cycles during write operations in order to perform the parity calculations.

There is no such overhead during reads, which behave similarly to a RAID-0 stripe (no parity calculation).

  • With modern Intel Core i7 CPUs, I/O speed is minimally affected by dint of a fast CPU.
  • With relatively slow CPUs in older Macs, I/O speed can drop and CPU usage will increase in relative terms.
  • Relatively slow CPUs process data relatively slower also, so the need for very high I/O speeds is of less importance than it seems in the context of real world tasks that involve computing.

Does it matter? See Real World Throughput for RAID-0 vs RAID-4 vs RAID-5.

ThunderBay 4 - The Speed To Create. The Capacity To Dream.
Storage Wishlist…
B&H Deal ZoneDeals by Brand/Category/Savings
Deals expire in 5 hours unless noted. Certain deals may last longer.
$2699 SAVE $300 = 10.0% Canon 11-24mm f/4 EF L USM in Lenses: DSLR

CPU usage

As shown below, over a GB/sec* is being written to a 4-drive RAID-4 (SSDs)**. Note that this requires Thunderbolt 2, implying a relatively recent Mac model and CPU.

To write that 1+ G/sec requires about 1.3/2 virtual = 0.65 real CPU cores***. But a RAID-0 stripe is not overhead free; it requires about 0.2 CPU core. And there are other CPU cycles needed by the system to perform the I/O in general (e.g., the file system).

So taking the delta with RAID-0, the use of RAID-4 or RAID-5 at 1+ GB/sec means the use of ~ 1/2 real CPU core on a fast 2014 Intel Core i7.

* Activity Monitor generally displays erroneous speed figures (too high as can be seen) due to its sampling methodology.
** disktester fill-volume --xfer 128MB, 64K RAID stripe size, RAID-4
*** There are 4 real CPU cores on a MacBook Pro and iMac, and some Mac Pros, and 8 virtual cores (~useless). A display of 130% in CPU core terms means 1.3 virtual cores out of those 8, and 0.65 real cores out of 4 real cores.

Discussion continues below images.

~130% CPU Usage for RAID-4 or RAID-5 during intensive write
(during disktester fill-volume test)
~130% CPU Usage for RAID-4 or RAID-5 during intensive write
(during disktester fill-volume test)

Context and relevance

  • Since hard drives are much slower than SSDs, the CPU usage will be commensurately slower, since CPU usage is proportional to data rates.
  • The data rates are fast with SSDs; using CPU cycles for a short duration is far better than forcing an application to wait 2X or 3X as long (for hard drives), forcing the application to remain idle until the data is delivered.
  • Unless the CPUs are already fully utilized (rare), CPU usage by the SoftRAID driver has no appreciable impact.
  • Faster disk I/O means an application that needs it can get more work done faster. Choosing SSDs for such work is a huge gain over hard drives (when and where fast disk I/O really matters).

That said, the rare (and perhaps non-existent !) application that uses all CPU cores while simultaneously demanding a gigabyte per second of data might be better served by hardware RAID that can offload the computation. Or by using a Mac with 8/10/12 cores instead of 4 cores; see 2013 Mac Pro: 4 CPU Cores Can Constrain Your Workflow.

Does it matter? See Real World Throughput for RAID-0 vs RAID-4 vs RAID-5.

Envoy Pro mini - In Motion There Exists Great Potential
SSD Wishlist… | Terms of Use | PRIVACY POLICY
Contact | About Lloyd Chambers | Consulting | Photo Tours
Mailing Lists | RSS Feeds | Twitter
Copyright © 2008-2017 diglloyd Inc, all rights reserved.
Display info: __RETINA_INFO_STATUS__