1
1
•
▫
▫
▫
•
▫
▫
2
•
▫▫
•▫
•▫▫
3
•
▫
▫
•
▫
▫
4
•
•▫
•
▫▫
5
•
•
•
•
6
7
0
100
200
300
r
e
s
p
o
n
s
e
t
i
m
e
(
m
s)
n
constant
linear
exponential
•
▫
▫
▫
8
0
100
200
300
r
e
s
p
o
n
s
e
t
i
m
e
(
m
s)
n
constant
linear
exponential
9
0
100
200
300
r
e
s
p
o
n
s
e
t
i
m
e
(
m
s)
n
constant
linear
n log n
log n
exponential
•
▫
▫
▫
▫
▫
▫
▫
10
•▫
▫
▫
▫
▫
▫
▫
•▫
▫
▫
▫
▫
▫
11
•▫
▫
▫
▫
▫
▫
•▫
▫
▫
▫
▫
12
•▫
▫
▫
▫
▫
▫
•▫
▫
▫
▫
▫
13
u = 𝜆 ∗ 𝒔
•
•▫
▫
14
•
•
15
•
▫
▫
16
•
▫
▫
▫
17
•
▫
▫
•
▫
▫
▫
▫
18
•
Component Performance, Capacity, or Bandwidth
CPU Clock speed; Instructions executed/clock
Memory Access time (nanoseconds); bus bandwidth
Rotating Disk Access time (milliseconds)
Solid State Disk Access time (microseconds)
Network adapter Bandwidth; Latency
19
•
Disk Reads/sec Writes/sec IOPS Utilization
1 24 8 32 0.30
2 28 8 36 0.41
3 40 10 50 0.54
20
•
•
Disk Reads/sec Writes/sec IOPS Utilization
1 24 8 32 0.30
2 28 8 36 0.41
3 40 10 50 0.54
21
•
•
Disk Reads/sec Writes/sec IOPS Utilization
1 24 8 32 0.30
2 28 8 36 0.41
3 40 10 50 0.54
22
•
•
Disk Reads/sec Writes/sec IOPS Utilization Ave Service Time (ms)
1 24 8 32 0.30 9.4
2 28 8 36 0.41 11.4
3 40 10 50 0.54 10.8
23
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8
Uti
liza
tio
n
Requests/sec
Bounds on Performance
Disk 1 Disk 2 Disk 3
24
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8
Uti
liza
tio
n
Requests/sec
Bounds on Performance
Disk 1 Disk 2 Disk 3
25
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8
Uti
liza
tio
n
Requests/sec
Bounds on Performance
Disk 1 Disk 2 Disk 3
26
•
▫
▫
▫
27
•
••
R = 𝑾𝒔+𝑾𝒒
28
•
•
▫
▫
▫
•Server
29
•
▫
▫
▫
▫ Server
30
•
▫▫
•▫▫▫▫▫▫
Server
31
0
0
1 2 k
1 2
1 2 3
…
32
σ𝑘=1∞ 𝝁𝒌𝑷𝒌
σ𝑘=1∞ 𝒌𝑷𝒌
0
0
1 2 k
1 2
1 2 3
…
33
•
▫
0
0
1 2 k
1 2
1 2 3
…
34
•
•
•
•
Server
Server
Server
Server
Server
Server
Server
35
•
▫
❖
▫
❖
▫
❖
36
•
•
37
•
▫
▫
38
•▫
39
•
•
•
▫
▫
•
40
•
▫▫▫
▫
G/G/n
41
•••
•
▫ λ λ
▫
▫
▫
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9 10
p(x
)
x
Probaility Density function (pdf)
for representative Exponential Distributions ()
0.5 1 1.5
42
0
0.1
0.2
0.3
0.4
0.5
0 2 4 6 8 10 12 14 16 18 20
p
Poisson distributionsfor different values of lambda
1 3 5 10
0
0.1
0.2
0.3
0.4
0.5
0 2 4 6 8 10 12 14 16 18 20
p
Poisson distributionsfor different values of lambda
1 3 5 10
0
0.1
0.2
0.3
0.4
-5 -4 -3 -2 -1 0 1 2 3 4
p
Normal Distribution (pdf)mean = 0; s.d. =1
34.1% 34.1%
13.6% 13.6%
2.15% 2.15%
68.2%
95.4%
99.7%
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9 10
p(x
)
x
Cumulative distribution
for representative Exponential Distributions ()
0.5 1 1.5•
▫𝑵 = ൗ𝒑𝟏−𝒑
▫𝑹𝑻 = ൗ𝑺 𝟏−𝒑
▫
▫
44
0
20
40
60
80
100
0 0.2 0.4 0.6 0.8 1
Utilization
Response Times (M/M/1)
5 10 15 20 25
𝑹𝑻 = ൗ𝑺 𝟏 − 𝒑
•
▫
•▫
𝒎𝒆𝒂𝒏 ≅ 𝒔𝒕𝒂𝒏𝒅𝒂𝒓𝒅 𝒅𝒆𝒗𝒊𝒂𝒕𝒊𝒐𝒏
▫
45
0
20
40
60
80
100
0 0.2 0.4 0.6 0.8 1
Utilization
Response Times (M/M/1)
5 10 15 20 25
46
0
20
40
60
80
100
0 0.2 0.4 0.6 0.8 1
Utilization
Response Times (M/M/1)
5 10 15 20 25
•
▫▫
▫
47
0
20
40
60
80
100
0 0.2 0.4 0.6 0.8 1
Utilization
Response Times (M/M/1)
5 10 15 20 25•▫▫
•▫
•▫
▫
48
•
▫
▫
Break large requests into a sequence of smaller, uniformed- size Request packets
49
0
20
40
60
80
100
0 0.2 0.4 0.6 0.8 1
Utilization
Response Times (M/M/1)
5 10 15 20 25
•
▫
▫
▫
𝑅𝑇 = ൗ𝑆 1−𝑝n
50
•
▫
•
▫
•
▫
•
▫
▫
51
•
▫
▫
▫
•
𝑹𝑻 = 𝑺 +𝒑𝑺(𝟏 + 𝑪𝒔
𝟐)
𝟐(𝟏 − 𝒑)
52
𝑹𝑻 = 𝑺 +𝒑𝑺(𝟏 + 𝑪𝒔
𝟐)
𝟐(𝟏 − 𝒑)
• 𝑆
•
▫
53
𝑹𝑻 = 𝑺 +𝒑𝑺(𝟏 + 𝑪𝒔
𝟐)
𝟐(𝟏 − 𝒑)
•
54
M/G/1
M/D/1
M/M/1C = 1
𝑹𝑻 = 𝑺 +𝒑𝑺(𝟏 + 𝑪𝒔
𝟐)
𝟐(𝟏 − 𝒑)
•
55
M/G/1
M/D/1
M/M/1C = 1
••
•
56
M/G/1
M/D/1
M/M/1C = 1G/G/1
𝑹𝑻 = 𝑺 +𝒑𝑺(𝟏 + 𝑪𝒔
𝟐)
𝟐(𝟏 − 𝒑)
•
▫▫▫
•
• Q = R - S
57
•
▫
▫
▫
▫
•
▫
58
59
•
▫
•
60
•
•
•
61
•
•
•
62
•▫▫▫▫▫▫▫▫
▫
63
•▫
▫
▫
▫
64
use pdq;
# Globals$arrivRate = 0.75;$servTime = 1.0;
pdq::Init("Open Network with M/M/1");pdq::CreateOpen("Work", $arrivRate);pdq::CreateNode("Server", $pdq::CEN, $pdq::FCFS); pdq::SetDemand("Server", "Work", $servTime);
# Solve the modelpdq::Solve($pdq::CANON);
pdq::Report();
•
▫
▫
•
▫
• u
67
•▫
▫
▫
▫ ( = C)
▫ *
68
•
▫ ≠ 𝑪
▫
▫
▫
▫
▫
•
▫
▫
69
use pdq;
$model = "Middleware";$work = "eBiz-tx";
$node1 = "WebServer";$node2 = "AppServer";$node3 = "DBMServer";$node4 = "DummySvr";
$think = 0.0 * 1e-3; # treat as free param$users = 10;
pdq::Init($model);pdq::CreateNode($node1, $pdq::CEN, $pdq::FCFS);pdq::CreateNode($node2, $pdq::CEN, $pdq::FCFS);pdq::CreateNode($node3, $pdq::CEN, $pdq::FCFS);pdq::CreateNode($node4, $pdq::CEN, $pdq::FCFS);
pdq::CreateClosed($work, $pdq::TERM, $users, $think);
# NOTE: timebase is secondspdq::SetDemand($node1, $work, 9.8 * 1e-3);pdq::SetDemand($node2, $work, 2.5 * 1e-3);pdq::SetDemand($node3, $work, 0.72 * 1e-3);pdq::SetDemand($node4, $work, 9.8 * 1e-3);
pdq::Solve($pdq::EXACT);pdq::Report();
•
▫
QT > ST, if u > .50
•
▫
▫
▫
71
•
•
▫
▫
▫
72
•
•
•
74