Robert Rutherford wrote:
> I hoping someone can help with some advice re tuning our driver and filesystem parameters to optimise write
performance with SSD SATA drives.
You don't provide many actual h/w or configuration details? Those sorts
of write speeds would seem to be a h/w issue (a sloginfo would indicate
the UDMA mode in use, etc)? Or what your benchmarking test is (rd/wr
how, what size, what total size, etc)?
> So my questions are:
> - Does anyone have any suggestions for parameters to tune? Ideally
> someone else has played with similar drives and has some cook-book
> recipes they can share?
Sure, I will wander off into reporting my SSD benchmarking, as the
numbers are so much better than what you see! This is with 6.4.2, on
a 3GHz x86, ICH7, with vanilla "devb-eide" (EIDE emulation of SATA
drives), no options (ends up with 75MB buffer cache). Another machine
I run devb-ahci and native AHCI mode, and see similar SSD numbers.
Anyway ...
I have benchmarked near-quoted performance of the OCZ Vertex SSD.
Sequential File Write/Read Benchmark
OS: QNX 6.4.2 x86pc
Filesys: OCZ-VERTEX, UDMA5, SSD, blk-partition, 100% full
Config: 512MiB file, 64KiB record, fd, fsync, pregrown, malloc
Write: 3433 msec, 419 usec/write(), 39% CPU, 152.71 MiB/sec
Read: 2373 msec, 289 usec/read(), 25% CPU, 220.93 MiB/sec
But further investigation suggests it obtains the write performance
via runtime compression (I had thought that was only with the SandForce
and not Indilinx controller, but my numbers would suggest otherwise), as
using a random record data pattern reduces the throughput considerably.
Sequential File Write/Read Benchmark
OS: QNX 6.4.2 x86pc
Filesys: OCZ-VERTEX, UDMA5, SSD, blk-partition, 100% full
Config: 512MiB file, 64KiB record, fd, fsync, pregrown, malloc
Write: 5247 msec, 640 usec/write(), 25% CPU, 99.92 MiB/sec
Read: 2739 msec, 334 usec/read(), 21% CPU, 191.41 MiB/sec
Putting a filesystem on top of that is another slight decrease,
although fsq4 and fsq6 are fairly similar in performance.
Sequential File Write/Read Benchmark
OS: QNX 6.4.2 x86pc
Filesys: OCZ-VERTEX, UDMA5, SSD, qnx4, 1% full
Config: 512MiB file, 64KiB record, fd, fsync, malloc
Create: 0 msec
Write: 5559 msec, 678 usec/write(), 22% CPU, 94.31 MiB/sec
Read: 2637 msec, 321 usec/read(), 23% CPU, 198.81 MiB/sec
Delete: 5 msec
Sequential File Write/Read Benchmark
OS: QNX 6.4.2 x86pc
Filesys: OCZ-VERTEX, UDMA5, SSD, qnx6, 4% full
Config: 512MiB file, 64KiB record, fd, fsync, malloc
Create: 0 msec
Write: 5226 msec, 637 usec/write(), 31% CPU, 100.32 MiB/sec
Read: 2879 msec, 351 usec/read(), 23% CPU, 182.10 MiB/sec
Delete: 9 msec
Repeated runs are +/- 10MB/s, so reasonably consistent.
Aside, the Intel X25-M seems to read slightly faster (I saw 240 raw),
but artifically limits its write throughput to 80MB/s (although seems
to be able to consistently maintain it at that rate). I read that
other Windows-based benchmarking reached the same conclusion.
Make sure you have the latest drive firmware (this really helps!)
There is some talk that aligning your partition helps (faking geometry
or using an LBA fdisk, or just not partitioning at all), but I
haven't really noticed that having much effect - the SSD controllers
are pretty smart these days. TRIM can be useful, but hard to
balance the cost/reward of when to do this (most SSD vendor websites
will have a Windows tool you can download to erase the device - have
you tried restoring one blank with this?).
> - If not, what are the opinions on the important parameters to play
> with? Cache size seems to have most effect so far - smaller cache
> means faster...
View Full Message