On Jan 7, 2012, at 7:12 AM, Edward Ned Harvey wrote:

>> From: zfs-discuss-boun...@opensolaris.org [mailto:zfs-discuss-
>> boun...@opensolaris.org] On Behalf Of Jim Klimov
>>   For smaller systems such as laptops or low-end servers,
>> which can house 1-2 disks, would it make sense to dedicate
>> a 2-4Gb slice to the ZIL for the data pool, separate from
>> rpool? Example layout (single-disk or mirrored):
>>   The idea would be to decrease fragmentation (committed
>> writes to data pool would be more coalesced) and to keep
>> the ZIL at faster tracks of the HDD drive.
> I'm not authoritative, I'm speaking from memory of former discussions on
> this list and various sources of documentation.
> No, it won't help you.

Correct :-)

> First of all, all your writes to the storage pool are aggregated, so you're
> already minimizing fragmentation of writes in your main pool.  However, over
> time, as snapshots are created & destroyed, small changes are made to files,
> and file contents are overwritten incrementally and internally...  The only
> fragmentation you get creeps in as a result of COW.  This fragmentation only
> impacts sequential reads of files which were previously written in random
> order.  This type of fragmentation has no relation to ZIL or writes.
> If you don't split out your ZIL separate from the storage pool, zfs already
> chooses disk blocks that it believes to be optimized for minimal access
> time.  In fact, I believe, zfs will dedicate a few sectors at the low end, a
> few at the high end, and various other locations scattered throughout the
> pool, so whatever the current head position, it tries to go to the closest
> "landing zone" that's available for ZIL writes.  If anything, splitting out
> your ZIL to a different partition might actually hurt your performance.
> Also, the concept of "faster tracks of the HDD" is also incorrect.  Yes,
> there was a time when HDD speeds were limited by rotational speed and
> magnetic density, so the outer tracks of the disk could serve up more data
> because more magnetic material passed over the head in each rotation.  But
> nowadays, the hard drive sequential speed is limited by the head speed,
> which is invariably right around 1Gbps.  So the inner and outer sectors of
> the HDD are equally fast - the outer sectors are actually less magnetically
> dense because the head can't handle it.  And the random IO speed is limited
> by head seek + rotational latency, where seek is typically several times
> longer than latency.  

Disagree. My data, and the vendor specs, continue to show different sequential
media bandwidth speed for inner vs outer cylinders.

> So basically, the only thing that matters, to optimize the performance of
> any modern typical HDD, is to minimize the head travel.  You want to be
> seeking sectors which are on tracks that are nearby to the present head
> position.
> Of course, if you want to test & benchmark the performance of splitting
> apart the ZIL to a different partition, I encourage that.  I'm only speaking
> my beliefs based on my understanding of the architectures and limitations
> involved.  This is my best prediction.  And I've certainly been wrong
> before.  ;-)  Sometimes, being wrong is my favorite thing, because you learn
> so much from it.  ;-)

Good idea.

I think you will see a tradeoff on the read side of the mixed read/write 
Sync writes have higher priority than reads so the order of I/O sent to the disk
will appear to be very random and not significantly coalesced. This is the 
pathological worst case workload for a HDD.

OTOH, you're not trying to get high performance from an HDD are you?  That
game is over.
 -- richard


ZFS and performance consulting
illumos meetup, Jan 10, 2012, Menlo Park, CA

zfs-discuss mailing list

Reply via email to