When to Add More Disks (CLI)

Use this procedure to determine if you need to add more disks. Note that disks can be over-utilized by making a poor choice for the RAID profile and/or ZFS record size. In this case, it might be possible to reduce existing disk utilization by moving from RAIDZ to mirrored profiles, and/or matching ZFS record sizes to client I/O sizes.

In addition, if the system is configured with no read- or write-optimized flash drives, then all of the I/O operations beyond DRAM are served by disks. For better performance, consider using flash for any workload that includes random reads or synchronous writes.

  1. Create a worksheet as described in Creating a Worksheet (CLI), select that worksheet, and then enter dataset.
    hostname:analytics worksheets> select worksheet-000
    hostname:analytics worksheet-000> dataset
  2. Enter set name="io.disks[utilization=70]" and then enter commit to add disks with utilization of at least 70% to your worksheet.
    hostname:analytics worksheet-000 dataset (uncommitted)> set name="io.disks[utilization=70]"
                               name = io.disks[utilization=70]
    hostname:analytics worksheet-000 dataset (uncommitted)> commit
  3. Enter done, and then enter done again to exit the context.
    hostname:analytics worksheet-000> done
    hostname:analytics worksheets> done
  4. Wait at least 30 minutes, and then go to analytics datasets.

    Note:

    Thirty minutes is a general guideline. If you have short-duration workloads that are bottlenecked on disk utilization, you may want to consider selecting additional disks at less than 30 minutes.
    hostname:> analytics datasets
  5. Enter show to view a list of available datasets.
    hostname:analytics datasets> show
    Datasets:
    
    DATASET     STATE    INCORE  ONDISK  NAME
    dataset-000 active    1.27M   15.5M  arc.accesses[hit/miss]
    dataset-001 active     517K   9.21M  arc.accesses[hit/miss=metadata hits][L2ARC eligibility]
    ...
    dataset-025 active     290K   7.80M  io.disks[utilization=70]
    hostname:analytics datasets>
  6. Enter select and the dataset with the name io.disks[utilization=70].

    In this example, dataset name io.disks[utilization=70] corresponds to dataset-025.

    hostname:analytics datasets> select dataset-025
  7. Enter read 1800 to read the last 1800 seconds, or 30 minutes, of the dataset.
    hostname:analytics dataset-025> read 1800
  8. Examine the data.

    You might want to use more disks when at least 50% of existing disks are at least 70% utilized.