General Topics






Tips and How-To



The following guidelines apply to hard drives in general, but are of particular importance with RAID configurations.

Mac OS X caching

All disktester commands bypass the MacOS X file system cache (or rather, DiskTester sets the force-read and no-cache flags).

Thus, test timings and rates are always real throughput to the disk(s)/volume. However, large caches on some disks, especially striped RAID volumes can have very large caches necessitating relatively large test sizes for an accurate picture.

For example, with a RAID 0 stripe of 4 disks each with a 32MB cache means that 128MB of cache memory is present. As a rule of thumb, use a test size that is at least 8 times larger than the total size of the disk caches, with 16 or 32 times preferred for the most consistent results.

Turn off interfering programs — Spotlight and Time Machine

When testing your volumes/drives for speed, turn off Time Machine and exclude the test volume from backups. Don’t forget to turn Time Machine back on if you use it.

Spotlight is a particularly nasty offender. Be sure to exclude the test drive from Spotlight indexing. Failure to do so with some tests can hang the machine for hours as Spotlight attempts to index a multi-terabyte file.

Running other programs while testing

Test results can be affected by other programs if they access the disk being tested (or in some cases even if non-test disks are accessed).  Other programs also consume memory—which might mean that MacOS could be forced to use virtual memory, which can cause disk access and erratic results while testing.

For these reasons, you should run performance-oriented tests only after quitting other applications, and making sure “background” programs like Apple’s SpotLight are not indexing any drive(s) during the test.

Don’t assume that all similarly specified hard drives will perform equivalently

Don’t even assume the exact same model drive will perform the same. Sometimes there can be “duds” which are up to 10% slower than other samples. Sometimes these duds are duds because of a large number of bad blocks which have to be mapped out— it’s a warning sign: use fill-volume with a new drive.

Take 3 drives from 3 vendors, all of which are 7200rpm with a 16MB-buffer.   Test them singly and in a striped RAID configuration and you’ll often find that there are distinct performance differences. General benchmarks from generic testing sites are often of little help for determining actual performance with your particular hardware and software. Test and observe, don’t assume.

Factors that can influence performance include:

This is not an exhaustive list, but it should serve to illustrate that getting top performance from any particular setup is not something you can be assured of from a generic review of a hard disk.

Don’t assume a device is reliable until you’ve tested it.

Multiple factors can induce flaky performance in a disk subsystem.  These include:

Use DiskTester’s test-reliability command to verify that your volumes are reliable (including network volumes). But always test a new volume with fill-volume first.

Do not assume your disk/volume is reliable before using it for “production”.  Always have a recent backup, preferably no fewer than three backups stored away from the computer.

The most troublesome type of failures are intermittent failures, which are difficult to detect except with the help of programs like IntegrityChecker.  Though rare, intermittent failures are particularly insidious, because they can alter data without being detected. Bad data then gets backed up, replicating the damage. Long-term storage suggest archiving (read-only backup) is appropriate for some users.

Read only

DiskTester never opens your files in anything but “read only” mode; it never writes to your files. Of course, some commands like fill-volume create new files for testing, but those are test files.

DiskTester cannot change, modify or corrupt your files, but a flaky system can crash, which can lead to problems. One worthwhile role of DiskTester to flush out any problems before trusting a machine for your work.