Debugging and troubleshooting are necessaryactivities of application development and test procedures. However, production environments and scenarios rarely coincide with development and test environments and scenarios. Such gaps between predictions and real-life often result as CPU and/or memory consumption issues, unexpected service downtimes and negative end-user experience.
On top of that, troubleshooting issues in production environments requires different skills and tools than debugging during development.
Having worked for many years on problems at thousands of customers’ maybe hundreds of thousands of different applications on production environments and working closely with the product groups and customer support at Microsoft, the Premier Field Engineering organization has deep expertise on application performance tuning and optimization. The .NET Performance Tuning and Optimization is designed and developed by Premier Field Engineering using this expertise to evaluate and remediate .NET applications to ensure productive use.
This review includes analysis of the target .NET application for problems relating to configuration, performance, and stability. The review can be reactive (focus on known issues), or proactive (search for and assess potential problems). During the review, your application support staff gains hands-on knowledge transfer of the tools and techniques required to troubleshoot your application in the production environment. You also receive a report that details findings and recommendations to complete the engagement.
Objectives of this review are:
Fine tune and optimize application resource consumption such as memory, CPU and network.
Find and address potential bottlenecks and scalability issues
Understand if applications are running in line with best practices and ways to improve the speed and stability of the application.Identify areas of potential instability and provide recommendations to remediate them.
Taking recommended actions after this review may also help reduce costs for cloud-based applications by optimizing performance.
Any application running on a supported version of .NET Framework or .NET Core (on Windows) hosted in Physical/Virtual Machines (On-Premises or Cloud) or Azure Web App (PaaS).
A Microsoft Premier Field Engineer will work to set the scope of the engagement and define a customer action plan. Although the assessment might be more beneficial on production environments, if the customer has valid test scenarios in place, it can also be delivered on test environments.
According to the scope, different kind of information will be collected such as logs, traces and memory dumps.
The engineer will analyze the collected data, troubleshooting necessary items, and deliver a remediation plan.
Develop a plan
The engineer will discuss the findings with your team and recommend best practices.
Detailed scope and requirements
Analysis of performance counters pertinent to the target .NET application(1).
Analysis of Event Trace for Windows (ETW)
Examine memory profile of the application.
Review of Windows Event Logging.
Examination of IIS logs (if the target is an ASP.NET application).
Assistance analyzing application load tests in a test environment, or production load profiles if the application is in production.
Breakdown of the prevalent exception types(2).
A review of the process and team practices.
Extract an application performance baseline for further comparisons.
The application must be buildable and running and include one of the following:
A test/QA server and stress testing scripts
A production server and permission or ability to gather non-invasive data such as a memory dump, ETW trace, Perfmon log, etc.
Team member(s) must be available who have:
.NET knowledge and programming experience
Detailed knowledge of the application including architecture and requirements
Access to the application and source code
All members of the development team should be available for the engineer discussion of best practices and how to implement them across the application.
For more information, please contact your Microsoft Account Representative.
Some performance counters will not be available for cloud environments, but the data from the monitoring applications (like Application Insights) can be used.
Only the exceptions which are already logged, or which can be caught during data collection using tool like DebugDiag, PerfViewcan be analyzed.