On Tue, Aug 08, 2006 at 10:42:41AM -0700, Robert Milkowski wrote:
> filebench in varmail by default creates 16 threads - I configrm it
> with prstat, 16 threrads are created and running.

Ah, OK.  Looking at these results, it doesn't seem to be CPU bound, and
the disks are not fully utilized either.  However, because the test is
doing so much synchronous writes (eg. by calling fsync()), we are
continually writing out the intent log.

Unfortunately, we are only able to issue a small number of concurrent
i/os while doing the intent log writes.  All the threads must wait for
the intent log blocks to be written before they can enqueue more data.
Therefore, we are essentially doing:

        many threads call fsync().
        one of them will flush the intent log, issuing a few writes to the disks
        all of the threads wait for the writes to complete
        repeat.

This test fundamentally requires waiting for lots of syncronous writes.
Assuming no other activity on the system, the performance of syncronous
writes does not scale with the number of drives, it scales with the
drive's write latency.

If you were to alter the test to not require everything to be done
synchronously, then you would see much different behavior.

--matt
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to