A Gurus Guide To Storage Performance
By Rick Stephens
Dual Core, Quad Core, 8 Cores and now 12 Cores. The CPUs, RAM and Graphics Processing Units of today's computers have unbelievable capabilities and are at previously unimaginable clock speeds. How do we get this complex mass of widely various bus speeds, processors and components to crunch out our work at their speediest and most efficient? While the common answer is dump a bunch of RAM in, and maybe use a solid state drive to boot from, the biggest choke on your computer's performance is almost certainly slow access to your data files. 'Data files' include the operating system, applications, media databases like video or image libraries, and anything else contained on the hard drives attached to your computer or network.
Of all the components inside your computer, the performance of the hard drive has improved the least. No matter what scale of time we choose, 5 years, 10 years, or even since the invention of the hard drive, the CPU, RAM and other components have by far out-achieved the hard drive in performance improvements. While getting bigger and bigger in capacity our hard drive performance has improved in small steps, incrementally at best. Real measurable throughput of today's hard drives is somewhere just under 150 MB/sec for the best 3.5 inch SATA drive when empty, up from around 80 MB/sec several years ago. A definite improvement, but small compared to the enormous bumps in performance from the other hardware that makes up your computer.
Frankly, your super fast Intel 6-Core Westmere powerhouse CPU is wasting clock cycles waiting on data. To get the most out of it we need to feed it more.
There are several ways to improve data flow. 1) More data channels, called multithreading. 2) Faster storage (if your hair isn’t on fire it can still be made faster). By installing additional drives and/or host cards with external storage, or even by building the world’s fastest RAID array, huge performance benefits can be achieved by increasing the number of storage pipelines feeding your CPU(s) and increasing the bandwidth and speed of that storage.
Multithreading is the ability of your computer's memory controller to draw data into and out of RAM from multiple and simultaneous sources. First and foremost, you should ALWAYS separate your media files onto a totally independent storage system. This is equally true for photo, video and audio libraries. These databases go on their own separate bus, with separate drives. And for larger capacity and more performance yet, a RAID array. I cannot stress the importance enough of getting these large media databases off onto their own storage. All by itself this instantly at least doubles your storage performance.
Another place where you can gain another independent multi-threaded channel for greater performance is separating your "User" data from the Operating System and Applications. All this usually takes is another hard drive on separate and independent channel. In today’s Mac Pro towers - Apple has already given us 4 discreet internal drive channels to accomplish this: each an independent SATAII bus. With the data split to drives installed on separate SATA buses you instantly double the available storage throughput by adding just a single drive. Just by putting your high access "User" data on a separate drive from the Operating System, you will enjoy a significant performance boost at minimal cost. See the Desktop Drive Setup Guide for more tips on separating your Users database from the OS drive.
As already mentioned, Large Photo, Audio or Video Databases should ALWAYS be on their own drive or RAID separate from everything else. This is the very first step in improving computer performance. Putting the large databases on their own drives simplifies backups and significantly improves performance. Increasing the speed of the database drives with a fast RAID0 or RAID5 array is the next step in creasing the overall performance while manipulating that database.
By separating data into discreet data pipelines, your system can be accessing different drives with different types of data simultaneously. This is a credible performance enhancement all by itself. Current drive and bus technologies allow the memory controller of your computer to perform most access routines between your hard drives and your RAM without much if any CPU overhead. By splitting the data up into separate data channels you allow the memory controller to upload data from your data drive into RAM while swapping out temp files to a dedicated scratch drive and also simultaneously downloading instructions from the application on your OS and Applications drive. This example uses three drives. However four, five or more drives on separate channels can be accessed all at once within the Mac OS and hardware platform. The slowest part of a hard drive is the action of moving the heads from one are of the drive to another. By dedicating drives to single processes we minimize the number of head moves.
Different applications and usage can benefit from slight modifications on the basic plan here. Separating your data into dedicated channels and separate drives increases performance far beyond the relative low costs in hardware. Those multiple simultaneous accesses are essential to feeding the ravening maw of a CPU hungry for data.
Hardware Speed!(Ah, the life blood of a Guru)
The faster the bus and attached drives, the better your potential performance. However, the bus speed is not the same as actual performance. Bus speeds are target guidelines for a given specification. Actual mechanical speed of the drive is a whole nuther thing. Maximum mechanical speed from drives, as of this writing, is typically under 150 MB/sec for empty drives. Those drives get slower and slower as they fill up. So a bus speed like that of the SATAIII specification of 600 MB/sec is pretty much a pipe dream. The fastest mechanical drives made will still, at best, get you around 150 MB/sec and slow towards 100 MB/sec as they get half full.
Solid Sate Drives(SSD) bring a whole new realm of possible speed. SSDs work at the speed of memory chips. However, realized speeds are limited more by the bus they are attached to than to the actual capability of a solid state memory chip. Mostly we see SSDs being attached via SATA buses - and the SATA bus is designed to optimize speeds of mechanical spinning hard drives. So we don't yet see performance equal the potential nor match the high costs. However speeds can still be dramatically faster with SSDs than mechanical drives are capable of - right up to the limit of the SATA bus they are attached to. Targeting an SSD as your OS, Application and Scratch Disk drive can immediately increase system responsiveness by doubling or even tripling storage performance. Used for the data that can benefit from the low low latency (the wait time for the drive to respond to a request) and the higher transfer speed gives a tremendous and immediate boost to overall system performance.
As of the time of this writing, Apple has introduced SSDs for both portable MacBook and MacBookPro and just recently as an option for the MacPro tower. These are high quality units and initial reports have been very good. Your bulk data storage should still be kept on much cheaper and larger mechanical hard drives. But for system, application and scratch/work space you cannot beat an SSD.
Skip the Apple RAID card for your MacPro though. It uses up all the internal drive slots for a minimally useful RAID storage system. The high cost, and relatively low performance from the RAID card - and the fact it is both limited to the internal drive bays and requires the use of all bays, takes this card off our buy list. I would much rather have the internal drives running my operating system drive, scratch space, Users Directory and backups than use them up for a limited capacity RAID card.
RAID for Storage Acceleration
In high performance graphics and video editing, just separating your data isn’t always enough. Applications like Final Cut Pro and Photoshop require large quantities of fast, uncluttered storage for raw data files, finished data, scratch space, history, even multiple scratch spaces for real-time rendering. For the most efficient operations in these demanding workflow environments, nothing beats the incredible time savings when multidrive striped RAID arrays are implemented for the database. Graphics professionals know all too well that time is money, and watching those progress bars fly by is one of the most satisfying feelings imaginable when you’re under the crunch.
Over the years, Photoshop jocks have discovered and implemented a variety of ways to optimize the program. The top methods to speed up operations (and cut short the "coffee breaks") are to use the fastest possible computer, install a fast startup drive, "cram with RAM", and install a second hard drive or striped disk array to be used exclusively as a dedicated ’scratch disk’- a place where Photoshop can store and access its invisible but ever-present temporary data file. Here at the Gurus Performance Shop, our comprehensive testing has confirmed that Photoshop all-around performance is measurably improved with a dedicated scratch disk - even on machines with maximum memory installed.
Scratch disk performance in Photoshop is further enhanced by using the fastest possible hard drive or even ’striping’ an array of fast drives in a RAID configuration. I prefer to build my scratch disk as a RAID0 array of 2 SATA hard drives inside my MacPro using a couple of the drive slots provided by Apple. I have always preferred to have my photo database stored externally in matched pairs or RAID0 arrays. The matched pairs being two identical RAID0 arrays, one backed up to the other using a backup application like SynchronizeProX or SuperDuper.
Spread your data out. Several different locations will add up to an enormous gain in performance. Pay attention to backups! Backups are more important than speed. For every GB of data storage you need another separate GB of backup storage. RAID is an essential tool to enhance throughput. Use them where appropriate, comfortable in the knowledge that they work, are robust and can increase your speed. SSDs are going to rule the future. As they get more cost effective we can look for ways to place them where they'll do the most good.
Thanks for your time reading this!
The Gurus Certify This Guide Rules