The Universal Scalability Law is used to forcast the
scalability of either a hardware or a software system.The USL model works with one independent variable (e.g.
virtual users, processes, threads, ...) and one dependent
variable (e.g. throughput, ...). Therefore the model
formula must be in the simple "response ~ predictor
"
format.
The model produces two coefficients as result: sigma
models the contention and kappa
the coherency delay
of the system. The function coef
extracts the
coefficients from the model object.
The argument method
selects which solver is used to
solve the model:
- "
default
" for the default method
using a transformation into a 2nd degree polynom. It can
only be used if the model frame contains a value for the
normalization where the predictor equals "1
" for one
measurement. This is the algorithm introduced by Dr. Neil
J. Gunther in the bookGuerrilla Capacity Planning. - "
nls
" for a nonlinear regression model. This
method estimates not only the coefficientssigma
andkappa
but also thescale.factor
for the
normalization.nls
with the "port
"
algorithm is used internally to solve the model. So all
restrictions of the "port
" algorithm apply. - "
nlxb
" for a nonliner regression model using the
functionnlxb
from thenlmrt
package. This method also estimates both coefficients and
the normalization factor. It is expected to be more robust
than thenls
method.
The parameter R
defines the number of bootstrap
replicates used to estimate the parameter confidence
intervals. Depending on the number of observations the
default 50 may be too low to get reasonable results. See
boot
and boot.ci
for details.
Bootstrapping with method="default"
can give overly
bad results as the method only works when the normalization
factor can be calculated from the sampled data. The method
confint,USL-method
is used to get the
bootstrapped confidence intervals for a model.
The Universal Scalability Law can be expressed with
following formula. C(N)
predicts the relative
capacity of the system for a given load N
:
$$C(N) = \frac{N}{1 + \sigma (N - 1) + \kappa N (N -
1)}$$