Enterprise Library Test Guide - Willy .Net
Enterprise Library Test Guide - Willy .Net
Enterprise Library Test Guide - Willy .Net
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Test</strong>ing for Performance and Scalability 219<br />
Important concepts to keep in mind when you measure performance are:<br />
●<br />
●<br />
●<br />
Utilization<br />
Idle time<br />
Saturation<br />
Utilization is (Resource Busy Time/Total Time of service) *100. Many performance<br />
counters measure utilization. They have names that include percentages such as Processor:<br />
% Processor Time.<br />
Idle time is 100 percent – Utilization. The <strong>Enterprise</strong> <strong>Library</strong> tests use the Logical<br />
Disk: % Idle Time counter to measure utilization.<br />
Saturation means that a resource is used to 100 percent of its capacity, or close to it.<br />
There are two sets of performance counters you can use to measure an application<br />
block’s performance. The first set records the use of system resources. System resources<br />
include memory, disk I/O, CPU usage, network I/O, and specific counters<br />
associated with the CLR memory and with contention. Also, where applicable, there<br />
are performance counters to measure SQL Server performance. For more information<br />
about these counters, see Detecting Performance Issues.<br />
The second set of performance counters measure end-to-end transaction times and<br />
transactions per second. Here is a summary of the goals for these metrics:<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
The Process(w3wp_.exe)\Private Bytes and the Process(w3wp.exe)\Virtual<br />
Bytes performance counters should not increase during the stress and performance<br />
tests.<br />
The number of CLR garbage collection handles or process handles should not<br />
increase during stress and performance tests.<br />
There should be no CLR lock contention coupled with a low measurement for<br />
CPU usage. The CPU usage should be at close to 100 percent for all test cases,<br />
except where there is dependency on an external resource such as during a SQL<br />
Server query.<br />
The ratio of context switches to system threads should not be more than 20.<br />
The thread count should not increase during the stress and performance tests.<br />
The transaction execution times and the transactions per second should remain<br />
stable during stress and performance tests.<br />
There should be no deadlocks or w3p3.exe process restarts.<br />
The system memory and memory pools should be stable.<br />
The latency times for reads and writes to logical drives should not be more than<br />
7 ms.<br />
Only the Exception Handling Application Block should have CLR exceptions.<br />
Contention should not cause poor CPU usage.