Я пытаюсь объяснить это как можно проще, но задокументировано. Это не только для этого сервера или моего текущего интернет-провайдера . В течение многих лет я сталкивался с одной и той же проблемой, когда работал с разными Интернет-провайдерами и имел свои серверы у разных провайдеров (GoDaddy в США, iWeb и GloboTech в Канаде). Единственное, что было распространено - это ОС Windows Server (2003 и 2008 r2). Но давайте теперь посмотрим на мой текущий сервер и только моего текущего интернет-провайдера.
Проблема :
Я получаю очень медленные скорости передачи между моей локальной рабочей станцией и моим удаленным выделенным сервером. Мой сервер подключен к порту 100 Мбит / с, а моя локальная рабочая станция - к симметричному соединению 50 Мбит / с по оптоволоконному кабелю.
Симптомы :
Как сервер, так и рабочая станция получают отличные результаты (очень близкие к скорости соединения) при выполнении тестов на speedtest.net на разных серверах и в разных местах в США и Мексике. Если я загружаю большие файлы, скажем, из Dropbox, либо на свой сервер, либо на свою рабочую станцию, я получаю скорости передачи 10 Мбит / с и 5 Мбит / с соответственно для одного подключения, что соответствует каждой скорости соединения 100 Мбит / с и 50 Мбит / с repectively.
Тем не менее, если я перенесу файл со своего сервера (через HTTP или FTP) на свою рабочую станцию, я даже близко не достигну скорости 50 Мбит / с, которую я должен получить (скорость передачи 5 Мбит / с), но вместо этого получаю что-то, эквивалентное 3 Мбит / с (Скорость передачи 300 кбит / с).
Я пытаюсь понять, почему у меня такая низкая скорость передачи. Я не уверен, как отладить это. Всякий раз, когда я поднимаю заявку на проблему с хостинг-провайдерами, они спрашивают меня о выводах tracert и, наконец, просто обвиняют в этом какой-то сервер в середине. Но это не кажется правильным, если принять во внимание то, что я сказал вначале: я видел эту точную скорость / проблему, когда у меня были серверы с GoDaddy, iWeb и GloboTech, и когда я сам был с разными провайдерами на очень различные виды интернет-услуг . Это действительно похоже на фиксированную настройку где-то в области сервера.
Тесты, которые я сделал :
SpeedTest
Это тесты скорости от speedtest.net, которые были выполнены на моем выделенном сервере на разных удаленных серверах, включая сервер в центре обработки данных моего провайдера в Мехико:
Канада : 94,64 Мбит / с для загрузки и 94,87 для загрузки http://www.speedtest.net/my-result/3470801975
Сан-Хосе, Калифорния : 93,58 Мбит / с для загрузки и 95,48 Мбит / с для загрузки http://www.speedtest.net/my-result/3470805341
Мехико (сервер в центре данных моего провайдера) : 92,99 Мбит / с для загрузки и 95,39 Мбит / с для загрузки http://www.speedtest.net/my-result/3470810269
Если я запускаю эти тесты на тех же серверах с моей локальной рабочей станции, я получаю скорость, близкую к моему соединению 50 Мбит / с.
TRACERT
Это недавний вывод tracert, выполненный с моей рабочей станции на мой выделенный сервер:
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
Это тест iperf, выполненный с использованием моего выделенного сервера в качестве сервера и моей рабочей станции в качестве клиента:
------------------------------------------------------------
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
Pathping
Это вывод команды pathping, выполняемой с моей рабочей станции на мой выделенный сервер:
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.
Вещи, которые вы можете попробовать сами
Если вы хотите попробовать, вот несколько вещей, которые я настроил на сервере для тестирования:
Большой файл на HTTP-сервере
Я разместил на своем сервере файл размером 5 ГБ, который можно загрузить через HTTP. Вы можете найти его здесь: http://www.marveldns.com/transfer_test/
Speedtest MINI приложение
Я установил тест «speedtest mini» на своем сервере. Вы можете посетить его и посмотреть, какую скорость, по его словам, вы получаете как для загрузки, так и для загрузки на моем сервере и на себя. Вы можете найти его здесь: http://www.marveldns.com/speedtest/
Наконец :
Как я уже говорил, я пытаюсь помочь понять все это. Я не эксперт по TCP / IP или топовым сетям. Я, честно говоря, даже не знаю, как использовать результаты tracert, iperf или pingpath, чтобы решить проблему, но я включаю их, потому что меня всегда просят об этом, когда я говорю об этой проблеме.
Если в моем вопросе не хватает чего-то лучшего, пожалуйста, не понижайте его и дайте мне знать, что с ним не так или что я могу добавить к нему, чтобы получить некоторую помощь. Спасибо.
источник
Ответы:
Узкое место, которое я вижу при доступе к этому URL, явно связано с размером окна.
Когда я пытаюсь загрузить с вашего сервера, я получаю 555 КБ / с. У меня время туда-обратно 108мс. Делая математику, я получаю следующий размер окна: 555 КБ / с * 108 мс = 59,94 КБ.
Пока я делаю это с хоста в центре обработки данных, я получаю очень стабильную пропускную способность и туда и обратно. Кроме того, если я начну две загрузки параллельно, то получу 555 КБ / с. Это именно те симптомы, которые вы увидите, когда узким местом станет размер окна.
Без масштабирования окна оно не может быть больше 64 КБ. Но я вижу, что масштабирование окон согласуется, поэтому должна быть возможна более высокая пропускная способность. Это оставляет две гипотезы для расследования:
Первый легко проверить, если вы можете выполнить захват пакета на сервере. Просто посмотрите на параметр масштабирования на входящих пакетах SYN, чтобы узнать, получен ли на сервер коэффициент масштабирования выше единицы. Я могу рекомендовать использовать Wireshark для анализа трафика.
Проверка второй гипотезы требует определенных знаний об используемой операционной системе. Вы случайно выбрали операционную систему, которая мне неизвестна, поэтому я не могу помочь. Так что я могу помочь только с опытом в области сетей.
источник