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>