• No results found

Multiserver Capacity Equation

N/A
N/A
Protected

Academic year: 2021

Share "Multiserver Capacity Equation"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

Multiserver Capacity Equation

Done Right, Dr. Neil J. Gunther Performance Dynamics August 10, 2009 SM

(2)

Alistair’s Capacity Equation

Delay (sec)= Traffic (reqs/sec)

Capacity (#machines) (1) This equation says 2 things:

1 Delay is directly proportional to the traffic (i.e., throughput)

2 Delay is inversely proportional to the system capacity

Example

Think of a grocery store. More customer traffic, longer lines means longer delays. If we add more capacity/checkout lanes, the delay should be shorter.

(3)

Dimensional Analysis

Delay clearly has the dimensional units oftime: [time]

Traffic rate has dimensional units ofinverse time: [1/time]

Pure quantities or numbers have no dimensional units: [1]

Example

A rate represents some number of things completed per unit time. Speed or velocity is a rate measured in miles completed per hour (in the USA). Number of miles is a dimensionless engineering quantity:

[speed] = miles hour ≡ 1 time

Allrates have the dimensional units of inverse time.

(4)

Problem

In dimensional form, Alistair’s eqn.(1) becomes:

[Delay] = [Throughput] (2) where:

Delay has the dimensional units of time:[time]

Traffic throughput has dimensions of inverse time: [1/time]

Machine capacity is dimensionless:[1]

But eqn.(2) fails dimensional analysis because:

[time] = 1 time (3)

(5)

What to Do?

We could make things dimensionally consistent by inverting the right-hand side of eqn.(3). In other words:

[time] = 1 time −1 = [rate]−1= 1 rate (4)

Since two inverses make an upright,:

Delay = k

Throughput (5)

which says the Delay is inversely proportional to Throughput. In symbols:

R= k

X (6)

(6)

Correct But Very Sophisticated Formula

I’m going to “simplify” the discussion with these symbols:

Definitions

R: average delay or response time[time]

λ: arrival rate of requests per unit time[1/time]

m: number ofserversor machines (dimensionless)

S: the service time[time]

ρ: server utilization or traffic intensitymρ=λS (dimensionless)[1]

Note: 0< ρ <1 (can’t be more than 100% utilized)

R= S

1−(λS/m)m =

S

1−ρm (7)

(7)

Grocery Store with

m

=

1 Lane

R= S

1−λS (8)

Note the arrival rate (λ) or throughput is in the denominator.

Example

Slack period: λ'0. Amount of traffic in the store is small. R =Sin

eqn.(8). Time to get through checkout is just the timeS

for the cashier to ring up your groceries.

Peak period: λ'1/S. Then,λS'1, the difference(1−λS)→0 in

denominator of eqn.(8) so,R → ∞. In heavy traffic, your

time to get through the checkout grows unbounded, i.e., will take a hell of a long time!

(8)

What Happens Between Light and Heavy Traffic?

0.0 0.2 0.4 0.6 0.8 1.0 Ρ 2 4 6 8 10 RS

The relationship betweenRandλ(ρ=λS) is nonlinear (because of the dimensional inverse) and therefore looks like a curve—a very special kind of curve.

(9)

What Happens with More Server Capacity?

Use PDQ performance tool to get exact solutions.

library(pdq) # PDQ globals stime<-0.499 servers<-c(1,2,8,32,64) node<-"qnode" work<-"qwork" for (m in servers) { arrivrate<-0 xc<-0 yc<-0 for (i in 1:200) { Init("") arrivrate<-arrivrate + 0.01

aggArrivals<-m * arrivrate # remember Erlang! CreateOpen(work, aggArrivals)

CreateMultiNode(m, node, CEN, FCFS)

SetDemand(node, work, stime)

Solve(CANON)

xc[i]<-as.double(aggArrivals*stime/m)# rho yc[i]<-GetResidenceTime(node,work,TRANS)/stime# R/S }

if (m == 1) {

# draw plot frame and first curve

plot(xc, yc, type="l", ylim=c(0,10), lwd=2,

xlab=expression(paste("Server utilization ",(rho))), ylab="Latency (R/S)")

abline(h=1.0,lwd=1,col="gray")

abline(v=1.0,lwd=1,col="gray")

today<-paste("NJG on",date())

text(0.25,7, today)

text(0,9, "www.perfdynamics.com/Tools/PDQ-R.html", adj=c(0,0),vfont=c("serif","plain"))

# left-jutified legend

text(0.1,6,

paste("Capacity (m):",paste(servers[1:length(servers)],collapse=’,’)), adj=c(0,0))

text(0.1,5.5, "Black: PDQ exact",adj=c(0,0))

text(0.1,5.0, "Blue: Analytic approx",col="blue",adj=c(0,0)) } else{ # overlay other curves

lines(xc, yc, lwd=2)

lines(xc, 1/(1-xcˆm), lty="dashed",lwd=1,col="blue")# test }

c

(10)

PDQ (Pretty Damn Quick) Output

By increasing server capacity (m), the response time remains close to service timeS

(horizontal line atLatency=1) at higher server utilizations or traffic rates.

0.0 0.2 0.4 0.6 0.8 1.0 0 2 4 6 8 10 Server utilization (!) Latency (R/S) NJG on Wed Aug 5 08:39:41 2009 Capacity (m): 1,2,8,32,64 Black: PDQ exact

Blue: Analytic approx

Tuesday, July 7, 2009

(11)

My Proposed Equation

On July 7, 2009 I came up with this exact and correct multiserver equation: Definition

R= N

mλ (9)

This is very close to eqn.(1) in form and spirit.

k→Nis the previous “constant” of proportionality. It’s really a function of the request rate:N=N(λ), ... I lied.,

In words:

Delay= Total requests

(# machines)×(machine Throughput) (10) Doesn’t blind the audience with too much science.,

(12)

Diagram for Neil’s Equation

Definitions

1 Circles represent machines servicing requests 2 Squares represent waiting requests

! m ! . . . ! 1 2 m R = N mλ

Aggregate arrivals or total throughput:mλ Total number of requests already in the system:N

Throughput of each machineλis indenominator

Satisfies: delay=k/throughput, per dimensional eqn.(5) Nonlinearity (slide 10) is hidden in theN(λ)function

(13)

Coordinates

www.perfdynamics.com perfdynamics.blogspot.com twitter.com/DrQz

References

Related documents

+ good response times for interactive processes - depends on burst length estimates. - compute-intensive processes

• Mbps – Megabits Per Second – A unit of measurement used to show the capacity and/or rate of speed for a particular medium in megabits. • MBps – Megabytes Per Second - A unit

tive of an array of child welfare agencies who have access rights to the case plans of the children in their care can review the educational records or the per- sonally

We have seen that time-ordered correlation functions have poles when the external fields are on the mass shell of asymptotic particles.. The residue of these poles is given by

The dentist or other dental assistants in the office teach the new assistant dental terminology, the names of the instruments, how to do daily tasks, how to interact with patients,

agent fees and expenses up to the amount specified in the indenture and any Irish paying agent agreement; owner trustee fees and expenses up to the amount specified in the

The objectives of this work are concepts for games that stimulate cooperative behavior among participants of a co-located, very large group, and fit into the setting of

The objectives of the paper are thus to: identify the correlation between energy cost share and economic growth for selected countries from different regions; to identify