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:
- 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
- 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
- After the services are up, capture the CPU and memory values
- In the vFunction Server UI, start Learning with a new Measurement
- Go to the vFunction server UI
- Select the Learning tab in the top, center Menu Bar
- Select Measurements > New Measurement in the top of the left-hand pane
- On the Select Controllers screen, use the top-center sentence to Controllers: I want to learn on a Single Controller with the Name _____
- Click the blue Start Learning button in the bottom, center of the screen
- 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
- On the Windows Server, capture the CPU and Memory values for the Application, Viper and Controller processes