Sometimes environmental conditions cause trouble on the machines where your application runs. Issues that occur outside monitored application code don't show up on transaction snapshots. Machine snapshots provide critical details about CPU usage, memory usage, and the IIS queue on a server at a specific moment in time. Use the data in machine snapshots to uncover and resolve environmental problems.

generates machine snapshots to capture the state of a server at a specific moment in time. The machine snapshots show the processes running on the machine, the IIS application pool activity, and any related transaction snapshots. By default the .NET Machine Agent takes machine snapshots under these conditions:

  • Periodic collection: The agent takes one snapshot every 10 minutes.
  • Breached thresholds: The .NET Machine Agent takes samples of machine statistics every 10 seconds within a 10-minute window. For each sample, the agent checks the CPU percent usage, the memory percent usage, and the oldest item in the IIS application pool queue. The agent flags a sample as a violation when the current usage meets or exceeds one of these thresholds:
    • CPU at 80% or higher

    • Memory at 80% or higher

    • IIS application pool queue item older than 100 milliseconds
    The agent takes a snapshot when it identifies 6 violations of a single type, such as CPU usage, within the window. The agent only takes one snapshot per window for breached thresholds.

To customize the periodic collection or threshold settings, see Configure Machine Snapshots for .NET.

Before Starting

The .NET Machine Agent requires >= IIS 7 to return machine snapshot data for IIS application pools. Additionally, you must enable the Request Monitor for the IIS Health Monitoring feature.

Request Monitor

To enable Request Monitor from the Windows PowerShell command line, launch PowerShell as an administrator and run this command:

 Install-WindowsFeature Web-Request-Monitor

Work With Machine Snapshots

The Machine Snapshot tab on the Application dashboard lists all the snapshots for the selected time range. Entries for individual snapshots show:

Use Filters to limit the snapshot list to a specific snapshot trigger:

Double-click a snapshot to open the Machine Snapshot panel:

Click a column heading to sort by the column. For example, click CPU % and sort descending to identify processes using the most CPU.
Machine Snapshot