Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 02 Sep 2009 17:51:35 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        "Derek (freebsd lists)" <482254ac@razorfever.net>
Cc:        FreeBSD-Current <freebsd-current@freebsd.org>
Subject:   Re: siis/atacam/ata/gmirror 8.0-BETA3 disk performance
Message-ID:  <4A9E8677.1020208@FreeBSD.org>
In-Reply-To: <h7lmvl$ebq$1@FreeBSD.cs.nctu.edu.tw>
References:  <h7lmvl$ebq$1@FreeBSD.cs.nctu.edu.tw>

next in thread | previous in thread | raw e-mail | index | archive | help
Derek (freebsd lists) wrote:
> I've been testing the new siis driver, and I have found no
> appreciable performance change, using dd as a measure of "raw"
> performance.

On linear read/write, without port multipliers used, performance of siis 
driver is not so much differs from legacy driver. The most of it's 
benefits are NCQ, FIS-based switching and command queuing affect mostly 
highly parallel random workload.

> I get about 40MB/s read, and 30MB/s write.  See attached
> bench-*.txt files.

It's too small, indeed. Actually, there are two different kinds of siis 
compatible devices: SiI3124 and SiI3132/SiI3531. SiI3124 is more 
expensive PCI-X card, sometimes it goes with built-in PCIe x4 bridge. To 
operate effectively it needs effective bus. Inserting it to usual PCI or 
PCIe x1 slot kills any hope. SiI3132/SiI3531 same time are cheap PCIe x1 
cards. Nobody have ever seen them giving more 130-150MB/s, even looking 
that PCIe x1 should give 2.5Gb/s.

> Am I expecting too much, or do I have something else going on
> here?  (e.g. dd being a terrible benchmark of disk i/o)
> 
> Is anyone else seeing better/worse/same numbers?

I have posted my micro benchmarks here:
http://docs.freebsd.org/cgi/mid.cgi?4A95A3CA.3060306

> Also I find it surprising that my gmirror read is only 40MB/s,
> and not 60-80MB/s, any thoughts on this?

To completely load gmirror on read operations, you may need to run two 
dd's same time. Also make sure, that your gmirror runs in round-robin 
mode. Default split mode, which should help with linear read, is IMHO 
ineffective, at least with default MAXPHYS and slice values.

For maximum linear I/O performance you may want to build kernel with
options 	MAXPHYS=(1024*1024)

If you are doing many linear reads from file system, increase 
vfs.read_max sysctl.

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A9E8677.1020208>