Estou tentando explicar isso da maneira mais simples, mas documentada possível. Isso não é exclusivo deste servidor ou do meu ISP atual . Eu vi o mesmo problema exato ao longo dos anos, estando com diferentes ISPs e tendo meus servidores com provedores diferentes (GoDaddy nos EUA, iWeb e GloboTech no Canadá). A única coisa que tem sido comum é o sistema operacional Windows Server (2003 e 2008 r2). Mas vamos procurar agora apenas no meu servidor atual e no meu ISP atual.
O problema :
Recebo taxas de transferência muito lentas entre minha estação de trabalho local e meu servidor dedicado remoto. Meu servidor está em uma porta de 100 Mbps e minha estação de trabalho local está em uma conexão simétrica de 50 Mbps em fibra óptica.
Sintomas :
O servidor e a estação de trabalho obtêm excelentes resultados (muito próximos das velocidades de conexão) ao realizar testes no speedtest.net em diferentes servidores e locais nos EUA e no México. Se eu baixar arquivos grandes do, digamos, Dropbox, para o meu servidor ou minha estação de trabalho, recebo taxas de transferência de 10 MBps e 5 MBps respectivamente em uma única conexão, o que é correto de acordo com a velocidade de cada conexão de 100 Mbps e 50 Mbps respeitosamente.
No entanto, se eu transferir um arquivo do meu servidor (via HTTP ou FTP) para minha estação de trabalho, não chego nem perto da velocidade de 50 Mbps que devo obter (taxa de transferência de 5 MBps), mas recebo algo equivalente a 3 Mbps (Taxa de transferência de 300 KBps).
Estou tentando entender por que recebo uma taxa de transferência tão lenta. Não tenho certeza de como depurá-lo. Sempre que levanto um tíquete sobre o problema com os provedores de hospedagem, eles me solicitam saídas tracert e, por fim, apenas culpam algum servidor no meio. Mas isso não parece correto, se levarmos em consideração o que eu disse a princípio: eu vi essa velocidade / problema exato ao ter meus servidores com GoDaddy, iWeb e GloboTech, e ao mesmo tempo estar com diferentes ISPs em diferentes tipos de serviço de Internet . Realmente parece uma configuração fixa em algum lugar na área do servidor.
Testes que fiz :
TESTE RÁPIDO
Estes são testes de velocidade do speedtest.net que foram executados no meu servidor dedicado em diferentes servidores remotos, incluindo um servidor no datacenter do meu ISP na Cidade do México:
Canadá : 94,64 Mbps para download e 94,87 para upload http://www.speedtest.net/my-result/3470801975
San Jose, CA : 93,58 Mbps para download e 95,48 Mbps para upload http://www.speedtest.net/my-result/3470805341
Cidade do México (servidor no datacanter do meu próprio ISP) : 92,99 Mbps para download e 95,39 Mbps para upload http://www.speedtest.net/my-result/3470810269
Se eu executar esses testes nos mesmos servidores da minha estação de trabalho local, também obtenho velocidades próximas à minha conexão de 50 Mbps.
TRACERT
Esta é uma saída tracert recente executada da minha estação de trabalho no meu 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
Este é um teste iperf executado usando meu servidor dedicado como servidor e minha estação de trabalho 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
CAMINHO
Esta é a saída de uma recomendação de caminho executada da minha estação de trabalho para o meu 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.
Coisas que você pode tentar por si mesmo
Se você quiser tentar, estas são algumas das coisas que configurei no servidor para fins de teste:
Arquivo grande no servidor HTTP
Coloquei um arquivo de 5 GB no meu servidor que pode ser baixado via HTTP. Você pode encontrá-lo aqui: http://www.marveldns.com/transfer_test/
Aplicativo Speedtest MINI
Eu configurei um teste "speedtest mini" no meu servidor. Você pode visitá-lo e ver a velocidade que diz que está obtendo para download e upload no meu servidor e em você. Você pode encontrá-lo aqui: http://www.marveldns.com/speedtest/
Finalmente :
Como eu disse antes, estou tentando obter ajuda para entender a coisa toda. Não sou especialista em TCP / IP ou em redes de ponta. Sinceramente, nem tenho claro como usar os resultados do tracert, iperf ou pingpath para resolver o problema, mas os incluo porque sempre sou solicitado quando falo sobre esse problema.
Se a minha pergunta não tem algo a ser melhor, não a diminua e me avise o que há de errado com ela ou o que mais eu posso adicionar para obter ajuda. Obrigado.
fonte
Respostas:
O gargalo que vejo ao acessar esse URL deve-se claramente ao tamanho da janela.
Quando tento fazer o download do seu servidor, recebo 555KB / s. Eu tenho um tempo de ida e volta de 108ms. Fazendo as contas, obtenho o seguinte tamanho de janela: 555KB / s * 108ms = 59.94KB.
Desde que eu faça isso a partir de um host em um datacenter, recebo um rendimento e uma ida e volta muito consistentes. Além disso, se eu iniciar dois downloads em paralelo, cada um receberá 555KB / s. Esses são exatamente os sintomas que você verá quando o gargalo for o tamanho da janela.
Sem a escala da janela, a janela não pode ser maior que 64 KB. Mas vejo o dimensionamento da janela ser negociado, portanto, maior rendimento deve ser possível. Isso deixa duas hipóteses para investigar:
O primeiro é fácil de verificar se você pode executar uma captura de pacotes no servidor. Basta olhar para a opção de escala nos pacotes SYN recebidos para descobrir se um fator de escala maior que um é recebido pelo servidor. Eu posso recomendar o uso do Wireshark para analisar o tráfego.
A verificação da segunda hipótese requer algum conhecimento do sistema operacional que você está usando. Por acaso, você escolheu um sistema operacional desconhecido para mim, para que eu não possa ajudar. Então, só posso ajudar com a experiência em redes.
fonte