A Windows VPS that feels sluggish over Remote Desktop, or an app that slows down under load, usually has one clear bottleneck: CPU, memory, disk, or network. This guide shows how to find it with built-in tools, and the tuning steps that matter on a VPS.

Step 1: find the bottleneck

Task Manager (Ctrl+Shift+Esc) → Performance and Processes: which resource is maxed, and which process uses it?

Resource Monitor (resmon): per-process disk I/O, network connections, and memory (hard faults per second indicate paging).

Quick check in PowerShell:

Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, @{n='MemMB';e={[int]($_.WS/1MB)}}
Get-Counter '\Processor(_Total)\% Processor Time','\Memory\Available MBytes','\PhysicalDisk(_Total)\Avg. Disk Queue Length' -SampleInterval 2 -MaxSamples 5

Performance Monitor (perfmon): record a Data Collector Set over hours, to catch intermittent problems.

Memory

Windows with Desktop Experience needs memory just for itself and RDP sessions:

  • Plan 4 GB+ for RDP desktop use with a few applications. Trading platforms with many charts, browsers and SQL Server need more. See how much RAM a VPS needs.
  • SQL Server grabs as much memory as it can by default. Cap it (“Maximum server memory”) to leave room for Windows and other apps.
  • Browsers with many tabs on a server are memory hogs. Close what you don’t need.
  • Leave the page file system-managed, or at least 1–1.5× RAM on small VPS plans. Disabling it causes crashes when memory runs out.

CPU

  • Check for runaway processes (antivirus scans, Windows Update, search indexing, stuck apps).
  • Set the power plan to High performance (on VMs it mostly affects timer and CPU scheduling behaviour):
powercfg /setactive SCHEME_MIN
  • For trading terminals, fewer open charts and indicators, and longer refresh intervals, reduce CPU load noticeably.

Disk

  • Keep at least 15–20% free space. Updates and the page file need room. VPS.DO’s Windows plans start at 50 GB of disk.
  • Clean up with Disk Cleanup or cleanmgr, remove old Windows Update files (Dism /Online /Cleanup-Image /StartComponentCleanup), and clear old IIS logs. See Windows Server SFC and DISM.
  • Disable Windows Search indexing on servers where you don’t need it:
Stop-Service WSearch; Set-Service WSearch -StartupType Disabled

Services and startup apps

Disable what you don’t use. Examples that are often unnecessary on a single-purpose VPS: Print Spooler (also a security risk when not needed), Windows Search, Xbox services (on desktop builds), and vendor bloat:

Set-Service Spooler -StartupType Disabled; Stop-Service Spooler
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location

Change one thing at a time, and note what you changed.

Microsoft Defender

Real-time scanning of busy folders (databases, application data, trading terminal data folders) costs CPU and I/O. Add targeted exclusions for data folders of trusted applications. Don’t disable Defender entirely:

Add-MpPreference -ExclusionPath "C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA"

Schedule full scans for quiet hours. See Windows Defender on servers.

Windows Update timing

Updates can consume CPU and disk for long periods. Set active hours, or schedule installs and reboots for off-peak times. Install updates manually with PowerShell, when convenient. See Windows Update with PowerShell.

RDP responsiveness

If the desktop feels laggy, but the server’s resources are fine, the network is the cause:

When to upgrade

If CPU or memory stays near its limit during normal work after tuning, it’s time for a bigger plan. See when to upgrade your VPS.

Quick reference

Symptom Check / fix
High memory Task Manager; cap SQL Server; close browsers; page file on
High CPU Top processes; Defender scans; power plan
Disk full or slow Cleanup, DISM component cleanup, disable indexing
Laggy RDP, low usage Network latency; RDP client settings
Updates slow everything Schedule them off-peak

Related: Windows Event Viewer errors and Windows VPS.

  • Windows Server
  • Performance
  • Troubleshooting