MacBook Pro 256GB SSD upgrade experience
I wanted an SSD for some time and finally caved in. Armed with credit card, screwdriver and trusty MacBook Pro I fitted a sweet SSD and decided to document the experience.
Choosing a drive
There are a bewildering number of options out there. Budget, as always, dictates the combination of speed and size available.
You may not need as much space as you think so even if you intend on a fresh install first clean-up your current drive to get an idea of actual requirements. Remembering to backup before you:
- Identify biggest culprits
Try DaisyDisk ($20), Disk Inventory X (free) or OmniDiskSweeper (free) and drill down to catch unexpected bloat in your folders
- Clean up unused system junk
Use CleanMyMac ($30) or MonoLingual (free) to clean up logs, caches, redundant processor and unwanted languages.
- Archive unused content
Move those podcasts, TV shows, applications and games you aren’t going to use anytime soon to cheaper external storage.
- Deal with orphaned & duplicate files
Find media in your iTunes folders missing from iTunes lists and either trash or add it back then use iTunes Display Duplicates.
If you’re prepared to give up your internal Superdrive then move your existing hard drive to the optical bay and purchase a smaller SSD for the OS and key performance-critical files. This saves cash and gives you more space at the expense of battery life and a little extra weight.
All SSDs are not created equal and the combination of flash and controller (on drive and in your machine) play their parts in defining performance. Firmware, hardware revisions, drive size and operating system can also affect the speed so do your homework.
Drives come and go quickly so keep an eye on review dates and exact model numbers as manufacturers have models with similar names with difference specifications.
I settled on the Crucial SSD 256GB C300 because it is blazingly fast and the 256GB variant fit my 150GB storage requirements.
- Samsung 830 Series
I upgraded my work Lenovo ThinkPad X220 with this drive and it’s crazy fast and also fitted it to my new desktop. Available from Amazon in 64GB ($80), 128GB ($100), 256GB ($230) and 512GB ($449) capacities
- Crucial M4
I upgraded two MacBook Pro 15″ (work+wife’s) with Crucial’s M4 last year. Available from Amazon in 64GB ($75), 128GB ($98), 256GB ($183) and 512GB ($539) capacities
Apple’s factory options for SSD are a mixed bag. They originally used slower drives by Toshiba and from July 2010 whether you get a fast Samsung or a slow Toshiba SSD was pure luck.
Given Apple charge a slight premium for the SSD option, you don’t get to choose your drive model and they are easily replaceable (except the iMac 27″ and MacBook Pro Retina) go with an after-market drive :)
Installing a new hard drive
Newer Unibody MacBook Pro hard-drives are user-replaceable and covered in the manual.
My older non-Unibody is not so simple but those nice people over at iFixit put together a hard drive replacement guide for 15” that is close enough for my 17″.
Installing Mac OS X without a DVD drive
My Superdrive died a while back so installing Mac OS X is a little trickier than usual. There are a few options you might come across.
If you are just doing a one-off Lion install then try the Lion Recovery Disk Assistant which requires a 1GB USB key and an internet connection for the install.
If you want to install Lion to multiple machines or won’t have internet where you’re installing then you can either put down $69 for the
Lion USB thumb drive (no longer available).
My favorite option however is to create my own install USB key. These steps will work for both Snow Leopard and Lion.
Create your own Lion or Snow Leopard install USB stick
The following steps work for both operating systems – the only difference is what you your drag across as a source in step 8.
- Snow Leopard – source is your retail install DVD
- Lion – source is InstallESD.dmg file which can be found in your Applications folder inside the Lion installer. If the installer is missing use App Store to re-download it. You will find the file inside the Lion installer by using Show Package Contents and heading to the Contents > Shared Support folder.
- Insert your USB stick
- Launch Disk Utility from the Utilities folder
- Select the USB stick from the list of devices and then choose the Partition tab
- Choose 1 Partition from the Volume Scheme drop-down
- Press Options… choose GUID Partition Table then OK
- Press Apply to confirm you are happy to wipe away all the data on the device and wait until complete
- Select the USB stick from the list of devices and then choose the Restore tab
- Drag the source (DVD or InstallESD.dmg) from the list of devices into the Source text box
- Drag the USB stick from the list of devices into the Destination text box
- Press the Restore and wait a while
When finished eject the USB stick and insert it into your DVD-less Mac. Turn it on and hold down alt until a boot selection screen shows then use the arrow keys to select your USB device and press return to launch the installer.
It may take a while for the installer screen to appear but be patient.
Remote Install let’s you put the a DVD into a machine with a drive, run Utilities > Remote Install and follow a few steps which include holding down the alt key on the machine that doesn’t have a drive.
Unfortunately only machines Apple shipped without a Superdrive – i.e. a Mac mini or MacBook Air from 2009 or later are happy to boot from a Remote Disc.
The following two shell commands enable Remote Disc on older machines within Finder but don’t allow a remote install:
defaults write com.apple.NetworkBrowser EnableODiskBrowsing -bool true defaults write com.apple.NetworkBrowser ODSSupported -bool true
You will also need to enable sharing on the Mac with the DVD drive. Head into System Preferences then select Sharing then check DVD or CD sharing. You may also want to uncheck Ask me before allowing others to use my DVD drive to avoid having to go to the other machine to continually grant access.
Performance over time & TRIM
A simplified primer
File systems write in blocks and before SSD when the file system wrote to ‘block 1’ it got ‘block 1’ on the drive (unless it was damaged when it would map in a replacement from a reserved section). If it rewrote ‘block 1’ it overwrote what it wrote last time. This is how tools that securely erase files by writing them over and over work.
Now SSDs are fast but the flash technology suffers some limitations the most important is they can’t overwrite data without erasing it first so when the operating system writes ‘block 1’ a second time, it actually stores it somewhere else in the flash (but tells the file system it was ‘block 1’) and makes a note where ‘block 1’ actually is. This avoids the write penalty and also means that you don’t wear out block 1 by writing it over and over again (this is called wear-leveling).
This works just fine until you run out of erased blocks. This happens sooner than you’d think because when the file-system deletes a file it does not actually erase anything but just marks it as not used in it’s own file-system tables knowing it will just get used again sooner or later. (This is how file-recovery tools are able to undelete files).
So this combination of the drive never getting told to erase blocks and only finding out it can re-use them later when its time to write data and it suddenly finds these writes all require it erase blocks too and performance can drop to traditional hard-drive speeds (or worse).
Manufacturers initially solved this problem by writing tools that examined the file-system structures to find out which blocks are unused so they can send ‘erase block’ commands down to the SSD drive so they are ready to be written again without the erase penalty – at least until you run out of blocks again. Because these tools need to know the file-systems internals you can’t throw a Windows tool designed for the NTFS file system at a disk formatted with HFS+ for the Mac and expect it to be able to understand anything.
Another solution involves the drive recording when blocks are being overwritten at the file-system it can mark the older copy of the actual block on the flash as erasable. Now, this may not happen until the disk is quite full and so to avoid stalling again on writes the manufacturers put some extra flash storage on the drive. When it gets in this state the writes gets a fresh block from the reserve and the reserve takes the previously used block to erase and put back into reserve. The problem here is that the manufacturers have to put extra flash and logic on the drive which costs $’ and it’s only able to put off stalling as long as the reserve can keep supplying fresh blocks.
A third solution tackles the problem at the source. Manufacturers agreed on a standard that extends the ATA protocol called ‘TRIM’ that lets file-systems tell the drive when blocks are no longer required and can be erased when it’s not busy. Support was built into Windows 7 and Linux 2.6.28 making a lot of SSD owners very happy.
Mac OS X & TRIM
You could also try to minimize unnecessary writes:
- Don’t use Finder’s Secure Empty Trash or the srm command line tool – these attempt to overwrite the blocks but because of wear-leveling on SSD they’ll just steal blocks up to 35x the size of the file you want to ‘erase’
- Keep large churning files on external drives (e.g. video processing)
- Don’t let your laptop run out of power as it copies the RAM to disk each time (2-8GB)
- Prevent unnecessary disk operations such as the ‘last accessed’ attribute on files (see below)
- Don’t keep running disk benchmarks that cause lots of writes!
Turn off last-access-time
These access times are pretty useless and indeed the iPhone also has them switched off. Create a file named noatime.plist in your /Library/LaunchDaemons path with the following contents:
<plist version="1.0"> <dict> <key>Label</key> <string>noatime</string> <key>ProgramArguments</key> <array> <string>mount</string> <string>-vuwo</string> <string>noatime</string> <string>/</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
Thanks go to Ricardo Gameiro for that tip although his other Mac SSD tweaks of creating a RAM disk is questionable given the way Mac OS X manages memory and disabling the RAM copy-to-disk entirely and therefore losing data is more risky to me than running out of blocks early.
- Turn off the sudden motion sensor – SSDs ignore the park head command anyway
- Turn off HFS+ journaling – some users report odd issues and corruption
If you do get into the situation where your write performance is suffering badly and you are prepared to spend a little time to get it back you can do the following:
- Ensure you have a full Time Machine backup
- Boot from a Linux Live CD (or USB image) containing a recent build of hdparm
- Use hdparm to perform an ATA Secure Erase
- Boot from your Mac OS X DVD/USB stick
- Choose the Utilities > Restore System From Backup menu option
- Point it at your Time Machine backup
You should also be able to do this with other full-system backup tools like SuperDuper but you’ll have to figure out the steps for yourself ;-)
I wish I had some better benchmarking tools but Xbench is all I have, sorry!
Xbench with Crucial C300 256GB on 2007 MacBook Pro
Here are the figures for my Crucial C300 256GB drive with 0009 firmware on my older non-unibody MacBook Pro 17″ (MacBookPro3,1) with a dual-core 2.6GHz CPU and 4GB RAM.
This MacBook Pro is limited to 1.5GB/sec on the SATA bus as it uses an Intel ICH-8M SATA controller and this is limiting the drive.
|Uncached write 4K||200.40||762.30||185.92||789.45||194.20||774.95||208.42||885.91||191.31||931.43|
|Uncached write 256K||196.34||357.61||196.05||359.23||129.89||360.79||157.84||318.87||172.08||320.78|
|Uncached read 4K||67.56||1926.31||69.27||1942.94||63.01||1911.07||60.37||1812.40||72.50||2030.81|
|Uncached read 256K||239.73||628.06||238.22||624.15||236.40||617.67||234.84||615.42||243.42||631.16|
My original performance figures with the original as-shipped 0001 firmware and subsequent 0006 firmware figures are after almost a year of continual use and the drive has not been secure erased in that time. The final set of 0007 figures are on Mac OS X Lion with the TRIM enabler support switched on for a week.
Xbench with Crucial M4 256GB on 2011 MacBook Pro
I had the opportunity to put an SSD in my new work MacBook and immediately jumped to the a href=”http://www.kqzyfj.com/click-3893583-10674245″>Crucial M4 256GB. Here are the crazy figures for that drive with 0009 firmware on a MacBook Pro 15″ (MacBookPro8,2) with a quad-core 2.2GHz CPU and 8GB RAM.
|Uncached write 4K||428.98||1890.35|
|Uncached write 256K||424.35||770.44|
|Uncached read 4K||120.56||2162.18|
|Uncached read 256K||691.20||1244.41|
SSD is fast but given the hype I was expecting everything to be instant and it wasn’t quite there. Applications usually launch within a single dock bounce and everything feels a lot snappier but there wasn’t the massive WOW! I was expecting.
There are also a few other advantages often overlooked, especially on a laptop:
- lower power consumption
- less weight, noise & heat
- greater shock, dust and magnetic resistance
Here’s a table that pulls the specs compared to the 7200RPM Travestar that was previously my main drive.
|Crucial RealSSD C300 256GB||Hitachi Travelstar 7K320|
|Power consumption (W)||0.094 – 2.1 – 4.3||0.2 – 2.2 – 5.5|
|Shock resistance (G/1.0ms)||1500||200|
|Seek time (ms)||< .1||12|
Time will tell how well the machine now deals with large Aperture libraries of RAW images and Visual Studio compilations from inside Parallels and I’ll be sure to report them here.
Check-in (26 June 2011)
I installed the SSD and wrote this article back in April 2010. I’ve revised and tweaked it over the 14 months it’s been published to account for new firmware, updated benchmarks, the new Crucial M4 replacement of the C300 and the fact that Apple now ship SSD’s with very good performance as standard.
My C300 is still going strong through two firmware upgrades, several OS X installs (trying out betas, upgrading to Lion), regular application installs and work with heavyweight software such as VMware Fusion and Aperture.
The Crucial hasn’t yet missed a beat. No calls to support, no stuttering and benchmarks today are very similar to those published for the 0006 firmware update (within 10%).