
Estoy descargando desde un servidor y las descargas alcanzan un máximo de 1,3 MiB/segundo con FileZilla, pero puedo iniciar descargas simultáneas y también se descargarán a 1,3 MiB/segundo. Entonces, ¿por qué no puedo descargar un solo archivo a una velocidad superior a 1,3 MB/s y acercarme a saturar el ancho de banda disponible (~6+MB/s)?
Sé que puedo usar algún otro cliente SFTP que admita descargas segmentadas como lftp, ¿conoces otros buenos que sean de código abierto?
Pero todavía quiero saber qué es lo que limita la descarga de un archivo a solo 1,3 MB/s, ¿es alguna limitación técnica con TCP y buffers, etc., o algún problema de configuración? Lo verifiqué y estoy seguro de que no hay ninguna limitación de tráfico habilitada para FileZilla.
También probé rsync y fue peor que FileZilla/SFTP. También probé WinSCP y fue el más lento independientemente del método SCP/SFTP. Entonces, con una transferencia constante de 1,3 MB/s, FileZilla es bastante bueno en comparación con otros métodos de transferencia.
Si alguien tiene una buena explicación de por qué las transferencias alcanzan un máximo de 1,3 MB/s, realmente me gustaría saberlo y si es posible aumentarlo sin recurrir al uso de descargas segmentadas. El servidor ejecuta OpenSSH 6.7p1 (Debian). El cliente es FileZilla en Windows.
ACTUALIZACIÓN: En respuesta a la información de Martin (consulte su respuesta a continuación), agrego que el ping es de 180 ms a 190 ms bastante constante entre el servidor y el cliente que se está descargando. Además, el uso de la CPU es muy bajo, del 2 % al 8 % como máximo. Probé con la última versión de winscp 5.73 y con el modo sftp obtuve 555 kb/s y aproximadamente 805 kb/s como máximo con el modo scp. Mientras que si inicio una transferencia concurrente secundaria en Filezilla también obtengo 1,3MiB/s constantes.
Entonces, ¿podría el retraso de 180 ms en el servidor ser un factor matemáticamente limitante, como Martin y Michael mencionaron un poco? ¿O podría haber todavía algo más a quien culpar de modo que pueda mejorar el rendimiento? De lo contrario, agradecería que alguien conozca algún otro descargador de código abierto (como lftp pero que funcione bien en Windows) que sea seguro y admita descargas segmentadas.
Respuesta1
Hay tres factores comunes que afectan la velocidad de transferencia:
Banda ancha– Un factor obvio que aparentemente no es problema tuyo.
Retraso/latencia de red– El SFTP es un protocolo orientado a paquetes. Al descargar, el cliente SFTP envía una solicitud de "lectura" al servidor SFTP, espera una respuesta y agrega los datos devueltos a un archivo local; y se repite, hasta el final del archivo.
Incluso si su conexión es rápida, si el servidor está lejos (o es lento), los datos tardarán un tiempo en llegar. Si el cliente pasa este tiempo esperando inútilmente, su velocidad de transferencia será baja.
La mayoría de los clientes SFTP (incluidos FileZilla y WinSCP) superan el problema solicitando una gran parte del archivo en cada solicitud de "lectura" y enviando (poniendo en cola) múltiples solicitudes de "lectura" sin esperar una respuesta a la anterior. Por ejemplo, WinSCP puede solicitar hasta 32 fragmentos de 32 KB cada uno a la vez, por un total de 1 MB (estos son los valores predeterminados). Pero si hay una gran discrepancia entre el ancho de banda y el retraso de la red, incluso ese 1 MB puede ser demasiado pequeño para saturar el ancho de banda.
Un protocolo TCP subyacente puede sufrir un problema similar. Por lo tanto, no se trata sólo de cómo es eficiente el cliente SFTP real, sino también de cómo es eficiente una capa TCP subyacente.
Ver tambiénProducto de retardo de ancho de bandaen Wikipedia.
Tampoco creo que este sea tu problema, al menos si has utilizado la última versión de WinSCP para las pruebas. Ha habidoalgunas mejorasen las versiones recientes, que permiten a WinSCP utilizar conexiones de alta latencia con tanta eficiencia como FileZilla.
UPC– El SFTP, al estar cifrado, consume mucha CPU. Si tiene una CPU relativamente lenta, en comparación con un ancho de banda grande, la transferencia puede verse limitada porque su CPU no puede cifrar (o descifrar en el caso de la descarga) los datos tan rápido como su red es capaz de transferirlos.
Los clientes SFTP comunes no pueden distribuir el cifrado/descifrado entre los núcleos de la CPU, por lo que en realidad es la capacidad de un único núcleo de la CPU la que limita la velocidad de transferencia.
Utilice el administrador de tareas de Windows para ver si uno de los núcleos se utiliza al máximo durante la transferencia.
Parte de esta respuesta proviene del artículo de WinSCP.La velocidad de transferencia de archivos es muy baja. WinSCP no utiliza todo el ancho de banda disponible. ¿Cómo mejoro la velocidad de transferencia?
Respuesta2
Yo también tuve este problema.
Utilicé el administrador de tareas para establecer la prioridad en alta.
Ahora consigo hasta 5 MiB/s
Respuesta3
Recientemente probé exactamente en la misma red con Windows 10 y quizás con una versión más nueva de Filezilla y obtuve transferencias de hasta 7 MB/segundo desde el mismo servidor. Luego probé con RSYNC dentro de una máquina virtual y también obtuve 7 MB/segundo. Ahora estoy "bastante seguro" de que el problema radica en el firewall COMODO que instalé en este sistema Windows 7.
Aparentemente, incluso si lo "desactiva", lo único que hace no es imponer reglas, sino que ralentiza la pila de red. También instalé/replicé este sistema Windows 7 dentro de una máquina virtual e intentaré "eliminar" completamente Comodo cis premium (antivirus+firewall) y confirmar aquí. También debo mencionar que en esta máquina también noté pings de latencia intermitentes y erráticos en algunos sistemas de mi red, donde todos los demás sistemas entre ellos eran estables <1 ms. Entonces, la información del producto de retardo de ancho de banda es muy buena, pero en mi caso pude obtener filezilla y rsync a 7 MB/s (lo que básicamente satura mi ancho de banda disponible) en otra instalación, en la misma red local y remota.