The Wonders of ZFS Storage
Performance for your Data

  • ZFS
    December 2, 2014

ZFS Performance boosts since 2010

Roch Bourbonnais
Principal Performance Engineer
Well, look who's back! After years of relative silence, I'd like to put back on my blogging hat and update my patient readership about the significant ZFS technological improvements that have integrated since Sun and ZFS became Oracle brands. Since there is so much to cover, I tee up this series of article with a short description of 9 major performance topics that have evolved significantly in the last years. Later, I will describe each topic in more details in individual blog entries. Of course, these selected advancements represents nowhere near an exhaustive list. There has been over 650 changes to the ZFS code in the last 4 years. My personal performance bias has selected topics that I know best. The designated topics are:


  1. reARC

    Scales the ZFS cache to TB class machines and CPU counts in thousands.

  2. Sequential Resilvering

    Converts a random workload to a sequential one.

  3. ZIL Pipelining

    Allows the ZIL to carve up smaller units of work for better pipelining and higher log device utilisation.

  4. It is the dawning of the age of the L2ARC

    Not only did we make the L2ARC persistent on reboot, we made the feeding process so much more efficient we had to slow it down.

  5. Zero Copy I/O Aggregation

    A new tool delivered by the Virtual Memory team allows the already incredible ZFS I/O aggregation feature to actually do its thing using one less copy.

  6. Scalable Reader/Writer locks

    Reader/Writer locks, used extensively by ZFS and Solaris, had their scalability greatly improved on on large systems.

  7. New thread Scheduling class

    ZFS transaction groups are now managed by a new type of taskqs which behave better managing bursts of cpu activity.

  8. Concurrent Metaslab Syncing

    The task of syncing metaslabs is now handled with more concurrency, boosting ZFS write throughput capabilities.

  9. Block Picking

    The task of choosing blocks for allocations has been enhanced in a number of ways, allowing us to work more efficiently at a much higher pool capacity percentage.

There you have it. I'm looking forward to reinvigorating my blog so stay tuned.

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.