Neil or somebody?  Actual ZFS developers?  Taking feedback here?   ;-)

 

While I was putting my poor little server through cruel and unusual
punishment as described in my post a moment ago, I noticed something
unexpected:

 

I expected that while I'm stressing my log device by infinite sync writes,
my primary storage devices would also be busy(ish).  Not really busy, but
not totally idle either.  Since the primary storage is a stripe of spindle
mirrors, obviously it can handle much more sustainable throughput than the
individual log device, but the log device can respond with smaller latency.
What I noticed was this:

 

For several seconds, *only* the log device is busy.  Then it stops, and for
maybe 0.5 secs *only* the primary storage disks are busy.  Repeat, recycle.

 

I expected to see the log device busy nonstop.  And the spindle disks
blinking lightly.  As long as the spindle disks are idle, why wait for a
larger TXG to be built?  Why not flush out smaller TXG's as long as the
disks are idle?  But worse yet . During the 1-second (or 0.5 second) that
the spindle disks are busy, why stop the log device?  (Presumably also
stopping my application that's doing all the writing.)

 

This means, if I'm doing zillions of *tiny* sync writes, I will get the best
performance with the dedicated log device present.  But if I'm doing large
sync writes, I would actually get better performance without the log device
at all.  Or else . add just as many log devices as I have primary storage
devices.  Which seems kind of crazy.

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

Reply via email to