Estoy tratando de explicar esto de la manera más simple pero documentada posible. Esto no es exclusivo de este servidor o mi ISP actual . He visto el mismo problema exacto a lo largo de los años al estar con diferentes ISP y tener mis servidores con diferentes proveedores (GoDaddy en EE. UU., IWeb y GloboTech en Canadá). Lo único que ha sido común es el sistema operativo Windows Server (2003 y 2008 r2). Pero veamos por ahora mi servidor actual y mi ISP actual solamente.
El problema :
Obtengo tasas de transferencia muy lentas entre mi estación de trabajo local y mi servidor dedicado remoto. Mi servidor está en un puerto de 100 Mbps y mi estación de trabajo local está en una conexión simétrica de 50 Mbps a través de fibra óptica.
Los síntomas :
Tanto el servidor como la estación de trabajo obtienen excelentes resultados (muy cercanos a sus velocidades de conexión) al realizar pruebas en speedtest.net con diferentes servidores y ubicaciones en los EE. UU. Y México. Si descargo archivos grandes desde, digamos, Dropbox, a mi servidor o mi estación de trabajo, obtengo velocidades de transferencia de 10 MBps y 5 MBps respectivamente en una sola conexión, lo cual es correcto de acuerdo con cada velocidad de conexión de 100 Mbps y 50 Mbps respectivamente.
Sin embargo, si transfiero un archivo desde mi servidor (a través de HTTP o FTP) a mi estación de trabajo, ni siquiera me acerco a la velocidad de 50 Mbps que debería obtener (velocidad de transferencia de 5 MBps), pero obtengo algo equivalente a 3 Mbps (Tasa de transferencia de 300 KBps).
Estoy tratando de entender por qué obtengo una tasa de transferencia tan lenta. No estoy seguro de cómo depurarlo. Cada vez que planteo un ticket sobre el problema con los proveedores de hosting, me piden resultados de tracert y finalmente lo culpan de algún servidor en el medio. Pero eso no parece ser correcto, si tomamos en consideración lo que dije al principio: he visto esta velocidad / problema exacto al tener mis servidores con GoDaddy, iWeb y GloboTech, y mientras soy yo mismo con diferentes ISP en muy diferentes tipos de servicio de internet . Realmente parece una configuración fija en algún lugar del área del servidor.
Pruebas que he hecho :
PRUEBA DE VELOCIDAD
Estas son pruebas de velocidad de speedtest.net que se ejecutaron en mi servidor dedicado contra diferentes servidores remotos, incluido un servidor en el centro de datos de mi ISP en la Ciudad de México:
Canadá : 94,64 Mbps para descargar y 94,87 para cargar http://www.speedtest.net/my-result/3470801975
San José, CA : 93.58 Mbps para descargar y 95.48 Mbps para cargar http://www.speedtest.net/my-result/3470805341
Ciudad de México (servidor en el centro de datos de mi propio ISP) : 92.99 Mbps para descargar y 95.39 Mbps para cargar http://www.speedtest.net/my-result/3470810269
Si ejecuto esas pruebas en los mismos servidores desde mi estación de trabajo local, también obtengo velocidades cercanas a mi conexión de 50 Mbps.
TRACERT
Esta es una salida de tracert reciente ejecutada desde mi estación de trabajo a mi servidor dedicado:
1 <1 ms <1 ms <1 ms 192.168.7.254
2 2 ms 1 ms 1 ms 10.69.32.1
3 * 3 ms 2 ms 10.5.50.174
4 3 ms 2 ms 2 ms 10.5.50.173
5 * 5 ms 3 ms fixed-203-69-2.iusacell.net [189.203.69.2]
6 32 ms 32 ms 32 ms 8-1-33.ear1.Dallas1.Level3.net [4.71.220.89]
7 33 ms 33 ms 33 ms ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]
8 33 ms 33 ms 33 ms ae13.dal33.ip4.tinet.net [77.67.71.221]
9 76 ms 76 ms 157 ms xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41]
10 72 ms 72 ms 72 ms te2-2.cr2.mtl3.gtcomm.net [67.215.0.160]
11 72 ms 72 ms 72 ms ae2.csr2.mtl3.gtcomm.net [67.215.0.134]
12 72 ms 72 ms 73 ms te3-4.dist1.mtl8.gtcomm.net [67.215.0.83]
13 72 ms 72 ms 72 ms ns1.marveldns.com [173.209.57.82]
IPERF
Esta es una prueba iperf ejecutada usando mi servidor dedicado como servidor y mi estación de trabajo como cliente:
------------------------------------------------------------
Client connecting to ns1.marveldns.com, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.7.2 port 60339 connected with 173.209.57.82 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.3 sec 5.62 MBytes 4.59 Mbits/sec
RUTA
Este es el resultado de una recomendación de ruta ejecutada desde mi estación de trabajo a mi servidor dedicado:
Tracing route to ns1.marveldns.com [173.209.57.82]
over a maximum of 30 hops:
0 ws1 [192.168.7.2]
1 192.168.7.254
2 10.69.32.1
3 * 10.5.50.174
4 10.5.50.173
5 fixed-203-69-2.iusacell.net [189.203.69.2]
6 8-1-33.ear1.Dallas1.Level3.net [4.71.220.89]
7 ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]
8 ae13.dal33.ip4.tinet.net [77.67.71.221]
9 xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41]
10 te2-2.cr2.mtl3.gtcomm.net [67.215.0.160]
11 ae2.csr2.mtl3.gtcomm.net [67.215.0.134]
12 te3-4.dist1.mtl8.gtcomm.net [67.215.0.83]
13 ns1.marveldns.com [173.209.57.82]
Computing statistics for 325 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 ws1 [192.168.7.2]
0/ 100 = 0% |
1 0ms 0/ 100 = 0% 0/ 100 = 0% 192.168.7.254
0/ 100 = 0% |
2 1ms 0/ 100 = 0% 0/ 100 = 0% 10.69.32.1
0/ 100 = 0% |
3 3ms 0/ 100 = 0% 0/ 100 = 0% 10.5.50.174
0/ 100 = 0% |
4 2ms 0/ 100 = 0% 0/ 100 = 0% 10.5.50.173
0/ 100 = 0% |
5 4ms 20/ 100 = 20% 20/ 100 = 20% fixed-203-69-2.iusacell.net [189.203.69.2]
0/ 100 = 0% |
6 34ms 0/ 100 = 0% 0/ 100 = 0% 8-1-33.ear1.Dallas1.Level3.net [4.71.220.89]
0/ 100 = 0% |
7 34ms 0/ 100 = 0% 0/ 100 = 0% ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]
0/ 100 = 0% |
8 33ms 0/ 100 = 0% 0/ 100 = 0% ae13.dal33.ip4.tinet.net [77.67.71.221]
0/ 100 = 0% |
9 79ms 0/ 100 = 0% 0/ 100 = 0% xe-1-0-0.mtl10.ip4.tinet.net [89.149.185.41]
2/ 100 = 2% |
10 73ms 14/ 100 = 14% 12/ 100 = 12% te2-2.cr2.mtl3.gtcomm.net [67.215.0.160]
0/ 100 = 0% |
11 72ms 2/ 100 = 2% 0/ 100 = 0% ae2.csr2.mtl3.gtcomm.net [67.215.0.134]
2/ 100 = 2% |
12 72ms 18/ 100 = 18% 14/ 100 = 14% te3-4.dist1.mtl8.gtcomm.net [67.215.0.83]
0/ 100 = 0% |
13 72ms 4/ 100 = 4% 0/ 100 = 0% ns1.marveldns.com [173.209.57.82]
Trace complete.
Cosas que puedes probar por ti mismo
Si quieres probarlo, estas son algunas de las cosas que configuré en el servidor para realizar pruebas:
Archivo grande en el servidor HTTP
He colocado un archivo de 5 GB en mi servidor que se puede descargar a través de HTTP. Puede encontrarlo aquí: http://www.marveldns.com/transfer_test/
Aplicación Speedtest MINI
He configurado una prueba "mini speedtest" en mi servidor. Puede visitarlo y ver qué velocidad dice que está obteniendo tanto para descargar como para cargar dentro de mi servidor y usted mismo. Puede encontrarlo aquí: http://www.marveldns.com/speedtest/
Por último :
Como dije antes, estoy tratando de obtener ayuda para entender todo. No soy experto en TCP / IP o en redes de gama alta. Sinceramente, ni siquiera tengo claro cómo usar los resultados de tracert, iperf o pingpath para poder resolver el problema, pero los incluyo porque siempre me lo piden cuando hablo de este problema.
Si mi pregunta carece de algo para mejorar, por favor, no lo rechace y dígame qué tiene de malo o qué más puedo agregar para obtener ayuda. Gracias.
fuente
Respuestas:
El cuello de botella que veo al acceder a esa URL se debe claramente al tamaño de la ventana.
Cuando intento descargar de su servidor obtengo 555 KB / s. Tengo un tiempo de ida y vuelta de 108 ms. Haciendo los cálculos obtengo el siguiente tamaño de ventana: 555KB / s * 108ms = 59.94KB.
Mientras lo haga desde un host en un centro de datos, obtengo un rendimiento y un viaje de ida y vuelta muy consistentes. Además, si comienzo dos descargas en paralelo, cada una obtiene 555 KB / s. Esos son exactamente los síntomas que verá cuando el cuello de botella sea el tamaño de la ventana.
Sin escala de ventana, la ventana no puede ser mayor de 64 KB. Pero veo que se debe negociar el escalado de la ventana, por lo que debería ser posible un mayor rendimiento. Esto deja dos hipótesis para investigar:
El primero es fácil de verificar si puede realizar una captura de paquetes en el servidor. Basta con mirar la opción de escala en los paquetes SYN entrantes para averiguar si el servidor recibe un factor de escala superior a uno. Puedo recomendar usar Wireshark para analizar el tráfico.
La verificación de la segunda hipótesis requiere cierto conocimiento del sistema operativo que está utilizando. Por casualidad has elegido un sistema operativo, que yo desconozco, por lo que no puedo ayudarte. Así que solo puedo ayudar con experiencia en redes.
fuente