Si quieres escuchar tu música fuera de casa sin pelearte con el router, UPnP o…
Diagnóstico de Rendimiento en Servidores FTP mediante Scripts Automatizados
Diagnóstico de Rendimiento en Servidores FTP mediante Scripts Automatizados
En uno de nuestros entornos de producción nos enfrentamos a un problema clásico: las transferencias FTP eran inusualmente lentas y no estaba claro si la causa era el servidor, la red, o el propio cliente. Para resolverlo, diseñamos una serie de scripts automatizados en PowerShell y Batch que nos permitieron simular cargas de trabajo reales y medir tasas de transferencia de forma controlada.
A continuación compartimos el enfoque, el código y las recomendaciones que pueden ayudarte a replicarlo en tus entornos.
🎯 Objetivo del Proyecto
Determinar si las lentitudes detectadas en transferencias FTP eran provocadas por:
- Problemas de red (latencia, congestión, pérdida de paquetes).
- Saturación del servidor FTP.
- Errores de configuración en los clientes.
🧰 Herramientas Utilizadas
- Cliente FTP de Windows (
ftp.exe
). - Scripts
.txt
con comandos FTP (put
,get
). - Scripts de ejecución automática en
.bat
o.ps1
. - Archivos de prueba con distintos tamaños.
⚙️ Preparación del Entorno
Creamos archivos de comandos para pruebas de subida y descarga:
ftp_script_upload.txt
open ftp://<IP_DEL_SERVIDOR>
user <USUARIO> <CONTRASEÑA>
put C:\Test\test.txt archivoPruebaSubido.txt
bye
ftp_script_download.txt
open ftp://<IP_DEL_SERVIDOR>
user <USUARIO> <CONTRASEÑA>
get archivoPruebaSubido.txt C:\Test\test.txt.download
bye
Ambos scripts utilizan el cliente FTP en modo automatizado con la opción -s
.
🚀 Automatización de Pruebas
PowerShell (test.ps1
)
$startTime = Get-Date
ftp -s:ftp_script_upload.txt
$uploadTime = (Get-Date) - $startTime
Write-Host "Tiempo de subida: $($uploadTime.TotalSeconds) segundos"
$startTime = Get-Date
ftp -s:ftp_script_download.txt
$downloadTime = (Get-Date) - $startTime
Write-Host "Tiempo de descarga: $($downloadTime.TotalSeconds) segundos"
También puedes hacerlo con un
.bat
clásico usando@echo off
yecho %time%
.
📊 Interpretación de Resultados
Tras varias ejecuciones programadas con archivos de distintos tamaños (5MB, 50MB, 200MB), obtuvimos los siguientes datos:
Tamaño | Subida (s) | Descarga (s) | Análisis |
---|---|---|---|
5 MB | 1.2 | 1.1 | OK |
50 MB | 12.5 | 25.3 | ⚠️ Descarga lenta |
200 MB | 48.0 | 115.7 | ❗ Bottleneck en descarga |
Estos resultados revelaron que la subida era consistente, mientras que la descarga sufría ralentizaciones crecientes, lo que sugería:
- Posible saturación del canal de retorno.
- Limitación en el número de conexiones simultáneas activas del servidor FTP.
- Problemas en el firewall o QoS.
🧪 Recomendaciones
- Aísla el entorno: realiza pruebas desde distintos equipos y redes.
- Monitorea simultáneamente: usa Wireshark, iperf o SNMP para corroborar cuellos de botella.
- Evalúa alternativas: prueba con SFTP (más seguro) o soluciones HTTP/HTTPS si el protocolo FTP está causando problemas.
🧵 Conclusiones
Automatizar estas pruebas nos permitió:
- Medir tiempos de subida/descarga sin intervención manual.
- Reproducir el escenario bajo distintas condiciones.
- Presentar evidencia cuantificable para escalar el incidente.
Este enfoque se puede aplicar a entornos industriales, centros de datos o integraciones legacy, y es especialmente útil en auditorías de red, mantenimiento o migraciones.
¿Has tenido que diagnosticar problemas similares con FTP o necesitas adaptar este sistema a protocolos más modernos como SFTP o API REST? ¡Déjame tu experiencia en comentarios!