Disclaimer: El autor de este blog no te contactará internamente para ofrecerte servicios o negocios. Si eso sucede, desconfía y reporta.

Acelerando tu Servidor Windows: Guía Completa de Optimización para Copytrading y RDP

Descubre cómo optimizar al máximo tu servidor Windows con un script de PowerShell diseñado para mejorar el rendimiento de MetaTrader y múltiples sesiones RDP. Una guía práctica y sencilla para copytrading eficiente y sin problemas.

SERVERS

Javier Gómez

10/23/20225 min leer

rdp optimization server vps
rdp optimization server vps

¡Hola a todos! Hoy quiero compartir con ustedes una guía completa para optimizar el rendimiento de un servidor Windows. En mi caso, utilizo el servidor para ejecutar múltiples instancias de MetaTrader (MT4/5) con varias sesiones de Escritorio Remoto (RDP) distribuidas entre diferentes usuarios para copytrading local. ¡Y claro, cuando tienes tanta carga corriendo en simultáneo, exprimir hasta la última gota de rendimiento es crucial!

Si bien puedes optimizar tu servidor de muchas maneras, he decidido crear un script en PowerShell que automatiza gran parte de las configuraciones clave. No necesitas ser un experto para seguir estos pasos, y te guiaré paso a paso para que puedas obtener el mejor rendimiento posible de tu servidor. ¡Vamos allá!

¿Por qué es importante optimizar un servidor?

Un servidor no es como una computadora personal. Su propósito es manejar múltiples procesos, usuarios, y conexiones al mismo tiempo, y si no está bien configurado, puede volverse lento e ineficiente. En mi caso, el servidor maneja hasta 250 instancias de MetaTrader 4 distribuidas entre 24 usuarios RDP, lo que genera una carga significativa en la CPU, memoria, red y discos.

En lugar de hacer clic en mil menús y cambiar configuraciones manualmente, podemos usar PowerShell, que es una herramienta poderosa que permite automatizar tareas de administración del sistema.

Sin una buena optimización, el rendimiento se ve afectado: el sistema se vuelve más lento, las conexiones se cortan, y las aplicaciones empiezan a fallar. De ahí la importancia de optimizar los recursos disponibles para que el servidor trabaje al máximo sin sobrecargarse.

A continuación, te comparto el script y una explicación detallada de cada paso.

1. Script PowerShell para la optimización del servidor.

# ==== Optimización del Sistema Operativo ====

Write-Host "Deshabilitando servicios innecesarios..." -ForegroundColor Green

# Deshabilitar servicios innecesarios (Ejemplo: Windows Search, Print Spooler, Windows Update)

Stop-Service -Name "wsearch" -Force

Set-Service -Name "wsearch" -StartupType Disabled

Stop-Service -Name "Spooler" -Force

Set-Service -Name "Spooler" -StartupType Disabled

# ==== Optimización de la Memoria (Memory Compression) ====

Write-Host "Habilitando Memory Compression..." -ForegroundColor Green

Enable-MMAgent -MemoryCompression

Get-MMAgent | Format-List

# ==== Optimización del archivo de paginación ====

Write-Host "Ajustando archivo de paginación..." -ForegroundColor Green

# Cambiar el archivo de paginación a un valor fijo (50 a 75 GB en este caso)

$minPageFile = 51200 # Tamaño mínimo del archivo de paginación (en MB)

$maxPageFile = 76800 # Tamaño máximo del archivo de paginación (en MB)

# Configuración del archivo de paginación en la unidad C:

wmic pagefileset where name="C:\\pagefile.sys" set InitialSize=$minPageFile,MaximumSize=$maxPageFile

Write-Host "Archivo de paginación ajustado a $minPageFile MB (mínimo) y $maxPageFile MB (máximo)"

# ==== Optimización del Disco ====

Write-Host "Deshabilitando la indexación del disco..." -ForegroundColor Green

# Deshabilitar la indexación del disco

Get-WmiObject -Query "SELECT * FROM Win32_Volume WHERE DriveType = 3" | ForEach-Object { $_.IndexingEnabled = $false; $_.Put() }

# ==== Optimización de la Red ====

Write-Host "Optimizando la configuración de red..." -ForegroundColor Green

# Habilitar Receive Side Scaling (RSS) y Receive Window Auto-Tuning

netsh int tcp set global rss=enabled

netsh int tcp set global autotuninglevel=normal

# ==== Optimización de RDP ====

Write-Host "Aplicando optimizaciones a RDP..." -ForegroundColor Green

# Cambiar configuraciones visuales para sesiones RDP

$regPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services"

if (-not (Test-Path $regPath)) {

New-Item -Path $regPath -Force

}

New-ItemProperty -Path $regPath -Name "fDisableCursorShadow" -Value 1 -PropertyType DWORD -Force

New-ItemProperty -Path $regPath -Name "fDisableFullWindowDrag" -Value 1 -PropertyType DWORD -Force

New-ItemProperty -Path $regPath -Name "fDisableMenuAnims" -Value 1 -PropertyType DWORD -Force

New-ItemProperty -Path $regPath -Name "fDisableThemes" -Value 1 -PropertyType DWORD -Force

New-ItemProperty -Path $regPath -Name "fDisableWallpaper" -Value 1 -PropertyType DWORD -Force

# ==== Monitoreo de Recursos ====

Write-Host "Configurando monitoreo de recursos..." -ForegroundColor Green

# Instalar o lanzar Performance Monitor para analizar el rendimiento

Start-Process "perfmon.exe"

Write-Host "Performance Monitor iniciado, revisa los recursos en tiempo real."

Write-Host "Optimización del servidor completada. ¡Disfruta de tu potencia al máximo!" -ForegroundColor Green

Explicación paso a paso del script.

1. Deshabilitar servicios innecesarios.

En esta sección, deshabilitamos algunos servicios que no son necesarios en un entorno de servidor donde la prioridad es ejecutar terminales de MetaTrader 4 y sesiones RDP. En este caso, apagamos Windows Search (búsqueda de archivos) y Print Spooler (si no estás utilizando impresoras).

  • ¿Por qué? Estos servicios consumen recursos que podrían ser utilizados por los procesos críticos (como tus terminales MT4 o las sesiones RDP).

  • ¿Para qué? Para liberar memoria y CPU, optimizando el uso de recursos.

2. Habilitar Memory Compression.

Memory Compression es una característica que comprime las páginas de memoria antes de escribirlas en el archivo de paginación, lo que puede reducir el uso de la RAM.

  • ¿Por qué? Cuando tienes múltiples procesos corriendo al mismo tiempo (en tu caso, 250 instancias de MetaTrader), la compresión de memoria ayuda a que el sistema mantenga más datos en la RAM sin saturarse.

  • ¿Para qué? Evita que el sistema necesite usar el disco (más lento) para paginación, mejorando la velocidad.

3. Ajustar el archivo de paginación

El archivo de paginación es espacio reservado en el disco para manejar sobrecargas de memoria. Dado que tienes 256 GB de RAM, ajustar el archivo de paginación a un valor fijo entre 50 y 75 GB evitará que el sistema tenga que recalcular dinámicamente el tamaño del archivo, mejorando el rendimiento.

  • ¿Por qué? Con un archivo de paginación fijo, el sistema no pierde tiempo ajustando su tamaño en función de la carga.

  • ¿Para qué? Esto previene problemas de rendimiento cuando la memoria física se satura.

4. Deshabilitar la indexación del disco.

Windows Indexing es útil en PCs personales para encontrar archivos rápidamente. En un servidor, donde cada milisegundo cuenta, es mejor desactivarlo.

  • ¿Por qué? Los discos SSD no necesitan indexación, y si el servidor usa almacenamiento SSD, es mejor deshabilitar este servicio.

  • ¿Para qué? Libera recursos del disco y CPU que serían desperdiciados en indexar archivos que no necesitas buscar rápidamente.

5. Optimización de la red.

Aquí habilitamos dos configuraciones clave: Receive Side Scaling (RSS) y Receive Window Auto-Tuning. Estas configuraciones optimizan cómo el sistema maneja el tráfico de red.

  • ¿Por qué? En servidores con mucha carga de red, estas configuraciones mejoran el rendimiento al permitir que el sistema escale mejor el procesamiento de paquetes y ajuste el tamaño de las ventanas de transmisión.

  • ¿Para qué? Para mejorar la estabilidad y velocidad de las conexiones remotas, reduciendo latencia en sesiones RDP.

6. Optimización de RDP.

Las sesiones de Remote Desktop Protocol (RDP) pueden consumir muchos recursos gráficos innecesarios. Este bloque de código desactiva sombras de cursor, efectos de ventanas, animaciones, y fondos de pantalla.

  • ¿Por qué? Con muchas conexiones RDP, reducir las demandas gráficas mejora el rendimiento.

  • ¿Para qué? Liberar recursos para que las conexiones RDP sean más rápidas y estables.

7. Monitoreo del rendimiento.

Finalmente, lanzamos Performance Monitor para que puedas monitorear en tiempo real cómo está funcionando el sistema. Esto te permitirá detectar cualquier cuello de botella o procesos que consuman más recursos de los que deberían.

  • ¿Por qué? Es crucial monitorear cómo responden los recursos del servidor tras la optimización.

  • ¿Para qué? Te permite ajustar configuraciones adicionales si es necesario.

Conclusión.

Con este script de PowerShell, hemos cubierto los ajustes básicos para optimizar el rendimiento de un servidor dedicado a ejecutar múltiples instancias de MetaTrader 4 y manejar sesiones RDP. Estos pasos son aplicables a cualquier servidor de alto rendimiento y te ayudarán a aprovechar al máximo el hardware disponible.

Si estás buscando aumentar la eficiencia, este es un buen punto de partida. ¡Déjame saber cómo te va o si tienes alguna duda adicional!