Users report one or more of the following symptoms in a Citrix environment:
Performance degradation may be caused by:
Leverage the following tools to monitor the resource usage:
| Tool | Best For | Use Case |
|---|---|---|
| Task Manager | Quick live check | Basic troubleshooting |
| Resource Monitor | Per-process breakdown | Disk/network deep dive |
| Process Explorer | Advanced process view | CPU/memory leak |
| Procmon | Advanced Process View | Disk I/O |
| Perfmon | Long-term logging | Performance analysis |
| Citrix Director and Citrix Studio | Citrix session issues | VDI troubleshooting |
| PowerShell | Automation & scripting | Remote monitoring |
Workflow Summary:
STEP 1 – Identify Scope of Issue
Determine whether the issue is limited to certain machines or endpoint users, occurs at a particular time, is triggered by a scheduled task (Updates, Indexing, Backups etc), or happens during periods of high user activity.
STEP 2 – Review the System and Application Event logs
Review the System and Application Event logs on the affected machine to check if any relevant events are logged related to CPU, Memory or Disk latency. Below are a few examples:
| Resource | Event ID | Source | What It Indicates |
|---|---|---|---|
| Memory | 2004 | Resource-Exhaustion-Detector | Low virtual memory |
| Memory | 26 | Kernel-General | Memory allocation failure |
| CPU | 37 | Kernel-Processor-Power | CPU throttling |
| CPU | 55 | Kernel-Processor-Power | Performance state change |
| Disk | 7 | Disk | Bad block |
| Disk | 55 | NTFS | File system corruption |
| Disk | 153 | Disk | I/O retry / latency |
STEP 3 – Check Real-Time Resource Usage
A. Task Manager : For quick live check

3. Review the following by clicking on each tab.


B. Resource Monitor : For Per-process breakdown
Launch resmon.exe from start menu , cmd line or Win+R
Check:

C. Process Explorer : For Process-Level Deep Dive
Download Link: https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer

D. Process Monitor: To Trace Disk I/O Activity
1: Download and Launch
Download Process Monitor https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
2. Run Procmon.exe as administrator.
3. When it opens, it logs all system activity. Without filters, Procmon logs millions of events.
4. Pause Procmon capture (Ctrl + E)
5. Clear Display (Ctrl + E)
6. Click Filter (Ctrl + L).
Add below filters to display only Disk Read/Write Activity.
Operation → is → ReadFile and WriteFile

7. You can also filter by specific processes or paths.
8 Pause Procmon capture (Ctrl +E) after the issue is reproduced for 2-3 minutes. Do not keep Procmon running for more than a few minutes as it can fill up disk space very quickly.
9. Identify File Paths
Watch for Path column — this shows full file/folder location.
10. Use Built-in Summaries
Procmon provides aggregation views.
Go to:
Tools → File Summary

OR
Tools → Process Activity Summary

These views show:
This helps quickly identify top disk consumers.
STEP 4 – Capture Performance Logs (Recommended for Long term monitoring in case of intermittent Resource spike)
A. Use Performance Monitor
Create Data Collector Set using GUI

8. Performance Counter → Right click. Set the sample interval to 5 seconds and log Mode to Circular.


9. Start the Data collector Set to begin monitoring and Stop it once the issue occurs.
10. The log file is saved with .blg extension. Review the System Performance Report saved in C:\PerfLogs\Admin\New Data Collector Set\MachineName :

Here is an example of sample System Performance Report:
OR
Create Data collector set using cmd line:
B. Use PowerShell for Automated Real Time or Periodic Capture
Local Capture Script
Get-Counter '\Processor(_Total)\% Processor Time'
Get-Counter '\Memory\Available MBytes'
Get-Counter '\LogicalDisk(_Total)\% Free Space'
Get-Counter '\PhysicalDisk(_Total)\Avg. Disk Queue Length'
Get-Counter '\Network Interface(*)\Bytes Total/sec'
Remote Multi-Server Capture Script
Invoke-Command -ComputerName Server1,Server2 -ScriptBlock {
Get-Counter '\Processor(_Total)\% Processor Time'
Get-Counter '\Memory\Available MBytes'
Get-Counter '\LogicalDisk(_Total)\% Free Space'
Get-Counter '\PhysicalDisk(_Total)\Avg. Disk Queue Length'
Get-Counter '\Network Interface(*)\Bytes Total/sec'
}
Note: For Invoke-Command to work using the default Windows Remote Management (WinRM) protocol, PowerShell Remoting must be enabled on the remote computer(s)
STEP 5 – Citrix-Specific Validation
A. Use Citrix Director/Cloud Monitor/ Citrix Studio
Check:
Please refer to the sections highlighted in Red in Citrix Director/Cloud Monitor to review the above metrics.
1. Machine-based resource utilization and Load Evaluator Index monitoring:
https://support.citrix.com/external/article/CTX202150/how-to-calculate-the-load-evaluator-inde.html
Citrix Studio: To review VDA’s Load Index

Citrix Director:
Historical Data for Logon Performance, Load Evaluator Index, Resource Utilization

Live data for Machine and Session Details

Live Data for Machine Utilization

Historical Data for Machine Utilization

2. Diagnose Session Performance issues:
Live Data For Process Activity per session

Live Data for Session Performance

3. Diagnose user logon issues :
Historical Data for Logon Performance

Live Data For Logon Duration

4. Configure Alert Policies:

STEP 6 – Identify the bottleneck layer and isolate if the performance hit is due to a third party or Citrix process.
After isolating the issue using the above tools, determine whether it is specific to Citrix or a third-party process, and then engage the appropriate vendor accordingly for advanced debugging if needed.
"Citrix is not responsible for and does not endorse or accept any responsibility for the contents or your use of these third party Web sites. Citrix is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement by Citrix of the linked Web site. It is your responsibility to take precautions to ensure that whatever Web site you use is free of viruses or other harmful items."
This article guides you through the initial troubleshooting steps for analyzing performance issues. It also includes a checklist of key performance metrics to review, helping you determine whether the root cause is related to Citrix or a third-party component so you can involve the appropriate vendor for further investigation.
For further deep dive into the cause of memory leak, CPU spike or System performance issues, refer to the below articles:
Find a memory leak
https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/finding-a-memory-leak
High CPU usage troubleshooting guidance
https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/troubleshoot-high-cpu-usage-guidance
Scenario guide: Troubleshoot performance problems in Windows
https://learn.microsoft.com/en-us/troubleshoot/windows-server/performance/troubleshoot-performance-problems-in-windows