Solid State Drives (SSD) are one of the biggest performance increases to hit personal computers for quite some time. For many years, a solid rule of thumb was that a given computer didn’t have enough RAM and therefore the cheapest way to speed up a computer was to add more RAM. Of course this was only of noticeable benefit if the computer was running out of RAM and hitting it’s , which is generally a pretty common occurrence.
These days it’s more common that a computer will have sufficient RAM for general tasks, so now the major bottleneck in any given system will generally be the storage subsystem. Mass storage will have two constraints on the speed at which data can be accessed – bandwidth and latency. They are similar and related terms, but mean quite different things when applied to storage. Bandwidth refers to how much data you can read from, or write to, storage in a given amount of time. Hard drives at present generally can sustain anywhere from 25MB/sec to 100MB/sec. Latency refers to how long it takes to access a given piece of information from the time you request it. In a hard drive you have two main sources of latency – there is rotational latency and seek times. Rotational latency is due to the spinning nature of a disk, you have to wait for the piece of information you want to read to pass under the head of the disk, the faster the disk spins, the lower the rotational latency will be. Seek times are due to the mechanical movements of the head across the disk, it takes a number of milliseconds to move the heads from one part of the disk to another and then begin reading information. In current hard drives, these times are anywhere from 5 to 15 ms or so.
It is the combination of these two factors that put a cap on the performance of a hard disk, especially when reading and writing a lot of random chunks of data that are distributed over the surface of the disk.
Solid State Drives achieve their amazing performance by reducing seek times to microseconds (one-thousand times faster than hard drives) and completely eliminating rotational latency. They also generally have a much higher bandwidth than hard drives, but this is less of a benefit to the perceived speed of a computer than the reduction in delays.
When you boot up your computer, it suddenly starts up and begins loading the operating system from disk. Modern operating systems are made up of tens of thousands of files, scattered all over the disk. Whilst there are caching methods to reduce the random disk access during the system startup, it’s not eliminated altogether. Then, once you are at the desktop, the programs you have set to launch at startup all begin to launch at once, adding more random disk access on top of the loading OS level services that are still happening in the background. During all this, your computer is probably spending longer waiting to read data from the disk than it is spending actually reading data from the disk. We’re being hampered by what’s known in the industry as IOPS or Input/Output Operations Per Second.
Enter from stage left the SSD. Reducing these delays to a figure that is close to zero means that you computer will boot up quite a lot quicker, as it’s able to get the data it needs when it needs it and not have to wait for mechanical components to move around. Taking a MacBook Pro laptop as an example. The factory hard drive spins 5,400 times per minute (5400 RPM) and, in my experience, starts to really suffer when it’s given more than a couple of hundred IOPS and will simply not be able to deliver any more than around 700-800 IOPS. If the disk is being used this intensively, the rest of the system will seem to grind to a hald, applications will be non-responsive, the system will be slow to do anything and the computer can seem to hang at times. In this very same MacBook Pro, switching to a SSD immediately saw an improvement of over 10x on IOPS. Writing data to the disk, importing a 3GB email archive in mbox format and indexing these emails for full-text search with Spotlight saw the OS performing over 5-6000 IOPS, and the rest of the system was still completely usable.
Boot times are reduced to mere seconds, and this is from power off to a usable desktop state, applications launch in a fraction of the time that they used to and the general responsiveness of the system is improved out of sight.
What’s the catch? All of these benefits do come at a cost, quite literally, in dollars. 1000GB hard drives are available for under $200 whereas a brand-name SSD will set you back around $300-400 for a 64 – 80GB unit.
In putting a SSD in my main workstation, I have had to do some careful data organisation. I’ve had to symlink my media folders to live on a old-school hard drive as I can’t afford the space, and nor would it provide any benefit, having 10’s of GBs living on the SSD. I’ve had to be selective with the applications I have installed, running custom installs for software suites and just installing the components that I use. The benefits to me are well worth it, not only is my system amazingly faster to boot and launch apps, but it’s a lot more usable on a day-to-day basis as well. Another benefit is that SSDs are completely silent, so when my data hard drive isn’t being used and it goes to sleep, my computer is a lot quieter than it was before.
Solid state drives will also require us to rethink a lot of other things with computers that once were considered fact. Things like defragmenting the disk are now worse than useless – as SSDs only have a limited number of write cycles, defragmenting a disk can actually significantly shorten it’s lifespan. Failure modes of SSDs are also going to be different to hard disks with less occurrence of catastrophic failures causing the loss of all data on the whole disk and instead more highly-used areas of the disk will fail to be written to causing parts of the disk to go bad before others.
As prices on SSDs come down over the next couple of years, they will start to become commonplace in more and more computer systems. They will also be used to good effect in more embedded systems, in places where the lack of moving parts is a great asset. Expect to see a lot more of them.
Hello. Thank you for your informative and well-written précis of SSDs for the layperson.
For me, my first SSD has been nothing short of the second-coming of laptop performance. It’s been 6 months since a powered-up my new MacBook Pro with its stock 128 GB SSD and I’m still giddy… As you and Anand Lai Shimpi state, it’s a performance boost by an order of magnitude.
As you know, housekeeping functions — like wear-leveling and flash block optimization — occurs at the firmware level on the drive but it also depends on the OS. Win7 now supports the TRIM command but not OS X, though I read the hooks are present.
I know drive manufacturers provided utilities to run a user-initiated drive maintenance routine to serve as a stopgap until Win7 supported an automatic solution but I can’t find a stopgap tool for an _Apple-branded_ SSD. I’m reluctant to run Diglloyd’s “DiskTester” because as I understand it, Apple could be using proprietary firmware with their OEM drives that might undermine the effort. Part of my research included a call to Apple tech support for guidance. Surprise, Surprise: Apple isn’t forthcoming with any technical specs, advisories, or best practices guide at this level.
In short, I’m wondering if you have any thoughts on how to tackle OS X’s lack of TRIM support at the OS level. Is there a work-around? Is there somewhere on the ‘net you could point me to that may have authoritative technical details?
(I’ve drilled through the usual enthusiast fora for details but haven’t found anything incontestable on Apple-branded SSDs, nor have I found anything to decipher Apple’s model numbers against OEM listings.)
Thank you for any thoughts you may have.
Cheers
ps – sometimes Apple’s drive for ease-of-use products makes Life very hard.
I would say that for TRIM support on OS X, it’s simply a matter of being patient and waiting. Due to the differences between SSD controller chipsets out there, and the risk involved if something goes wrong, I’m simply not worrying about a lack of TRIM support in the OS until such time that Apple release it.
There are 3rd party drives out there, for instance some models from OCZ, that do garbage collection in the drive’s firmware which is kind-of like TRIM, but not as efficient. I’ve had mixed success with OCZ drives on Macs, and in the future will be sticking with Intel ones.
Thanks for your thoughts and time.
Patience. I hear you.
I know this isn’t a tech-support blog but I have a couple follow-ups to your comments, if you don’t mind.
1. As I’m not a programmer and have no sense of Apple programming tradition, if you were to guess, do you think enabling TRIM support would likely fall under an OS X 10.6.x update or an OS X 10.x upgrade (say, from 10.6 to 10.7)?
2. Do you happen to know where I can find more technical details specifically on Apple-branded SSDs and how they operate in OS X?
Apple is so tight lipped and doesn’t provide guidance — even on their own SSDs — on simple things like, how best to configure Energy Preferences (e.g. Safe Sleep/Hibernation, Sudden Motion Sensor, “Hard Disk(s) to Sleep” setting). Users on Intel and OCZ message boards offer suggestions for their respective drives but I’m not sure if those should apply to Apple’s black-box SSD, chipset and firmware included.
I’m grateful for any pointers you might provide.
Cheers from Canada
Hi Peter,
1) I have no idea what Apple will do – I’d guess that a relatively minor feature, such as TRIM, would be a 10.6.x feature rather than a 10.7 bullet point… It all depends on if enabling TRIM in an existing drive needs the data to be wiped. If that were the case, Apple would probably release new laptops with SSDs that have native TRIM support, but probably not enable it for older machines and/or 3rd party drives.
2) The Apple SSDs that I’ve taken out of laptops have all been Toshiba units. I didn’t record the model numbers of any of them, but if you google for Apple SSD Toshiba that may show something of interest.
Energy prefs – things like disk sleep and SMS are (AFAIK) ignored by SSDs – I think they should respect sleep states, but the SMS is a way to protect moving parts, of which an SSD doesn’t have any.
I’ve set my energy saver preferences as I would for a regular system and not worried about it…