Skip to content

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 y echo %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!

Volver arriba