Learn R Programming

⚠️There's a newer version (3.0.3) of this package.Take me there.

Analyze system scalability with the Universal Scalability Law

This is an R package to analyze system performance data with the Universal Scalability Law.

The Universal Scalability Law (USL) was developed by Dr. Neil J. Gunther. It can be used to analyze system performance data in order to learn more about the scalability limitations of the system.

Details are presented in the book Guerrilla Capacity Planning and on the authors website.

Example

Here is an example for the scalability analysis of a Sun SPARCcenter 2000 in the SPEC SDM 91 benchmark. The data used is available for download from the SPEC website and also included as a demo dataset.

library(usl)

# Load data from the SPEC SDM91 benchmark
data(specsdm91)

specsdm91

# Analyze "throughput" by "load" for the "specsdm91" data
usl.model <- usl(throughput ~ load, specsdm91)

# Show a model summary including scalability coefficients
summary(usl.model)

# Predict the location of the maximum in the scalability function
peak.scalability(usl.model)

# Plot original data and computed scalability function
plot(specsdm91, pch=16)
plot(usl.model, col="red", add=TRUE)

The summary command returns the following output:

Call:
usl(formula = throughput ~ load, data = specsdm91)

Scale Factor for normalization: 64.9

Efficiency:
   Min     1Q Median     3Q    Max
0.1214 0.2254 0.3966 0.7799 1.0000

Residuals:
   Min     1Q Median     3Q    Max
-70.89 -23.59  19.39  86.14 274.88

Coefficients:
       Estimate Std. Error t value Pr(>|t|)
sigma 1.705e-02  3.318e-03   5.137  0.00365 **
kappa 7.892e-05  2.492e-05   3.167  0.02489 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 140.6 on 5 degrees of freedom
Multiple R-squared: 0.9624,  Adjusted R-squared: 0.9549

The following image shows the plotted output:

Installation

The package is available from CRAN. Use the following command to install the package from the repository:

install.packages("usl")

Documentation

In addition to the package documentation there is also a package vignette available. Install the package and use the following command to open the vignette:

vignette("usl")

The vignette is also available from CRAN: https://CRAN.R-project.org/package=usl/vignettes/usl.pdf

Copy Link

Version

Install

install.packages('usl')

Monthly Downloads

226

Version

1.8.0

License

BSD_2_clause + file LICENSE

Maintainer

Stefan Moeding

Last Published

August 7th, 2017

Functions in usl (1.8.0)

USL-class

Class "USL" for Universal Scalability Law models
$,USL-method

Extract parts of a "USL" object
peak.scalability,USL-method

Peak scalability value of a USL model
plot,USL-method

Plot the scalability function from a USL model
oracledb

Performance of an Oracle database used for online transaction processing
overhead,USL-method

Overhead method for Universal Scalability Law models
confint,USL-method

Confidence Intervals for USL model parameters
efficiency,USL-method

Efficiency of the system
gradient.usl

Calculate gradient for the universal scalability function
initialize,USL-method

Generate an object from the "USL" class
usl

Create a model for the Universal Scalability Law
usl.solve.lm

Solve a USL model using a transformation to a 2nd degree polynom
show,USL-method

Show objects of class "USL"
specsdm91

Performanced of a Sun SPARCcenter 2000 in the SPEC SDM91 benchmark
usl.solve.nls

Solve a USL model using non linear regression
raytracer

Performance of a ray-tracing software on different hardware configurations
scalability,USL-method

Scalability function of a USL model
summary,USL-method

USL Object Summary
usl-package

Analyze system scalability with the Universal Scalability Law
predict,USL-method

Predict method for Universal Scalability Law models
print,USL-method

Print objects of class "USL"
usl.solve.nlxb

Solve a USL model using non linear regression