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, fondata nel 2023, offre soluzioni di hosting di alta qualità per diverse esigenze digitali. Forniamo hosting condiviso, VPS e server dedicati con sicurezza avanzata e datacenter globali.

© DeluxHost, Tutti i diritti riservati. | Partita IVA: IT17734661006
Tutti i sistemi operativi