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 workload. 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 http://www.RichardElling.com illumos meetup, Jan 10, 2012, Menlo Park, CA http://www.meetup.com/illumos-User-Group/events/41665962/ _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss