Speaker: Sasha Goldshtein
Modern applications are extremely complex, and with complexity come difficulties in diagnosing performance issues, memory leaks, crashes, and other problems that might manifest only in the production environment. In this workshop, we will review the tools, libraries, and best practices for setting up your production monitoring and diagnostic environment. Through a series of detailed hands-on labs, you will learn how to measure performance in a production environment without interrupting operations, how to automatically diagnose and detect the root cause of crashes and memory leaks, how to identify and display specific objects in memory without suspending or modifying the application code, and how to set up alerts for performance issues.
Topics:
- Requirements for production monitoring and diagnostics
- The USE (Utilization, Saturation, Errors) performance method and checklist
- Continuous performance monitoring using Windows performance counters
- Configuring performance counter alerts
- Event Tracing for Windows and related tools (PerfView, WPR, WPA, etrace)
- Collecting ETW traces on-demand and continuously with memory buffers
- Diagnosing high-CPU and high-memory spikes
- Collecting and comparing heap snapshots for memory leak analysis
- Dump files and dump file types
- Collecting dumps automatically for crashes or extreme leaks
- Basic dump file analysis with Visual Studio and WinDbg
- Automatic dump analysis with the CLRMD library and related tools (msos, PerfView)
- Using CLRMD for live process diagnostics
Hands-on Labs Requirements:
During this full-day workshop you will have the opportunity to perform Hands-on Labs (HOL) exercises.
In order to be able to follow those exercises, you will need your own laptop with the following software installed:
- Windows 7 or later
- Visual Studio 2015/2017 (Community Edition is fine)
- Windows SDK for Windows 10
We will provide power sources and WiFi connectivity but we do not provide laptops, so please bring your own!