Identifying CPU Performance Issues (CLI)

Use the following procedure to identify and remedy CPU hardware bottlenecks on Oracle ZFS Storage Appliance. Based on the results of two analytic datasets, suggested corrective actions are provided to increase data throughput.

  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=cpu.utilization, and then enter commit to add CPU percent utilization as a raw statistic to your worksheet.
    hostname:analytics worksheet-000 dataset (uncommitted)> set name=cpu.utilization
                               name = cpu.utilization
    hostname:analytics worksheet-000 dataset (uncommitted)> commit
  3. Enter dataset.
    hostname:analytics worksheet-000> dataset
  4. Enter set name=cpu.utilization[cpu], and then enter commit to add CPU percent utilization broken down by CPU identifier to your worksheet.
    hostname:analytics worksheet-000 dataset (uncommitted)> set name=cpu.utilization[cpu]
                               name = cpu.utilization[cpu]
    hostname:analytics worksheet-000 dataset (uncommitted)> commit
  5. Enter done, and then enter done again to exit the context.
    hostname:analytics worksheet-000> done
    hostname:analytics worksheets> done
  6. Wait at least 15 minutes, and then go to analytics datasets.

    Note:

    Fifteen minutes is a general guideline. This amount of time may be adjusted if you have frequent, short-duration workloads that are CPU intensive.
    hostname:> analytics datasets
  7. 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-005 active     290K   7.80M  cpu.utilization 
    hostname:analytics datasets>
  8. Enter select and the dataset with the name cpu.utilization.

    In this example, dataset name cpu.utilization corresponds to dataset-005.

    hostname:analytics datasets> select dataset-005
  9. Enter read 900 to read the last 900 seconds, or 15 minutes, of the dataset. When you are finished examining the data, enter done.

    If the appliance CPUs reach 100% utilization for more than 15 minutes, you should consider adding more CPUs or upgrading to faster CPUs.

    hostname:analytics dataset-005> read 900
    ...
    hostname:analytics dataset-005> done
  10. 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-006 active     290K   7.80M  cpu.utilization[cpu] 
    hostname:analytics datasets>
  11. Enter select and the dataset with the name cpu.utilization[cpu].

    In this example, dataset name cpu.utilization[cpu] corresponds to dataset-006.

    hostname:analytics datasets> select dataset-006
  12. Enter read 900 to read the last 900 seconds, or 15 minutes, of the dataset. When you are finished examining the data, enter done.
    hostname:analytics dataset-006> read 900
    ...
    hostname:analytics dataset-006> done

    A single CPU core operating at 100% utilization while the others are relatively idle is a likely indication of a single-threaded and/or single-client workload. Consider dividing your workload among multiple clients, or investigate a multi-threaded implementation of your client application to better utilize the many CPU cores offered by other controller models.