07.11.2014 Views

Enterprise Library Test Guide - Willy .Net

Enterprise Library Test Guide - Willy .Net

Enterprise Library Test Guide - Willy .Net

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!