How to debug issues with high CPU on a Windows Server running the vFunction Controller



Isolate the Problematic Component

To investigate the CPU usage of an Application, isolate the problematic component by understanding what is consuming the CPU:

  • Is the resource constraint happening when the application is running without the vFunction Agent?
  • Is the resource constraint happening when the application is running with the vFunction Agent enabled but without Learning enabled?
  • Is the resource constraint happening when the application is running and Learning is enabled?

Debug Agent Issues

Please follow the below procedure for issues related to the .NET agent:

  1. On the Windows Server, capture the CPU and memory values when the vFunction Agent is disabled in each application process
  • .NET Framework 4.x Applications: COR_ENABLE_PROFILING=0
  • .NET Core 3.x and 6, 7, 8 Applications: CORECLR_ENABLE_PROFILING=0
  1. Enable the vFunction Agent and restart the application
  • .NET Framework 4.x Applications: COR_ENABLE_PROFILING=1
  • .NET Core 3.x and 6, 7, 8 Applications: CORECLR_ENABLE_PROFILING=1
  1. After the services are up, capture the CPU and memory values
  2. In the vFunction Server UI, start Learning with a new Measurement
  1. Go to the vFunction server UI
  2. Select the Learning tab in the top, center Menu Bar
  3. Select Measurements > New Measurement in the top of the left-hand pane
  4. On the Select Controllers screen, use the top-center sentence to Controllers: I want to learn on a Single Controller with the Name _____
  5. Click the blue Start Learning button in the bottom, center of the screen
  1. In the vFunction Server UI, monitor the bottom left counts of Functions in the vFunction Server UI until the Functions count changes from zero to a value
  2. On the Windows Server, capture the CPU and Memory values for the Application, Viper and Controller processes