Chapter three, wherein I determine the cause of my workstation problems.
Here’s part 2 of my saga about dealing with data corruption on my Linux machine: turning on synchronous mount options.
The build directories that Netbeans uses are pounded a lot, and chances are you have enough ram to leverage tmpfs. Let do it! Start with our /etc/rc.local file:
echo deadline > /sys/block/sda/queue/scheduler echo 1 > /sys/block/sda/queue/iosched/fifo_batch D=/home/jreynolds/.cache/netbeans rm -rf $D/* mount $D chown -R jreynolds:jreynolds $D D=/home/jreynolds/NetBeansProjects/MyProject/build rm -rf $D/* mount $D # dont furgit the ram directory wants to be regularly deleted by netbeans mkdir $D/ram chown -R jreynolds:jreynolds $D D=/home/jreynolds/build/build-lib/ rm -rf $D/* mount $D mkdir $D/jar mkdir $D/classes chown -R jreynolds:jreynolds $D exit 0
Next we make our /etc/fstab match:
none /var/tmp tmpfs defaults,noatime 0 0 none /tmp tmpfs defaults,noatime 0 0 none /home/jreynolds/.cache/chromium tmpfs noatime,noexec 0 0 none /home/jreynolds/.cache/netbeans tmpfs noauto,noatime 0 0 none /home/jreynolds/NetBeansProjects/MyProject/build tmpfs defaults,noatime,noauto 0 0 none /home/jreynolds/.mozilla/firefox/0m31s0ag.default/Cache tmpfs defaults,noatime,noexec 0 0 none /home/jreynolds/build/myproject-lib tmpfs noauto,noatime 0 0
I had little idea that you could so easily change the disk scheduler in linux. I’m actually rather relieved I can do it in grub, or even live. I’ll have to do this on my workstations with SSDs.
Unless you want to go all spendy on an Intel X25-M or X25-E…However, after reading Anand’s SSD Anthology, the best value SSD is the OCZ Vertex Turbo. Some of my lingering questions have been answered!
TRIM commands provide a modest performance enhancement if the drive is not near capacity. However as drives approach capacity, TRIM support doesn’t help random write performance. Intel is the winner here, but the OCZ Vertex is a clear second. Anand’s review indicates that any other SSD is likely using a cheap JMicron controller and will “stutter and pause” in ways that platters don’t. The upshot of this is: inferior SSD controllers, even with TRIM support, would still stutter and pause when near capacity. TRIM support would give you a little more time to avoid getting there, but you’ll likely get there no matter what.
Basically, the Vertex is the only affordable SSD that performs better than a VelociRaptor at “used condition” random writes. Given that any read activity will be lightning fast compared to rotational media, this is much better performance than winchester raid and without the latency spikes that JMicron controllers exhibit.
The value of TRIM support and RAID. Intel and Adaptec, et. al., have indirectly mentioned to various forum moderators that they’re going to support TRIM on RAID controllers RSN. I wouldn’t wait, actually. Striping the Vertex would be fine, it would help random write performance by decreasing the amount of writes per drive. Read performance will ROCK!
I was just pricing out components for a Windows 7 system for a Photoshop user. My idea was to have two SSD drives, one for the boot drive, a second for ssd for photoshop scratch, and a 1TB drive for finished work. A Core i5 system with 8GB ram seems to price out at $2000, including two nice Viewsonic 24″ monitors. By choosing an AMD X4 processor and two 23″ Acer monitors, I can squeeze it down to $1500. That’s a big difference. With the SSDs and a CS4 approved ATI graphics card (don’t need a gamer card of course), a slower processor shouldn’t actually make much of a perceptible difference, right? Seriously–the system it would be replacing is like six years old.
So my big question is–are two separate 32G SSDs a good choice? To divide up this way? These motherboards come with built in RAID, so would I ultimately get better performance striping both a C: and E: across the two SSDs? Or is it best to just let Photoshop dominate a whole drive just for itself? I’ve always been hesitant to raid a boot volume, of course. And booting off the the 1TB drive is of course…absurd.
All advice welcome.
Edit: it might be better to just raid0 two OCZSSD2-1VTXT60G and get a combined 400MB/s write speed.