Windows VPS: Performance Tweaks

A fresh Windows VPS has several settings designed for desktop/GUI that waste resources unnecessarily on a server. These optimizations apply to Windows Server 2019/2022.

02

1. Disable Unnecessary Services

Open services.msc and set these services to Disabled (if you don't use them):

ServiceReason
Windows Search (WSearch)Indexing not needed on server
Print SpoolerOnly if you don't print
Windows Update (prod only)Manage manually
Superfetch / SysMainUseless with SSD or low RAM
ThemesNot needed with minimal RDP
Connected User Experiences (DiagTrack)Telemetry
Windows Error Reporting (WerSvc)Reduces I/O on crash

Via PowerShell (faster):

powershell
$services = @("WSearch","Spooler","SysMain","DiagTrack","WerSvc","Themes")
foreach ($s in $services) {
    Stop-Service -Name $s -Force -ErrorAction SilentlyContinue
    Set-Service -Name $s -StartupType Disabled
}
03

2. Power Plan: High Performance

Windows Server often uses balanced plan that throttles CPU.

powershell
powercfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
powercfg /query SCHEME_CURRENT | Select-String "Power Scheme GUID"

Or via GUI: Control Panel → Power Options → High Performance.

On some hypervisors (KVM/Hyper-V) this setting is essential to avoid CPU latency.

04

3. Disable Animations and Visual Effects

Reduces CPU/GPU load and improves RDP responsiveness.

powershell
# Via registry
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects"
Set-ItemProperty -Path $path -Name VisualFXSetting -Value 2

Or: right-click This PC → Properties → Advanced system settings → Performance Settings → Optimal performance.

05

4. Optimize Network (TCP/IP Stack)

powershell
# Increase TCP send/receive buffers
netsh int tcp set global autotuninglevel=normal
netsh int tcp set global chimney=enabled
netsh int tcp set global rss=enabled
netsh int tcp set global netdma=enabled

# Disable Nagle algorithm for low latency (gaming server, FiveM, etc.)
# Go to HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<ID>
# Add: TcpAckFrequency = 1 and TCPNoDelay = 1

For gaming servers (FiveM, MTA, etc.) via registry:

powershell
$interfaces = Get-ChildItem "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"
foreach ($iface in $interfaces) {
    Set-ItemProperty -Path $iface.PSPath -Name "TcpAckFrequency" -Value 1 -Type DWord -ErrorAction SilentlyContinue
    Set-ItemProperty -Path $iface.PSPath -Name "TCPNoDelay" -Value 1 -Type DWord -ErrorAction SilentlyContinue
}
06

5. Paging File (Virtual RAM)

On VPS with limited RAM, configure pagefile optimally:

powershell
# See current configuration
Get-CimInstance Win32_PageFileSetting

# Manual setup: initial 2048 MB, max 4096 MB on C:
$cs = Get-WmiObject Win32_ComputerSystem
$cs.AutomaticManagedPagefile = $false
$cs.Put()

$pf = Get-WmiObject Win32_PageFileSetting
$pf.InitialSize = 2048
$pf.MaximumSize = 4096
$pf.Put()

Adjust based on available RAM: generally 1x-1.5x physical RAM.

07

6. Reduce RDP Overhead

If you access via Remote Desktop, these settings improve connection performance:

In Group Policy Editor (gpedit.msc):

Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Remote Session Environment
  • Limit maximum color depth: 16-bit
  • Remove wallpaper for Remote Desktop Connections: Enabled
  • Do not allow font smoothing: Enabled
08

7. Disable Windows Defender (isolated environments only)

Only if you already have another protection (e.g. hardware firewall, sandboxed environment). Don't disable Defender on internet-exposed servers without alternative protection.

powershell
Set-MpPreference -DisableRealtimeMonitoring $true
# To disable completely (requires Tamper Protection disabled)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name DisableAntiSpyware -Value 1
09

8. Optimize Disk

powershell
# Disable indexing on C: drive (for SSD)
$drive = Get-WmiObject Win32_Volume -Filter "DriveLetter='C:'"
$drive.IndexingEnabled = $false
$drive.Put()

# Disable 8.3 filename (improves NTFS performance)
fsutil behavior set disable8dot3 1

# Disable last access timestamp (reduces I/O)
fsutil behavior set disablelastaccess 1
10

9. Clean Startup

Remove programs from automatic startup:

powershell
# See what starts on boot
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location

# Or use msconfig or Task Manager > Startup
11

Expected Results

After these tweaks on a 2 vCPU / 4 GB RAM Windows Server 2022 VPS you should see:

  • -20-30% RAM usage at rest
  • RDP latency reduced noticeably
  • CPU response improved on peak loads

DeluxHost, opgericht in 2023, biedt hoogwaardige hostingoplossingen voor diverse digitale behoeften. Wij bieden gedeelde hosting, VPS en dedicated servers met geavanceerde beveiliging en wereldwijde datacenters.

© DeluxHost, Alle rechten voorbehouden. | BTW-nummer: IT17734661006
Alle systemen operationeel