NOTE: You may see unstable/uneven latency slope failure if Jetstess cannot see stable latency slope within 10 minutes.

The tuning process takes many tuning cycles until it succeeds or fails in tuning goals. It starts with the initial parameter values (which can be loaded from a previous successful test configuration file).

In each tuning cycle, there are two internal states: transient state and stable state. The transient state may vary from a few seconds to a few minutes, depending on the disk sub-system.

In the transient state, it collects 30 samples of database read latencies and switches to the stable state when it sees the slope of latency change is less than 5 milliseconds per sample.

In the stable state, it collects 120 samples of database and log latencies and then moves onto next tuning cycle with appropriate parameter value changes.

It succeeds the whole tuning phase when it sees the tuning goals are met. It fails the whole tuning phase, if it cannot meet the tuning goals within an hour.

It also fails the whole tuning phase, if it cannot see stable latency change slope within 10 minutes in each tuning cycle.

 

The following pseudocode make 'evanLatencies' false when it sees greater than 0.5 ms change each sample.

double slope = getSlope(getDatabaseDiskReadAverageLatencies(instanceId));

if (usesNasDevice) // Database Performance Counter

{         

      if (slope > 0.5) evenLatencies = false; // 0.5 ms. per sample

}

else // Logical Disk Performance Counter

{

      if (slope > 0.0005) { evenLatencies = false; } // 0.5 ms. per sample

}