As a followup, I updated my 2011 MacBook Pro (not my Mac Pro) using an aftermarket SSD in December of 2014.
Drive Selection
Balancing budget vs performance vs reputation, I chose a Crucial M500 480GB — not a known high-performer, but with a decent reputation for reliability. I’m not sure the power loss protection capacitors are needed in a laptop, but I liked having them. It has on-drive garbage collection and TRIM support. The drive internally has 32GB of over-provisioning.
Drive Installation
I installed the drive as a direct replacement to the internal spinning disk.
I did NOT allocate any additional over-provisioning using partitions.
I did NOT install any TRIM-enabling hacks.
Drive Usage
The machine is used primarily for OS X/iOS development so there’s a large amount of churn on the disk of varying sized files as compiled object files, podcasts, training videos, etc are downloaded or created, used and deleted. Disk space usage ranges between 25-50%.
The difference in performance against the stock 7200RPM 750GB was pretty striking. I have misplaced my measurements so I can’t be precise in the comparison. “Striking” will have to do.
Performance
After 6 months of churning, performance still looks very good.
Tests using Blackmagic Disk Speed Test show a nearly identical read performance (-0.8%) and a very small decrease in write performance (-2.4%). Some of this could be partially attributed to variability that comes with real-world testing, but I'm pleased that I've experienced only negligible performance impact due to the inability to turn TRIM on for the drive.
Currently, I'm seeing 470MB/s read and 393MB/s write performance and using 26% of the drive.
We’ll see how it holds up over the coming months.
Addendum:
As of OS X 10.10.4, Apple seems to have rendered this point moot. Yay!
http://arstechnica.com/apple/2015/06/latest-os-x-update-allows-you-to-enable-trim-for-third-party-ssds/
Addendum 2:
Some drives are known to have TRIM bugs which may have serious implications. This includes:
- "Micron_M500*"
- "Crucial_CTM500"
- "Micron_M5[15]0*"
- "Crucial_CTM550"
- "Crucial_CTMX100"
- "Samsung SSD 8*"
- Sandforce drives such as OWC Electra
I personally am holding off on enabling until I can confirm firmware updates will address the vulnerability.
Addendum 3:
I found this little jewel for folks that still haven't enabled TRIM and are seeing performance issues on the Crucial drives.
If TRIM is present it will handle this background cleanup, but if for any reason TRIM can't reach the SSD, Active Garbage Collection is there to take care of the drive.
[...], you may simply need to force Active Garbage Collection to run on the drive by powering the SSD on and leaving it idle for 6 to 8 hours. After that, your drive’s functionality and performance should be restored.
Follow these steps to trigger Active Garbage Collection on your Crucial SSD:
[PC instructions]
On a Mac, press the Options key while powering on to enter the Startup Manager screen. Leaving the Mac on that screen provides the SSD with power but keeps it in an idle state so Garbage Collection can function, just like the BIOS screen on a Windows laptop.
Crucial Forums: My SSD used to be so much faster...
Furthermore, if you disable "Put the hard disk(s) to sleep when possible", the drives will have an opportunity to do Active Garbage Collection during idle periods.
Addendum 4:
A wonderfully educational article on arstechnica answers the original question of how to over-provision an SSD on OSX.
It's also possible to emulate the beneficial effects of over-provisioning by simply using less than the stated capacity of an SSD—for example, by purchasing a 90GB SSD, creating a 30GB partition, and leaving the rest unallocated. The controller itself doesn't care about the logical constructs built by the operating system—it will happily continue to write to new fresh pages as long as they're available.
Solid State Revolution