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
+30Lines changed: 30 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -105,6 +105,36 @@ 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
+
- Creating a signature for the problem type and deciding whether to create a snapshot adds a very small CPU and memory overhead.
118
+
- 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.
119
+
120
+
**If the exception handler decides to create a snapshot:**
121
+
122
+
- 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.
123
+
124
+
- Converting the process snapshot to a minidump and uploading it to Application Insights takes several minutes.
125
+
- Convert: P50=63s, P90=187s, P95=275s.
126
+
- Upload: P50=31s, P90=75s, P95=98s.
127
+
128
+
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.
129
+
130
+
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.
131
+
132
+
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 is be proportional to the size of the process snapshot. Snapshot Uploader processes snapshots serially.
133
+
134
+
**When `TrackException` is called:**
135
+
136
+
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.
137
+
108
138
## Preview Versions of .NET Core
109
139
110
140
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
@@ -107,6 +107,19 @@ While the Snapshot Debugger process continues to run and serve traffic to users
107
107
108
108
If you enabled the Snapshot Debugger but you aren't seeing snapshots, see the [Troubleshooting guide](snapshot-debugger-troubleshoot.md).
109
109
110
+
## Overhead
111
+
112
+
The Snapshot Debugger is designed for use in production environments. The default settings include rate limits to minimize the impact on your applications.
113
+
114
+
However, you may experience small CPU, memory, and I/O overhead associated with the Snapshot Debugger, such as:
115
+
- When an exception is thrown in your application
116
+
- If the exception handler decides to create a snapshot
117
+
- When `TrackException` is called
118
+
119
+
There is **no additional cost** for storing data captured by Snapshot Debugger.
120
+
121
+
[See example scenarios in which you may experience Snapshot Debugger overhead.](./snapshot-debugger-troubleshoot.md#snapshot-debugger-overhead-scenarios)
122
+
110
123
## Limitations
111
124
112
125
This section discusses limitations for the Snapshot Debugger.
0 commit comments