You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/azure-monitor/snapshot-debugger/snapshot-debugger-troubleshoot.md
+34Lines changed: 34 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -105,6 +105,40 @@ To check the setting, open your *web.config* file and find the system.web sectio
105
105
> Modifying the `httpRuntime targetFramework` value changes the runtime quirks applied to your application and can cause other, subtle behavior changes. Be sure to test your application thoroughly after making this change. For a full list of compatibility changes, see [Re-targeting changes](/dotnet/framework/migration-guide/application-compatibility#retargeting-changes).
106
106
> [!NOTE]
107
107
> If the `targetFramework` is 4.7 or above then Windows determines the available protocols. In Azure App Service, TLS 1.2 is available. However, if you're using your own virtual machine, you may need to enable TLS 1.2 in the OS.
108
+
109
+
## Snapshot Debugger overhead scenarios
110
+
111
+
The Snapshot Debugger is designed for use in production environments. The default settings include rate limits to minimize the impact on your applications.
112
+
113
+
However, you may experience small CPU, memory, and I/O overhead associated with the Snapshot Debugger, like in the following scenarios.
114
+
115
+
**When an exception is thrown in your application:**
116
+
117
+
_Snapshot creation_
118
+
Creating a signature for the problem type and deciding whether to create a snapshot adds a very small CPU and memory overhead.
119
+
120
+
_Deoptimization_
121
+
If de-optimization is enabled, there is an overhead for re-JITting the method that threw the exception. This will be incurred the next time that method executes. Depending on the size of the method, this could be between 1ms and 100ms of CPU time.
122
+
123
+
**If the exception handler decides to create a snapshot:**
124
+
125
+
_Process snapshot creation_
126
+
Creating the process snapshot takes about half a second (P50=0.3s, P90=1.2s, P95=1.9s) during which time, the thread that threw the exception is paused. Other threads are not blocked.
127
+
128
+
_Converting to a minidump and uploading_
129
+
130
+
Converting the process snapshot to a minidump and uploading it to Application Insights takes several minutes.
131
+
- Convert: P50=63s, P90=187s, P95=275s.
132
+
- Upload: P50=31s, P90=75s, P95=98s.
133
+
134
+
This is done in Snapshot Uploader, which runs in a separate process. The Snapshot Uploader process runs at below normal CPU priority and uses low priority I/O.
135
+
136
+
The minidump is first written to disk and the amount of disk spaced is roughly the same as the working set of the original process. Writing the minidump can induce page faults as memory is read. The minidump is compressed during upload which consumes both CPU and memory in the Snapshot Uploader process. The CPU, memory and disk overhead for this will be proportional to the size of the process snapshot. Snapshot Uploader processes snapshots serially.
137
+
138
+
**When `TrackException` is called:**
139
+
140
+
The Snapshot Debugger checks if the exception is new or if a snapshot has been created for it. This adds a very small CPU overhead.
141
+
108
142
## Preview Versions of .NET Core
109
143
110
144
If you're using a preview version of .NET Core or your application references Application Insights SDK, directly or indirectly via a dependent assembly, follow the instructions for [Enable Snapshot Debugger for other environments](snapshot-debugger-vm.md?toc=/azure/azure-monitor/toc.json).
Copy file name to clipboardExpand all lines: articles/azure-monitor/snapshot-debugger/snapshot-debugger.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,19 @@ The following environments are supported:
47
47
> [!NOTE]
48
48
> Client applications (for example, WPF, Windows Forms, or UWP) aren't supported.
49
49
50
+
## Overhead
51
+
52
+
The Snapshot Debugger is designed for use in production environments. The default settings include rate limits to minimize the impact on your applications.
53
+
54
+
However, you may experience small CPU, memory, and I/O overhead associated with the Snapshot Debugger, such as:
55
+
- When an exception is thrown in your application
56
+
- If the exception handler decides to create a snapshot
57
+
- When `TrackException` is called
58
+
59
+
There is **no additional cost** for storing data captured by Snapshot Debugger.
60
+
61
+
[Learn more details regarding the Snapshot Debugger overhead.](./snapshot-debugger-troubleshoot.md)
0 commit comments