ZFS Tuning: Overview

A Note from the CTO:

This series of articles provides technical tips on how to construct, tune, and manage ZFS storage systems.

WARP Mechanics offers a wide range of commercially-supported Enterprise-class ZFS appliances. These have already been set up and tuned optimally at the factory. Therefore it is rarely necessary for WARP customers to get into this level of detail.

However, WARP believes in giving back to the community, and that WARP appliances may not be right for everyone. Documents such as this may be useful for those who need a ZFS system other than the types offered by WARP, and therefore need to build their own.

However, setting up an enterprise ZFS storage operating system is far more complex than can be explained in any short/simple “how to” document. WARP, for example, has been continually tuning the WARPos stack for six years and counting.

In short: no warranty or support can be offered for non-WARP appliances. And customers who do have supported appliances are encouraged to call WARP rather than attempting to change low-level parameters on their own.


Each article in this series will discuss a different aspect of ZFS tuning. This article discusses tuning overall.

The first point about ZFS tuning is that it is often advisable not to do it. A few simple commands can drastically harm a ZFS storage system.

The second point is that it is always necessary to do it. If you simply download ZFS source code from the internet, or install RPMs, it will do the wrong thing a high percentage of the time. Sometimes people post blog entries bemoaning the low performance or reliability of ZFS, when in reality, they simply didn’t configure it correctly.

Obviously, the two points above create a bit of a problem for customers who want to “roll their own” ZFS appliance. 🙂 Never tune it, yet always tune it…

In each tuning article, we will attempt to focus on tuning options that most customers can and should change, in most cases, with minimal risk.

For a more comprehensive treatment of the topic, see the “ZFS Evil Tuning Guide”. But bear in mind that the guide was written for Solaris, so virtually every example will need to be tweaked somewhat to make it work for Linux.