Building faster with Netbeans and SSDs

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

rm -rf   $D/*
mount    $D
chown -R jreynolds:jreynolds $D

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

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

You Want a Vertex Turbo

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!

OCZ Vertex Turbo

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!

Are Two SSDs Worth It?

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.

ATI FirePro 3700

ATI FirePro 3700

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.