The friendly guys over at DSLReports informed me that to achieve proper SSD speed, the filesystem actually has to be properly aligned on a 4KB boundary — which Windows XP does not do out-of-the-box. Instead, you’re required to run
diskpart.exe on an existing Windows machine with your SSD hooked up to achieve this. The folks over at the OCZ forums have put together quite a series of documents explaining the details. What’s stated there does make sense — remember, flash is memory, and memory alignment (yes, as in RAM!) is actually something kernels and even libc (on *IX) do to ensure performance. So this doesn’t surprise me, and at the same time, probably explains what I’m seeing.
But as my reply says, I feel this is even more evidence that existing software (OSes, applications) are not ready for SSDs yet, and chances of me forgetting to do this the next time I format the drive are very high. It’s simply not worth all this rigmarole.
Below is the original portion of my blog post.
Last week I purchased an Intel X25-M (80GB), as I figured I was ready to plop down over US$300 on something that gave me incredible performance. The drive arrived earlier this week, and included firmware 8820 (saved me the trouble of having to update it). My workstation setup (disk/controller-wise) then became very simple:
- Asus P5Q SE (Intel ICH10-based)
- Intel X25-M, 80GB (SATA II)
- Western Digital WD5000AAKS, 500GB (SATA II)
- Pioneer DVD-ROM (SATA)
The WD drive was going to become D:, dedicated entirely to things like mass storage (movies, downloads, games, etc.), while the X25-M was going to be used as the boot/OS drive and for applications. Simple.
I reinstalled Windows a couple days ago onto the X25-M. The first thing I’ll say is that the installation was definitely faster than that of a hard drive, which is no surprise. The fastest part was once the GUI-based portion of the installer was up — that whole thing took maybe 8 minutes at most. Cool.
Then came booting into XP. Well, this is probably the most impressive thing I’ve ever seen: the time the BIOS finishes POST until the point I’m logged in and have a usable desktop is 6 seconds. That also includes the time it takes for me to type my password. Amazing.
Benchmarks on the X25-M are also equally as impressive. Read speeds are around 220-250MB/sec, while write speeds are around 50-60MB/sec (varies based on block size).
One oddity I did run into was during nVidia driver installation, where the installer suddenly spit out a message stating “Nvsvc could not be started; rebooting your computer will fix this problem”. I’ve never once seen that message on any non-SSD-based system I’ve installed nVidia’s drivers on, and I haven’t seen it since rebooting, but it was still strange. (EDIT: It appears this is a newly-introduced problem with nVidia’s last two driver releases, at least for GeForce 9 and Quadro NVS 440 cards. This problem has nothing to do with an SSD being used. :-) )
And then came what I dreaded… strange “stalls” which I couldn’t explain. These were rare; most of the time things opened quickly (blazingly fast), but there were times when things like Firefox took literally 6-7 seconds to launch.
So I started doing reading. And more reading. And even more reading. The more I read, the more I found troublesome annoyances. Here’s a list of the ones I’ve found:
Web browsers and SSDs don’t mix very well due to use of disk caching for visited pages. Apparently this thrashes too hard on the SSD, and bottlenecks start to appear. Firefox has some
about:config parameters you can adjust to help minimise the pain, but the pain still exists. Then I read about how Firefox on an SSD was performing horribly due to use of the “phishing filter” (suspected attack sites and suspected forgery sites), so the solution was to disable those entirely. Specifically, setting these two
browser.safebrowsing.enabled = false browser.safebrowsing.malware.enabled = false
Next came general Windows filesystem performance. I disable NTFS atime (access times) by default regardless if I’m using an SSD or classic hard disk, so that’s not the problem. Occasionally small programs — like CCleaner — would take 2-3 seconds to start. What was the system spending its time doing? I checked Perfmon and wasn’t able to figure it out. It’s like the SSD was “too fast” for the system…
More reading determined I had to do all kinds of bizarre tweaks to the system, including massive registry changes. Here’s a list of what was recommended:
- Disable paging file entirely on C: (SSD), and move it entirely to D: (hard drive)
- Disable the Windows Indexing Service (which didn’t apply to me because the service wasn’t started to begin with
- Disable the Windows Prefetcher —
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\EnablePrefetcher=dword:00000000
- Stop Windows from relocating files required for quicker/faster booting to the front of the disk (improving boot times) —
- Stop Windows from relocating commonly-used files to sectors closer to the front of the disk (improving launch times) —
- Disable NTFS atimes (access times) —
HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate=dword:00000001(note: I do this on all my systems, so this really isn’t a negative against SSDs)
I also ran into one incident where HD Tach (benchmarking program) crashed in such a way where the process was left lingering around in memory chewing up 100% of one of my cores (e.g. on a quad-core, 25% CPU).
I did all of these things, and didn’t really see any form of improvement. Mysterious unexpected delays when launching things would still happen. CPU usage was not a problem; this was purely something going on behind-the-scenes as a result of the SSD being either too fast, or write operations which were “too” synchronous for the OS.
At this point, I will be returning the SSD to my place of purchase. I really love the no-moving-parts aspect, and I’m impressed by read speeds, but this degree of system tuning required just to get “decent performance” out of something that already HAS screaming performance is… well, not worth it IMHO.
What I’m saying is: SSDs are great, but software (OSes, applications, etc.) are obviously not ready for them. Most software has been engineered under the assumption that there’s a hard disk involved, and hopefully over the next 5-10 years that assumption will change.
I will say one thing about SSDs, though: these would be *perfect* for laptops. Those little stalls and so on are pretty much normal on laptops to begin with (I’m basing this on my experience with a Lenovo T60p Widescreen), so an SSD would decrease laptop heat by a large amount, and increase overall responsiveness. But for the kind of desktop usage I have? Well, the X25-M won’t cut it. And I refuse to “destroy” my Windows system with magical registry tweaks which impact the entire system (and not just a single filesystem).