Useful metrics for Interpreting.NET performance. UKCMG Free Forum 2011 Tuesday 22nd May Session C3a. Introduction



Similar documents
Monitoring ASP.Net Servers

Practical Performance Understanding the Performance of Your Application

Monitoring.NET Framework with Verax NMS

TRACE PERFORMANCE TESTING APPROACH. Overview. Approach. Flow. Attributes

Performance Testing of a Cloud Service

Mission-Critical Java. An Oracle White Paper Updated October 2008

Perfmon counters for Enterprise MOSS

Kentico CMS 6.0 Performance Test Report. Kentico CMS 6.0. Performance Test Report February 2012 ANOTHER SUBTITLE

Oracle WebLogic Thread Pool Tuning

Sitecore Health. Christopher Wojciech. netzkern AG. Sitecore User Group Conference 2015

Performance Testing. Configuration Parameters for Performance Testing

Tomcat Tuning. Mark Thomas April 2009

IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including:

Performance Test Report KENTICO CMS 5.5. Prepared by Kentico Software in July 2010

Performance Tuning and Optimizing SQL Databases 2016

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

Tool - 1: Health Center

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

<Insert Picture Here> Java Application Diagnostic Expert

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

Jonathan Worthington Scarborough Linux User Group

Centerity Service Pack for Microsoft Exchange 2013 Keep your services up and running!

Zing Vision. Answering your toughest production Java performance questions

Microsoft Internet Information Services Solution 1.0

Oracle Corporation Proprietary and Confidential

Performance Modeling for Web based J2EE and.net Applications

Multi-core Programming System Overview

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

An Oracle White Paper September Advanced Java Diagnostics and Monitoring Without Performance Overhead

D. SamKnows Methodology 20 Each deployed Whitebox performs the following tests: Primary measure(s)

Introduction to Windows Mobile Development. Daniel Moth Developer and Platform Group Microsoft UK

CSCI E 98: Managed Environments for the Execution of Programs

B M C S O F T W A R E, I N C. BASIC BEST PRACTICES. Ross Cochran Principal SW Consultant

Microsoft SharePoint 2010 on HP ProLiant DL380p Gen8 servers

WebSphere Architect (Performance and Monitoring) 2011 IBM Corporation

Application Performance Testing Basics

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Disk Storage Shortfall

Validating Java for Safety-Critical Applications

Monitoring Agent for Microsoft.NET Version Reference IBM

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

How To Check If Your Mailbox Is Running Properly

Diagnosing Performance and Stability Problems with Load Testing

Analyzing IBM i Performance Metrics

IBM Tivoli Composite Application Manager for Microsoft Applications: Microsoft Internet Information Services Agent Version Fix Pack 2.

Improve Business Productivity and User Experience with a SanDisk Powered SQL Server 2014 In-Memory OLTP Database

picojava TM : A Hardware Implementation of the Java Virtual Machine

CA Unified Infrastructure Management

NetBeans Profiler is an

JVM Garbage Collector settings investigation

Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters

How to create/avoid memory leak in Java and.net? Venkat Subramaniam

Java Performance. Adrian Dozsa TM-JUG

Users are Complaining that the System is Slow What Should I Do Now? Part 1

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

The Windows Web Platform. Michael Epprecht Microsoft Switzerland twitter: fastflame

Java Monitoring. Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer

Chapter 3 Operating-System Structures

Agility Database Scalability Testing

CA Nimsoft Monitor Snap

Chapter 15: AppInsight for SQL

Oracle JRockit Mission Control Overview

Virtualization of Oracle Evolves to Best Practice for Production Systems

Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010

THE BUSY DEVELOPER'S GUIDE TO JVM TROUBLESHOOTING

Eloquence Training What s new in Eloquence B.08.00

Microsoft SQL Server: MS Performance Tuning and Optimization Digital

Garbage Collection in the Java HotSpot Virtual Machine

Justin Bruns, Performance Test Lead, Fireman's Fund Insurance Robert May, Enterprise Software Tools Administrator Fireman's Fund Insurance

Production time profiling On-Demand with Java Flight Recorder

FIGURE Selecting properties for the event log.

Agenda. Tomcat Versions Troubleshooting management Tomcat Connectors HTTP Protocal and Performance Log Tuning JVM Tuning Load balancing Tomcat

A Close Look at PCI Express SSDs. Shirish Jamthe Director of System Engineering Virident Systems, Inc. August 2011

Load Testing and Monitoring Web Applications in a Windows Environment

WITH A FUSION POWERED SQL SERVER 2014 IN-MEMORY OLTP DATABASE

Monitoring and Diagnosing Production Applications Using Oracle Application Diagnostics for Java. An Oracle White Paper December 2007

Web Performance, Inc. Testing Services Sample Performance Analysis

Understanding Server Configuration Parameters and Their Effect on Server Statistics

11.1 inspectit inspectit

Advanced Performance Forensics

Resource Monitoring During Performance Testing. Experience Report by Johann du Plessis. Introduction. Planning for Monitoring

Resource Utilization of Middleware Components in Embedded Systems

Analyzing Java Performance on iseries

Performance Management for Cloudbased STC 2012

Top 10 reasons your ecommerce site will fail during peak periods

Transcription:

Useful metrics for Interpreting.NET performance UKCMG Free Forum 2011 Tuesday 22nd May Session C3a Capacitas 2011 1 Introduction.NET prevalence is high particularly amongst small-medium sized enterprises This presentation provides a brief overview of.net run-time environment Performance metrics that assist in the identification and diagnosis of performance problems are considered Presenter is currently performance testing a large retail website built on.net framework architecture Capacitas 2011 2

Constitution of.net CLR User and program interfaces.net Framework base classes & common services Common Language Runtime (CLR) Features of.net CLR Built in memory management Enhances application and infrastructure stability Memory objects undergo Garbage Collection to reduce the risk of memory leakage Common Type System (CTS) to enforce code robustness and language interoperability Enhanced performance Efficient Just-in-time (JIT) Compilation Server side applications Application scaling through threading services Worker threads in.net Enhanced system security Increased programmer efficiency (allegedly)!

Managed vs. Unmanaged code Managed Code CLR provides abstraction for developers Some configuration controls (threading, session) Don t assume that management is effective Un-managed Code Legacy code (E.g. Classic ASP) No CLR and limited run-time control Developers code management processes in their applications Memory leakage! Capacitas 2011 5 Requests Queued ASP.NET pattern Application Worker Process IIS Requests execution time (t2 t1) Application domain Client Named pipe Q Application domain Q pipeline Cache Requests in Application Queue Requests/sec Capacitas 2011 6

ASP.NET Requests per second ASP.NET Applications> Instance > Requests per Second Measures throughput of the ASP.NET application on the server. It is one the primary indicators that help you measure the cost of deploying your system at the necessary capacity A measure of the number or fulfuilled requests. Is independent of the arrival rate for requests. 7 ASP.NET Requests Queued ASP.NET Applications> Instance > Requests Queued The number of requests currently queued in named pipe for application. Queued requests indicate a shortage of I/O threads (IIS 5 & 6) and worker threads Queuing takes place if # worker threads < minworkerthreads ASP.NET Applications> Instance > Requests in Application Queue The number of requests currently queued in the application domain The current number of requests, including those that are queued, currently executing, or waiting 8

ASP.NET Request Latency ASP.NET Applications> Instance > Request Execution time The number of milliseconds taken to execute the last request. Time requests spend in application domain. Results are pretty erratic and care should be taken in interpreting If the monitoring frequency is high enough then this metric can prove useful. 9.NET CLR - Physical worker process threads.net CLR Locks and threads > Instance > # Physical Threads The number of native operating system threads created and owned by the common language runtime to act as underlying threads for managed thread objects High or increasing values may be an indication of thread blocking Garbage Collection or other Max threads limit is set by maxworkerthreads Too many threads may be inefficient. Check that system > context switches/s is not excessive 10

.NET CLR - Contention rate.net CLR Locks and threads > Instance > Contention rate per second the rate at which threads in the runtime unsuccessfully attempt to acquire a managed lock Sustained nonzero values may be of concern. Code synchronization allows only one thread at a time to enter Multiple threads attempting to get into this piece of code may become blocked. 11.NET CLR - Current Queue Length.NET CLR Locks and threads > Instance > Current Queue Length The total number of threads that are currently waiting to acquire a managed lock in the application If insufficient.net worker threads are free the counter will increase. 12

.NET CLR - Contention rate vs. Threading Ramp style load test More contentions in Test 1 resulting in higher worker thread count Resolves in case in Test 2 Application locking defect Capacitas 2011 13.NET CLR Bytes in all heaps.net CLR Memory> Instance > Bytes in all Heaps The current memory allocated in bytes on the garbage collection heaps. This counter is the sum of four other counters Gen 0 Heap Size, Gen 1 Heap Size, Gen 2 Heap Size, and Large Object Heap Size This value is always less than the Privates Bytes and invariably less that Working set W3WP.exe Working set and/or Private Bytes should be monitored independently. If this value continues to rise there is a leak in managed code 14

.NET CLR % Time in Garbage Collection.NET CLR Memory> Instance > % Time in GC The percentage of elapsed time that was spent performing a garbage collection since the last garbage collection cycle GC mechanism is complex. In brief: GC provides a sweep and mark function operates across the heap pools. Unreachable objects are marked for later deletion. % Time in GC gives an idea of the overhead of garbage collection. MS state that this value should be lower than 5% if %CPU is greater than 70%. 15.NET CLR Memory Leak Note the sawtooth pattern % Time in GC is quite high Response times Acceptable Capacitas 2011 16

Summary 20,000 Feet View of CLR and ASP.NET 3 layer model Feature of CLR ASP pattern Managed solutions still require close monitoring There are 100 s of metrics that could be examined and only a few were covered today Establish baselines for what you expect is Normal good behaviour (E.g. Requests per second, Physical threads, etc.) Capacitas 2011 17 Capacitas homepage: http://www.capacitas.co.uk Our ICT services: http://www.capacitas.co.uk/services/ THANKYOU Capacitas 2011 18