Breaking: Windows Delivery Optimization Triggers RAM Spikes on PCs
Table of Contents
- 1. Breaking: Windows Delivery Optimization Triggers RAM Spikes on PCs
- 2. What’s happening and why it matters
- 3. How to monitor and mitigate
- 4. Rapid reference: options at a glance
- 5. Evergreen takeaways
- 6. Method 1 – Disable the service via Services snap‑in
- 7. Why diagtrack can balloon memory usage
- 8. How to verify the leak is coming from DiagTrack
- 9. Quick fix: Disable DiagTrack safely
- 10. Method 1 – Group Policy (Windows Pro/Edu/Enterprise)
- 11. Method 2 – Services console (All editions)
- 12. Method 3 – PowerShell (scriptable for enterprises)
- 13. # Stop and disable the service
Stop-Service -Name DiagTrack -Force
Set-Service -Name DiagTrack -StartupType Disabled# Verify the change
Get-Service -Name DiagTrack | Format-Table name, Status, StartType - 14. Permanent solutions and preventative measures
- 15. 1. Apply the latest cumulative update
- 16. 2. Clean corrupted diagnostic packages
- 17. 3. Monitor with built‑in Performance monitor
- 18. 4. Use a scheduled task to reset the service nightly
- 19. Real‑world case study: Enterprise IT department reduces RAM pressure by 85 %
- 20. Practical tips for power users
- 21. Summary of actionable steps
A wave of reports shows the Delivery Optimization service pushing memory usage to the edge on many Windows machines. In several cases, the svchost.exe host process appears as the leading consumer, signaling potential strain on system resources tied to update sharing.
Experts warn of two possible explanations: a memory leak within the Delivery Optimization component, or just a growing RAM requirement to handle large updates, advanced AI features, or demanding games.
What’s happening and why it matters
Delivery Optimization, known as DoSvc, is designed to cut update bandwidth by sharing data with other devices on the same network. When DoSvc consumes important RAM, it can degrade overall performance, especially on devices with modest memory.
How to monitor and mitigate
Administrators and power users can quickly gauge the impact with a Windows PowerShell command that isolates the DoSvc use by svchost and shows its current memory footprint:
Get-Process -Name svchost | Where-Object {$_.Path -like "*DoSvc*"} | Select-Object Id, WorkingSet
This provides real-time visibility into how much memory Delivery optimization is consuming. You can also review and adjust the service’s startup behavior through the Services panel.
- Open the Services console (services.msc) and locate Delivery Optimization. Change the startup type to Manual or Disabled if needed.
- In Windows Update settings, access Delivery Optimization and limit sharing to the local network or disable the feature entirely.
For authoritative guidance, Microsoft’s official documentation explains how Delivery Optimization works and how to configure it for different environments.Learn more about delivery Optimization.
Rapid reference: options at a glance
| Situation | Recommended Action | Impact | Trade-off |
|---|---|---|---|
| High RAM usage from DoSvc | Set Delivery Optimization to Local Network only or Disabled |
Reduces memory pressure | Updates may slow or rely on peers within the local network |
| Suspected memory leak | Disable the service temporarily to test | Memory usage stabilizes | Updates must be re-enabled to resume normal operation |
| general monitoring | Get-Process -Name svchost | Where-Object { $_.Path -like "*DoSvc*" } | Select-Object Id,WorkingSet |
provides real-time memory footprint | Requires administrator access |
In enterprise environments,administrators can apply Group Policy settings to standardize Delivery Optimization behavior across devices,ensuring predictable resource use while keeping updates efficient. See Microsoft’s guidance for enterprise deployment.
Evergreen takeaways
Delivery Optimization can dramatically reduce update bandwidth, but it may demand more RAM on some machines. Regular monitoring, targeted configuration, and clear policies help balance performance with update speed.Always verify changes with a controlled rollout and be ready to revert if users report slower updates or connectivity issues.
Two quick questions for readers: Have you noticed DoSvc consuming noticeable memory on your PC? What configuration change did you find most effective in your network habitat?
Share your experiences in the comments and tell us how you manage Delivery Optimization in your setup. For further reading, consult the official Microsoft docs and trusted tech coverage on this topic.
Method 1 – Disable the service via Services snap‑in
what is the “hidden” Windows service that can eat 20 GB of RAM?
The culprit is DiagTrack (Connected user Experiences and Telemetry), which runs under svchost.exe. When telemetry settings are mis‑configured or the service encounters a crash loop, it can allocate memory uncontrollably, frequently enough reaching 10 GB - 20 GB on systems with 32 GB+ of RAM.
Why diagtrack can balloon memory usage
| Reason | How it manifests | Technical detail |
|---|---|---|
| Telemetry data backlog | RAM spikes after Windows Update or when the device is offline for long periods. | The service queues event logs in memory before flushing to the cloud; a stalled network connection prevents the flush. |
| Corrupt diagnostic packages | Continuous rise in Private Bytes for the svchost.exe process. |
The service repeatedly tries to parse broken .etl files,leaking handles each attempt. |
| Interaction with third‑party monitoring tools | Overlap with tools like Process Explorer, Sysinternals RAMMap, or security suites. | Duplicate hooks cause the service to allocate duplicate buffers. |
| Windows 11 22H2 regression | Users reported memory leaks after the 22H2 update. | A change in the diagnostic pipeline introduced an unbounded loop in the TelemetryTransport component. |
How to verify the leak is coming from DiagTrack
- Open Task Manager → Details tab → locate
svchost.exeinstances. - Add the “Command line” column (View → Select columns).
- Find the line containing
‑k LocalServiceNetworkRestricted -p DiagTrack. - Right‑click → “Go to service(s)” – confirms the process belongs to Connected User Experiences and Telemetry.
- Observe the Memory (Private Working Set) column; values above 8 GB usually indicate a leak.
Quick fix: Disable DiagTrack safely
Note: Disabling telemetry may reduce diagnostic data sent to Microsoft, but it does not affect core OS security updates.
Method 1 – Group Policy (Windows Pro/Edu/Enterprise)
- Press Win + R, type
gpedit.msc, press Enter. - Navigate to Computer Configuration → Administrative Templates → Windows Components → Data Collection and Preview Builds.
- Double‑click “Allow Telemetry”, set to Disabled or Enabled → 0 (Security only).
- Run
gpupdate /forcein an elevated Command Prompt.
Method 2 – Services console (All editions)
- Press Win + R,type
services.msc, press Enter. - Locate “Connected User Experiences and telemetry”.
- Right‑click → Properties → Startup type → Disabled.
- click Stop, then OK.
Method 3 – PowerShell (scriptable for enterprises)
# Stop and disable the service
Stop-Service -Name DiagTrack -Force
Set-Service -Name DiagTrack -StartupType Disabled
# Verify the change
Get-Service -Name DiagTrack | Format-Table name, Status, StartType
# Stop and disable the service
Stop-Service -Name DiagTrack -Force
Set-Service -Name DiagTrack -StartupType Disabled
# Verify the change
Get-Service -Name DiagTrack | Format-Table name, Status, StartTypePermanent solutions and preventative measures
1. Apply the latest cumulative update
Microsoft released fix KB 5028259 (October 2025) that caps the memory allocation to 2 GB for the telemetry service. Use Windows update or manually download from the Microsoft Update Catalog.
2. Clean corrupted diagnostic packages
# Delete stale ETL files that may cause re‑parsing loops
Remove-Item -Path "$env:ProgramDatamicrosoftDiagnosisETL*" -Force
Then restart the service (or the system) to let Windows rebuild a fresh package set.
3. Monitor with built‑in Performance monitor
- Run
perfmon.msc. - Add a Counter: Process → Private bytes → svchost (DiagTrack).
- Set an alert threshold at 4 GB and configure an email or task‑scheduler action to automatically stop the service if exceeded.
4. Use a scheduled task to reset the service nightly
<?xml version="1.0"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<DailyTrigger>
<StartBoundary>2025-12-20T03:00:00</startboundary>
</DailyTrigger>
</Triggers>
<Actions Context="Author">
<Exec>
<Command>powershell.exe</Command>
<Arguments>-NoProfile -WindowStyle Hidden -Command "Stop-Service -Name DiagTrack -Force; Start-Service -Name DiagTrack"</Arguments>
</Exec>
</Actions>
</Task>
Import via Task Scheduler → Import Task…. This clears any temporary memory buildup without a full reboot.
Real‑world case study: Enterprise IT department reduces RAM pressure by 85 %
- Company: Midwest Health Network (250 Windows 11 PCs,average 16 GB RAM).
- Problem: Frequent alerts from RAMMap showing
svchost.exe (DiagTrack)at 12 GB - 18 GB, causing slow Excel performance. - Action: Applied Method 2 (service disabled) and installed KB 5028259. Added a daily PowerShell reset task for remaining machines running a legacy version.
- Result: Average private working set for DiagTrack dropped to 150 MB. Overall system memory utilization fell from 78 % to 46 %, and user‑reported lag decreased by 85 % over a 4‑week period.
Practical tips for power users
- Avoid third‑party “system optimizer” tools that claim to “trim Windows telemetry memory”; they often restart the service and recreate the leak.
- Keep the network stack healthy – a stable internet connection ensures telemetry data is flushed promptly.
- Check Event Viewer (
Applications and Services Logs → Microsoft → Windows → Diagnostics‑Telemetry) for warning IDs 3000‑3005,which indicate failed uploads and may foreshadow a leak. - If you need telemetry for compliance, instead of disabling, re‑configure the service to write logs to disk: set registry key
HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesDiagnosticsDiagnosticLogPathto a dedicated SSD partition with ample space.
Summary of actionable steps
- Identify the memory‑hungry
svchost.exeinstance using Task Manager’s command line view. - Disable DiagTrack via Group Policy, Services, or PowerShell.
- Install the latest cumulative update (KB 5028259) to get Microsoft’s built‑in memory cap.
- Delete any corrupted ETL diagnostic files.
- Set up Performance Monitor alerts and a nightly reset task for ongoing protection.
- Monitor Event Viewer for telemetry upload failures to pre‑empt future spikes.
By following these steps, Windows users can eliminate the hidden 20 GB RAM monster, restore system responsiveness, and keep their machines running within optimal memory limits.