Skip to main content

Solving Enterprise Applications Performance Puzzles: Queuing Models to the Rescue

Solving Enterprise Applications Performance Puzzles: Queuing Models to the Rescue

Leonid Grinshpan

ISBN: 978-1-118-16191-3

Feb 2012

232 pages

$63.99

Description

Poorly performing enterprise applications are the weakest links in a corporation's management chain, causing delays and disruptions of critical business functions. This groundbreaking book frames enterprise application performance engineering not as an art but as applied science built on model-based methodological foundation. The book introduces queuing models of enterprise application that visualize, demystify, explain, and solve system performance issues. Analysis of these models will help to discover and clarify unapparent connections and correlations among workloads, hardware architecture, and software parameters.
Acknowledgments ix

Preface xi

1. Queuing Networks as Applications Models 1

1.1. Enterprise Applications—What Do They Have in Common?, 1

1.2. Key Performance Indicator—Transaction Time, 6

1.3. What Is Application Tuning and Sizing?, 8

1.4. Queuing Models of Enterprise Application, 9

1.5. Transaction Response Time and Transaction Profi le, 19

1.6. Network of Highways as an Analogy of the Queuing Model, 22

Take Away from the Chapter, 24

2. Building and Solving Application Models 25

2.1. Building Models, 25

Hardware Specification, 26

Model Topology, 28

A Model’s Input Data, 29

Model Calibration, 31

2.2. Essentials of Queuing Networks Theory, 34

2.3. Solving Models, 39

2.4. Interpretation of Modeling Results, 47

Hardware Utilization, 47

Server Queue Length, Transaction Time, System Throughput, 51

Take Away from the Chapter, 54

3. Workload Characterization and Transaction Profiling 57

3.1. What Is Application Workload?, 57

3.2. Workload Characterization, 60

Transaction Rate and User Think Time, 61

Think Time Model, 65

Take Away from the Think Time Model, 68

Workload Deviations, 68

“Garbage in, Garbage out” Models, 68

Realistic Workload, 69

Users’ Redistribution, 72

Changing Number of Users, 72

Transaction Rate Variation, 75

Take Away from “Garbage in, Garbage out” Models, 78

Number of Application Users, 78

User Concurrency Model, 80

Take Away from User Concurrency Model, 81

3.3. Business Process Analysis, 81

3.4. Mining Transactional Data from Production Applications, 88

Profi ling Transactions Using Operating System Monitors and Utilities, 88

Application Log Files, 90

Transaction Monitors, 91

Take Away from the Chapter, 93

4. Servers, CPUs, and Other Building Blocks of Application Scalability 94

4.1. Application Scalability, 94

4.2. Bottleneck Identification, 95

CPU Bottleneck, 97

CPU Bottleneck Models, 97

CPU Bottleneck Identification, 97

Additional CPUs, 100

Additional Servers, 100

Faster CPUs, 100

Take Away from the CPU Bottleneck Model, 104

I/O Bottleneck, 105

I/O Bottleneck Models, 106

I/O Bottleneck Identification, 106

Additional Disks, 107

Faster Disks, 108

Take Away from the I/O Bottleneck Model, 111

Take Away from the Chapter, 113

5. Operating System Overhead 114

5.1. Components of an Operating System, 114

5.2. Operating System Overhead, 118

System Time Models, 122

Impact of System Overhead on Transaction Time, 123

Impact of System Overhead on Hardware Utilization, 124

Take Away from the Chapter, 125

6. Software Bottlenecks 127

6.1. What Is a Software Bottleneck?, 127

6.2. Memory Bottleneck, 131

Memory Bottleneck Models, 133

Preset Upper Memory Limit, 133

Paging Effect, 138

Take Away from the Memory Bottleneck Model, 143

6.3. Thread Optimization, 144

Thread Optimization Models, 145

Thread Bottleneck Identification, 145

Correlation Among Transaction Time, CPU

Utilization, and the Number of Threads, 148

Optimal Number of Threads, 150

Take Away from Thread Optimization Model, 151

6.4. Other Causes of Software Bottlenecks, 152

Transaction Affinity, 152

Connections to Database; User Sessions, 152

Limited Wait Time and Limited Wait Space, 154

Software Locks, 155

Take Away from the Chapter, 155

7. Performance and Capacity of Virtual Systems 157

7.1. What Is Virtualization?, 157

7.2. Hardware Virtualization, 160

Non-Virtualized Hosts, 161

Virtualized Hosts, 165

Queuing Theory Explains It All, 167

Virtualized Hosts Sizing After Lesson Learned, 169

7.3. Methodology of Virtual Machines Sizing, 171

Take Away from the Chapter, 172

8. Model-Based Application Sizing: Say Good-Bye to Guessing 173

8.1. Why Model-Based Sizing?, 173

8.2. A Model’s Input Data, 177

Workload and Expected Transaction Time, 177

How to Obtain a Transaction Profile, 179

Hardware Platform, 182

8.3. Mapping a System into a Model, 186

8.4. Model Deliverables and What-If Scenarios, 188

Take Away from the Chapter, 193

9. Modeling Different Application Configurations 194

9.1. Geographical Distribution of Users, 194

Remote Office Models, 196

Users’ Locations, 196

Network Latency, 197

Take Away from Remote Offi ce Models, 198

9.2. Accounting for the Time on End-User Computers, 198

9.3. Remote Terminal Services, 200

9.4. Cross-Platform Modeling, 201

9.5. Load Balancing and Server Farms, 203

9.6. Transaction Parallel Processing Models, 205

Concurrent Transaction Processing by a Few Servers, 205

Concurrent Transaction Processing by the Same Server, 209

Take Away from Transaction Parallel Processing Models, 213

Take Away from the Chapter, 214

Glossary 215

References 220

Index 223