|
|
 |

 |
|
Performance Testing Microsoft® .NET Web Applications
|
|
|
Author
|
|
Microsoft ACE Team
|
|
|
Pages
|
320
|
|
Disk
|
1 Companion CD(s)
|
|
Level
|
All Levels
|
|
Published
|
10/02/2002
|
|
ISBN
|
9780735615380
|
|
Price
|
$39.99
To see this book's discounted price, select a reseller below.
|
|
|
|
|
 |
|
|
Index
Send feedback about this index to mspindex@microsoft.com
A
ACT. See also bottlenecks; stress tests
core concepts
authentication and encryption, 36-38
concurrent users and simultaneous browser connections (SBCs), 33-34
cookies, 35
dynamic tests, 32
headers, 35
parsing ViewState, 39-40
protecting Web sites from inadvertent stress testing, 40
Secure Sockets Layer (SSL), 38
SOAP, 38-39
users and groups, 34
creating test scripts
analyzing recorded test scripts, 49
debugging, 57-58
introduced, 44-45
load clients and, 58-60
manually, 49-52
recording test scripts, 45-48
script modification, avoiding record and playback, 56-57
setting test properties prior to script playback, 54- 56
stressing the SQL tier, 52-54
verification, 58
defined, 30
executing performance/stress tests
creating a controlled environment, 62
introduced, 60-62
installing, 30-32
introduced, 40-41
user interface overview
introduced, 41-42
Results node, 43
Tests node, 42
Users node, 44
ActiveX Data Objects (ADOs), 52
ADO.NET
performance tuning tips
ExecuteNonQuery method, 152
ExecuteReader method, 153-54
ExecuteScalar method, 153
ExecuteXMLReader method, 154-55
introduced, 149-50
SqlCommand object, 151-52
SqlConnection object, 150-51
resources, 126
ADOs (ActiveX Data Objects), 52
alerts, 89-94
analytical modeling, 255-56
anonymous authentication, 37
AppDomains, 166
Application Center Test
core concepts
authentication and encryption, 36-38
concurrent users and simultaneous browser connections (SBCs), 33-34
cookies, 35
dynamic tests, 32
headers, 35
parsing ViewState, 39-40
protecting Web sites from inadvertent stress testing, 40
Secure Sockets Layer (SSL), 38
SOAP, 38-39
users and groups, 34
creating test scripts
analyzing recorded test scripts, 49
debugging, 57-58
introduced, 44-45
load clients and, 58-60
manually, 49-52
recording test scripts, 45-48
script modification, avoiding record and playback, 56-57
setting test properties prior to script playback, 54-56
stressing the SQL tier, 52-54
verification, 58
defined, 30
executing performance/stress tests
creating a controlled environment, 62
introduced, 60-62
installing, 30-32
introduced, 40-41
user interface overview
introduced, 41-42
Results node, 43
Tests node, 42
Users node, 44
Application Expert
bounce diagram, 116-17
conversation map, 115-16
interpreting network captures
calculating data transferred, 120
counting network round trips, 120-21
identifying application processing delays, 121-22
introduced, 119-20
predicting response times, 122-23
introduced, 115
packet trace view, 118
Response Time Predictor tool, 118-19
thread analysis, 117-18
application network analysis. See also Application Expert; Network Monitor
data transferred, 99-102
introduced, 95-96
network latency, 96-98, 123
network round trips, 98-99
processing delay, 102-4
response times, 97, 104-5, 123
user scenarios, 105-6
application state, 145
AppMetrics
Diagnostics Monitor (pre-production monitoring), 185-87
introduced, 184
Manager and Agent Monitors, 184-85
Production Monitor, 187-90
architectural considerations
Indy what-if scenario, 273
performance modeling and, 254
ASCX file extension, 127
ASMX file extension, 127
ASP.NET
authentication, 127-28
caching
caching API, 148-49
fragment caching, 148
introduced, 146-47
output caching, 147-48
configuration files, 128-30
counters, 143-45
file extensions, 126-27
resources, 126
tracing
application-level, 139-40
identifying problem code in ASPX pages, 140-42
introduced, 137-38
page-level, 139-40
traditional ASP pages, 138
ASPX file extension, 127
ASPX pages, identifying problem code, 140-42
assemblies, 164
authentication
anonymous, 37
basic, 37, 127
digest, 37, 127-28
form-based, 128
integrated Windows (NTLM), 36-37, 128
Passport, 37-38, 128
Windows-based, 127-28
automatic memory management. See garbage collection in CLR
B
backend activity profile, 23-24
basic authentication, 37, 127
blocking problems
articles, 206
deadlocks, 205-6
identifying blocking connections, 201-3
introduced, 200
locks, 203-4
bottlenecks. See also ACT; stress tests
backend performance, 24
disk, 82-85
identifying, 14-15
Indy what-if scenario, 272
memory, 86-88
performance modeling for, 254
processor, 77-80
SQL tier. See also blocking problems; index tuning
introduced, 192-93
SQL Profiler, 193-98
SQL Query Analyzer, 199
System Monitor, 198-99
Web tier
disabling SSL, 158
introduced, 155-56
limiting images, 157
limiting page size, 156-57
naming conventions, 157
trying new features, 158
bounce diagram (Application Expert), 116-17
Browse.vbs script, 50-52
C
Cache object, 147, 148-49
capacity planning. See TCA
capture buffers, 108
capture filters, 107-8
catching exceptions, 171
CLR
introduced, 163
Just-in-Time Compiler (JIT), 164-65
load time, AppDomains, 166
Microsoft Intermediate Language (MSIL), 164
performance and, 163-66
Pre-JIT, 165-66
run-time
exceptions, 171-72
garbage collection. See garbage collection in CLR
interoperability, 166-67
clustered indexes, 222-29
common language runtime. See CLR
Compuware Application Expert
bounce diagram, 116-17
conversation map, 115-16
interpreting network captures
calculating data transferred, 120
counting network round trips, 120-21
identifying application processing delays, 121-22
introduced, 119-20
predicting response times, 122-23
introduced, 115
packet trace view, 118
Response Time Predictor tool, 118-19
thread analysis, 117-18
Compuware DevPartner Studio
distributed applications and, 182-83
effective performance analysis for .NET, 183-84
introduced, 179
profiling
introduced, 180
Method Details window, 182
Session window, 180-81
Source Code window, 181
concurrent users
concurrent server request processing, 233
introduced, 232-33
TCA concurrent users, 233
conversation map (Application Expert), 115-16
conversion deadlocks, 205
cookies, 35
counters
alert, 90-91, 92
ASP.NET, 143-45
characteristics, 67
color, 66
defined, 63
disk, 82-83
IIS, 142-43
introduced, 63-64
memory, 86-88
multiprocessor computer, 79
.NET
introduced, 172-73
.NET CLR Exceptions object, 177-78
.NET CLR Loading object, 175-76
.NET CLR LocksAndThreads object, 176-77
.NET CLR Memory object, 173-75
.NET CLR Security object, 178-79
Processor object, 78-79
scale, 67
SQL server, 198-99
system, 80-82
CS file extension, 127
cyclical deadlocks, 205
D
data transferred, 99-102, 120
DBCC DROPCLEANBUFFERS command, 213
DBCC FREEPROCCACHE command, 213
DBCC SHOWCONTIG command, 223-25
deadlocks, 205-6
delays, processing, 25-26, 102-4, 121-22
DevPartner Studio
distributed applications and, 182-83
effective performance analysis for .NET, 183-84
introduced, 179
profiling
introduced, 180
Method Details window, 182
Session window, 180-81
Source Code window, 181
digest authentication, 37, 127-28
disk architecture and performance, 85
disk bottlenecks, 82-85
disk counters, 82-83
dynamic tests, 32
E
exceptions
catching, 171
CLR, 171-72
performance and, 172
System.DivideByZeroException, 171
System.FileNotFoundException, 171
System.OutOfMemoryException, 169
throwing, 171, 172
in unmanaged code, 172
ExecuteNonQuery method, 152
ExecuteReader method, 153-54
ExecuteScalar method, 153
ExecuteXMLReader method, 154-55
Extensible Markup Language (XML), 6
F
FILLFACTOR option, 223-26
finalization, 170
finally block, 171
fn_trace_gettable function, 197
form-based authentication, 128
G
garbage collection in CLR
differences between workstation and server GC, 170
finalization, 170
generations and promotion, 167-69
introduced, 167
pinned objects, 167, 169
generations of objects, 167-69
GetNextUser method, 55
Global.asax file, 127
H
hardware configuration and performance modeling, 254
hits, 23
HTTP status codes, 136-37
I
IIS
counters, 142-43
log files
formats, 131-34
identifying problem pages, 135-37
introduced, 131
resources, 126
tier capacity. See TCA
index tuning
analyzing execution plans
additional tuning information, 212-14
introduced, 207
populating data, 207-9
viewing execution plans, 210-12
choosing indexes
clustered indexes, 222-29
introduced, 215
nonclustered indexes, 215-22
introduced, 207
understanding indexes, 214-15
Index Tuning Wizard, 228-29
indexed views, 226-28
Indy
architecture
front-end EXEs, 260-61
hardware DLLs, 260
interface definitions, 260
introduced, 259
kernel, 260
workload DLLs, 260
concepts, 258-59
IndyView interface
IBuySpy search transaction, 264-71
system topology, 261-63
introduced, 258
TCA vs., 271
what-if scenarios
architectural improvements, 273
bottleneck analysis, 272
introduced, 272
Insert method, 149
integrated Windows (NTLM) authentication, 36-37, 128
Internet Information Server
counters, 142-43
log files
formats, 131-34
identifying problem pages, 135-37
introduced, 131
resources, 126
tier capacity. See TCA
J
JIT (Just-in-Time Compiler), 164-65
L
latency, network, 96-98, 123
load balancing
hardware-based, 160-61
software-based, 160
load testing. See stress tests
locks, 203-4
M
Main subroutine, 49
managed code. See AppMetrics; CLR; DevPartner Studio
manifests, 164
memory bottlenecks, 86-88
memory counters, 86-88
memory leaks, 25, 86-88
memory management, automatic. See garbage collection in CLR
metabase settings, 101
Microsoft Application Center Test
core concepts
authentication and encryption, 36-38
concurrent users and simultaneous browser connections (SBCs), 33-34
cookies, 35
dynamic tests, 32
headers, 35
parsing ViewState, 39-40
protecting Web sites from inadvertent stress testing, 40
Secure Sockets Layer (SSL), 38
SOAP, 38-39
users and groups, 34
creating test scripts
analyzing recorded test scripts, 49
debugging, 57-58
introduced, 44-45
load clients and, 58-60
manually, 49-52
recording tests scripts, 45-48
script modification, avoiding record and playback, 56-57
setting test properties prior to script playback, 54- 56
stressing the SQL tier, 52-54
verification, 58
defined, 30
executing performance/stress tests
creating a controlled environment, 62
introduced, 60-62
installing, 30-32
introduced, 40-41
user interface overview
introduced, 41-42
Results node, 43
Tests node, 42
Users node, 44
Microsoft Intermediate Language (MSIL), 164
Microsoft Network Monitor
capturing network traffic
capture structure, 114-15
introduced, 112-14
configuring settings, 107-9
environment setup, 109-12
Full version, 107
introduced, 106-7
Lite version, 107
MAC address and IP address setup, 107
Microsoft Passport
authentication, 37-38, 128
introduced, 8
Microsoft Transaction Cost Analysis
benefits, 234-35
capacity planning approach, 231-32
concurrent users
concurrent server request processing, 233
introduced, 232-33
TCA concurrent users, 233
five-step methodology
introduced, 235-36
step 1, creating a user profile, 237-38
step 2, stress testing for user operation costs, 238- 41
step 3, calculating the cost per user operation, 241- 45
step 4, estimating site capacity, 245-47
step 5, verifying site capacity, 247-48
Indy vs., 271
introduced, 231-32
performance modeling vs., 271
predicting and evaluating performance, 252
Shop.Microsoft.com analysis, 235
MSIL (Microsoft Intermediate Language), 164
multiprocessor computer counters, 79
N
.NET. See also Web services
counters
introduced, 172-73
.NET CLR Exceptions object, 177-78
.NET CLR Loading object, 175-76
.NET CLR LocksAndThreads object, 176-77
.NET CLR Memory object, 170, 173-75
.NET CLR Security object, 178-79
platform, 4-6
standard protocols, 6-7
Universal Description, Discovery, and Integration (UDDI), 7
Web Service Description Language (WSDL), 7
.NET CLR Exceptions object, 177-78
.NET CLR Interop object, 167
.NET CLR Jit object, 165
.NET CLR Loading object, 175-76
.NET CLR LocksAndThreads object, 176-77
.NET CLR Memory object, 170, 173-75
.NET CLR Security object, 178-79
.NET managed code. See AppMetrics; CLR; DevPartner Studio
.NET Passport, 8
network latency, 96-98, 123
Network Load Balancing (NLB), 160
Network Monitor
capturing network traffic
capture structure, 114-15
introduced, 112-14
configuring settings, 107-9
environment setup, 109-12
Full version, 107
introduced, 106-7
Lite version, 107
MAC address and IP address setup, 107
network round trips, 98-99, 120-21
NLB (Network Load Balancing), 160
nonclustered indexes, 215-22
notification alerts, 89-94
NTLM (integrated Windows) authentication, 36-37, 128
O
OrdersList stored procedure, 220-22
P
packet trace view (Application Expert), 118
page views, 23, 96
Passport
authentication, 37-38, 128
introduced, 8
pathping utility, 97
performance analysis
analyzing results
identifying performance bottlenecks, 14-15
introduced, 13-14
verifying performance tuning results, 15
methodology cycle, 12
planning, 12-13
performance goals
computer interaction behavioral patterns, 10-11
identifying
introduced, 18
performance growth analysis, 20-21
response time acceptability goals and targets, 18- 19
throughput goals and concurrent user targets, 19- 20
introduced, 9-10
performance growth analysis, 20-21
performance metrics, 24-26
performance modeling
advanced, 252-53, 257
introduced, 251-52
methods
analytical modeling, 255-56
introduced, 255
simulation modeling, 257
statistical modeling, 256
predicting and evaluating performance through TCA, 252
scenarios
architectural assessment, 254
bottleneck analysis, 254
capacity planning, 254
hardware configuration, 254
introduced, 253
user, 255
TCA vs., 271
tools, 258. See also Indy
Performance Monitor (Perfmon). See System Monitor
performance test plan, 27
performance testing. See also stress tests
current and emerging architectures and, 3-4
importance, 1-2
mirroring the production environment, 26
overview, 11-12
Web services and, 9
performance tuning
ADO.NET tips
ExecuteNonQuery method, 152
ExecuteReader method, 153-54
ExecuteScalar method, 153
ExecuteXMLReader method, 154-55
introduced, 149-50
SqlCommand object, 151-52
SqlConnection object, 150-51
application and session state, 145-46
caching in ASP.NET
caching API, 148-49
fragment caching, 148
introduced, 146-47
output caching, 147-48
disabling ViewState, 149
introduced, 145
verifying results, 15
pinned objects, 167, 169
Pre-JIT, 165-66
processing delays, 25-26, 102-4, 121-22
processor bottlenecks, 77-80
Processor object counters, 78-79
processor-related problems and solutions, 79-80
ProductCategoryList_Recompile object, 203
production environment, mirroring, 26
ProductsMostPopular stored procedure, 210-11, 213- 14, 216, 218, 226-28
promotion of objects, 167-69
R
Remove method, 148
Response object, 57
Response Time Predictor tool (Application Expert), 118-19
response times
acceptability goals and targets, 18-19
application network analysis, 97, 104-5, 123
computer interaction, 10-11
predicting, 122-23
Response.End method, 138
Robots Exclusion Standard method, 40
round trips, network, 98-99, 120-21
S
SBCs (simultaneous browser connections), 33-34
Search_SQL.vbs script, 52-54
Search.vbs script, 45-48
Secure Sockets Layer
disabling, 158
introduced, 38
SendRequest# subroutine, 49
server capacity planning. See TCA
server errors, 25
server utilization, 25
session state, 145-46
Shop.Microsoft.com analysis, 235
simulation modeling, 257
simultaneous browser connections (SBCs), 33-34
Sleep method, 33-34
sleep times, user, 33-34
soak testing. See stress tests
SOAP, 38-39
sp_helpindex stored procedure, 217
sp_helptext stored procedure, 217, 220
spike testing. See stress tests
sp_lock stored procedure, 203, 204
sp_lock_verbose stored procedure, 203
SQL Profiler, 193-98
SQL Query Analyzer, 199
SQL server counters, 198-99
SQL tier
bottlenecks. See also blocking problems; index tuning
introduced, 192-93
SQL Profiler, 193-98
SQL Query Analyzer, 199
System Monitor, 198-99
introduced, 191-92
resources, 192
stressing, 52-54
SqlCommand object, 151-52
SqlConnection object, 150-51
SSL
disabling, 158
introduced, 38
statistical modeling, 256
STATISTICS TIME option, 212, 214
stress tests. See also ACT; bottlenecks; performance testing
creating effective scripts, 13
executing, 13
hardware-based, 29-30
protecting Web sites from inadvertent stress testing, 40
purpose, 29
software-based, 30
sysindexes table, 200
sysprocesses table, 201, 203, 204
system counters, 80-82
System Monitor
collecting data, setting an interval, 69-70
counters
introduced, 142
performance counters for ASP.NET, 143-45
performance counters for IIS, 142-43
introduced, 63-64
logging and viewing logged data, 70-75
monitoring objects, counters, and instances
creating and configuring alerts, 89-94
disk bottlenecks, 82-85
introduced, 77
memory bottlenecks, 86-88
processor bottlenecks, 77-80
processor-related problems and solutions, 79-80
System object, 80-82
monitoring remote computers, 76
SQL tier bottlenecks, 198-99
viewing real-time performance data
chart view, 65
graph view, 65-68
histogram view, 68-69
introduced, 65
report view, 69
System object, 80-82
System.Diagnostics.PerformanceCounter namespace, 173
System.DivideByZeroException exception, 171
System.FileNotFoundException exception, 171
System.OutOfMemoryException exception, 169
T
TCA
benefits, 234-35
capacity planning approach, 231-32
concurrent users
concurrent server request processing, 233
introduced, 232-33
TCA concurrent users, 233
five-step methodology
introduced, 235-36
step 1, creating a user profile, 237-38
step 2, stress testing for user operation costs, 238- 41
step 3, calculating the cost per user operation, 241- 45
step 4, estimating site capacity, 245-47
step 5, verifying site capacity, 247-48
Indy vs., 271
introduced, 231-32
performance modeling vs., 271
predicting and evaluating performance, 252
Shop.Microsoft.com analysis, 235
Test object, 33, 34, 49, 55, 57-58
Test.CreateConnection method, 38
thread analysis (Application Expert), 117-18
Thread object, 67
throughput
defined, 29
goals and concurrent user targets, 19-20
throwing exceptions, 171, 172
throw-to-catch depth, 171, 172
TML (Transaction Modeling Language), 259, 264-66
Trace method, 57-58, 139-42
TraceLevel property, 57-58
Transaction Cost Analysis. See TCA
Transaction Modeling Language (TML), 259, 264-66
U
UDDI (Universal Description, Discovery, and Integration), 7
user activity profile, 22-23
User object, 51
user scenarios, 105-6
user sleep times, 33-34
V
VB file extension, 127
verification, 164
ViewState
disabling, 149
parsing, 39-40
W
W3C Extended Log File Format, 131-33
Web server testing. See stress tests
Web Service Description Language (WSDL), 7
Web services
devices and demand, 8-9
performance testing and, 9
XML, 7-8
Web tier. See also ASP.NET; performance tuning
ASP.NET tracing
application level, 139-40
identifying problem code in ASPX pages, 140-42
introduced, 137-38
page-level, 139-40
traditional ASP pages, 138
bottlenecks
disabling SSL, 158
introduced, 155-56
limiting images, 157
limiting page size, 156-57
naming conventions, 157
trying new features, 158
defined, 125
IIS log files
formats, 131-34
identifying problem pages, 135-37
introduced, 131
scaling
how to scale, 160-61
introduced, 158
performance tuning, 159
scaling down, 159
scaling up, 159
when to scale, 159-60
System Monitor counters
introduced, 142
performance counters for ASP.NET, 143-45
performance counters for IIS, 142-43
understanding applications, 130
Windows-based authentication, 127-28
workload, 259
WSDL (Web Service Description Language), 7
X
XML (Extensible Markup Language), 6
XML Web services, 7-8
Xtremesoft AppMetrics
Diagnostics Monitor (pre-production monitoring), 185-87
introduced, 184
Manager and Agent Monitors, 184-85
Production Monitor, 187-90
Last Updated: September 17, 2002
|