Почему я получаю скорость 950 Мбит / с, а на Gigabit Ethernet - только 360 Мбит / с?

9448
Samir

У меня есть два настольных компьютера, которые общаются друг с другом напрямую. У них обоих есть сетевые адаптеры с поддержкой Gigabit Ethernet. Это 1 Гбит / с или 1000 Мбит / с. Я подключил их к новому 10-метровому прямому кабелю Cat6 UTP, и я приблизился к этому теоретическому максимуму. Диспетчер задач Windows (вкладка «Сеть») показывает скорость 844–946 Мбит / с в одном направлении. Но в другом направлении он показывает только около 326 - 365 Мбит / с.

Local: 192.168.100.152 Remote: 192.168.100.151 

Локальный компьютер работает под управлением Windows 8.1 Pro, и у меня он удаленно подключен к другому компьютеру, на котором работает Windows Vista Ultimate.

Iperf результаты

Я использовал Iperf для тестирования. Я проводил тест в течение 60 секунд каждый раз. Я выполнил тест 10 раз для каждого направления общения. Затем я собрал эту таблицу с результатами теста, чтобы получить среднее значение.

192.168.100.152 -> 192.168.100.151 106 MB/s 192.168.100.152 -> 192.168.100.151 107 MB/s 192.168.100.152 -> 192.168.100.151 108 MB/s 192.168.100.152 -> 192.168.100.151 107 MB/s 192.168.100.152 -> 192.168.100.151 107 MB/s 192.168.100.152 -> 192.168.100.151 104 MB/s 192.168.100.152 -> 192.168.100.151 101 MB/s 192.168.100.152 -> 192.168.100.151 108 MB/s 192.168.100.152 -> 192.168.100.151 108 MB/s 192.168.100.152 -> 192.168.100.151 108 MB/s ---------------------------------------------------- Min: 101 MB/s Max: 108 MB/s Avg: 106.4 MB/s (851.2 Mbps)  192.168.100.152 <- 192.168.100.151 41.1 MB/s 192.168.100.152 <- 192.168.100.151 41.1 MB/s 192.168.100.152 <- 192.168.100.151 41.1 MB/s 192.168.100.152 <- 192.168.100.151 41.0 MB/s 192.168.100.152 <- 192.168.100.151 41.0 MB/s 192.168.100.152 <- 192.168.100.151 41.1 MB/s 192.168.100.152 <- 192.168.100.151 41.0 MB/s 192.168.100.152 <- 192.168.100.151 41.1 MB/s 192.168.100.152 <- 192.168.100.151 41.1 MB/s 192.168.100.152 <- 192.168.100.151 41.1 MB/s ----------------------------------------------------- Min: 41.0 MB/s Max: 41.1 MB/s Avg: 41.07 MB/s (328.56 Mbps) 

Мой вопрос: почему так медленно в другом направлении?

Диспетчер задач Windows

Это схема сети, которая видна при выполнении тестов в Iperf.

a b

Обратите внимание на диаграмму на следующих двух скриншотах!

c d

Вы заметили, как оно изменилось с "1 Гбит / с" до "500 Мбит / с" в правом верхнем углу, когда я переключился с отправки данных на получение данных. Почему он это сделал? Это как-то воспринимает другой сетевой порт как половину 1 Гбит / с при движении в одну сторону, но все же переполнен при движении в другую сторону?

Тест передачи файлов

Я провел еще несколько тестов с файлом данных, чтобы получить более реалистичные показания с диска на диск. Я создал файл 1 ГБ для этой цели. Я использовал только стандартные средства обмена файлами Windows. С локального компьютера я подключился к общему ресурсу C $ на удаленном компьютере и перетянул файл туда-сюда (пропуская веревку), меняя имя файла каждый раз. Я рассчитал все в меру своих способностей, и это то, что я получил.

192.168.100.152 -> 192.168.0.151 1073741824 Byte 25 s 40,96 MB/s 192.168.100.152 -> 192.168.0.151 1073741824 Byte 20 s 51.2 MB/s 192.168.100.152 -> 192.168.0.151 1073741824 Byte 16 s 64 MB/s 192.168.100.152 -> 192.168.0.151 1073741824 Byte 16 s 64 MB/s 192.168.100.152 <- 192.168.0.151 1073741824 Byte 11 s 93.091 MB/s 192.168.100.152 <- 192.168.0.151 1073741824 Byte 34 s 30.118 MB/s 192.168.100.152 <- 192.168.0.151 1073741824 Byte 11 s 93.091 MB/s 192.168.100.152 <- 192.168.0.151 1073741824 Byte 11 s 93.091 MB/s 

Пропускная способность, указанная в диаграмме копирования файлов Windows, говорит о другом. Здесь я загружаю два файла, один за другим, в два разных места на одном диске. В первом экземпляре указано, что 107 МБ / с поддерживается на уровне до 41%, а во втором - 98,9 МБ / с - до 87%.

e f

Так что это соответствует результатам, которые я получил с помощью инструмента Iperf. Теперь вот как это выглядит, когда я загружаю на удаленный компьютер.

g h i

Он поддерживает 103 МБ / с до 73%, а затем падает до 27,3 МБ / с при 82%, а затем поднимается до 49,1 МБ / с при 93%.

Вот еще две забавно выглядящие диаграммы "американских горок".

j k

Обновление 1 - скорость соединения

Я попытался отключить адаптер Wi-Fi на удаленном компьютере. (Адаптер Wi-Fi уже отключен на локальном компьютере.) Я думаю, что именно это Timtech подразумевал под этим комментарием. У меня была такая же мысль - что одновременное включение как проводных, так и беспроводных адаптеров ограничивало пропускную способность проводного адаптера до уровня адаптера Wifi (для совместимости с самым медленным адаптером). Поскольку адаптер Wi-Fi (в данном случае DWA-160 Wireless N) обычно определяется как соединение «52 Мбит / с» - «104 Мбит / с» на компьютере Vista.

На следующем снимке экрана удаленный компьютер настроен как сервер, а локальный компьютер настроен как клиент (192.168.100.152 <- 192.168.100.151).

l

Но отключение адаптера Wi-Fi на удаленном компьютере не помогло моей низкой пропускной способности в проводном соединении.

Не только это! В диспетчере задач Windows на удаленном компьютере скорость соединения для проводного адаптера (LAN 1) отображается как «1 Гбит / с». Если вы посмотрите на скриншоты выше, вы увидите, что на локальном компьютере это определяется как ссылка «500 Гбит / с». Таким образом, для того же проводного соединения Windows Vista говорит, что это соединение со скоростью 1 Гбит / с, в то время как Windows 8.1 Pro говорит, что это соединение со скоростью 500 Гбит / с ... какая из них правильная?

Вот как это выглядит на удаленном компьютере, когда я настроил его как клиент, а локальный компьютер как сервер (192.168.100.152 -> 192.168.100.151).

m

Как вы можете видеть здесь, используется около 95% канала 1 Гбит / с. Это соответствует 950 Мбит / с. Это именно то, что я получил в тесте выше. Но наоборот - это совсем другая история.

Обновление 2 - Дуплекс и MDI-X

Как предположили некоторые из вас, я взглянул на настройки дуплекса. Как локальный, так и удаленный компьютер были переведены в режим автосогласования, как вы можете видеть на скриншотах ниже.

n o

Я попытался изменить значение «Полный дуплекс 1,0 Гбит / с» на обоих компьютерах. Затем я провел те же тесты, что и раньше, используя Iperf. С локальным компьютером в качестве сервера и удаленным компьютером в качестве клиента я получаю около 950 Мбит / с макс. С локальным компьютером в качестве клиента и удаленным компьютером в качестве сервера я получаю около 360 Мбит / с.

Вот посмотрите на эти скриншоты.

p q

Здесь вы видите диаграмму, когда я загружаю и скачиваю между двумя компьютерами. Более высокий график (использование 95 - 98%) является локальным для удаленного (восходящий поток 192.168.100.152 -> 192.168.100.151). Нижний график (использование ~ 33%) является удаленным к локальному (192.168.100.152 <- 192.168.100.151 ниже по потоку).

Чтобы попытаться исключить любые проблемы с Auto MDI-X, у меня был один из этих кроссоверных адаптеров, подключенных к одному концу кабеля (локальный компьютер).

r

Это, безусловно, сделало бы кабель кроссовером. Черт, у меня даже был тест с сетевым тестером! Это действительно пересечено сейчас (контакты 1/3, 2/6)!

Итак, теперь у меня есть настоящее перекрестное кабельное соединение между двумя компьютерами, и я вручную установил «Полный дуплекс 1,0 Гбит / с». И все же у меня все та же проблема. Есть еще идеи? Помимо обновления компьютера Vista (или переустановки компьютера 8.1)?

Обновление 3 - Программное или аппаратное ограничение?

Я думаю, что у меня есть две операционные системы, которые не совместимы друг с другом. Они обе системы Windows, но не все системы Windows сделаны равными. Мне придется попробовать использовать Vista на обоих или 8.1 Pro на обоих и посмотреть, какую пропускную способность я получу. Это означает покупку обновления. Будь ты проклят, Microsoft.

Кстати, оба компьютера изготовлены на заказ. Вот некоторые характеристики.

Local ----- Gigabyte GA-EP45-UD3R Intel Core 2 Quad Q9650 Intel P45 Corsair XMS2 DHX TwinX DDR2 PC6400/800MHz 4 GB Realtek 8111C chips (10/100/1000 Mbit) WD Caviar Black WD1002FAEX Windows 8.1 Pro 64-bit  Remote ------ Gigabyte GA-X38-DQ6 Intel Core 2 Duo E4500 Intel X38 Corsair XMS2 DHX TwinX DDR2 PC6400/800MHz 4 GB Dual Realtek 8111B chip (10/100/1000 Mbit) WD Caviar Black WD1002FAEX Windows Vista Ultimate 64-bit 

Тонни предположил, что на машине Vista может быть плохой чип Realtek. Так что я откопал эти спецификации. Теперь я вижу, что машина Vista использует версию B 8111, в то время как локальная машина использует версию C того же чипа. Это что-нибудь значит? Они оба четко указаны производителем для 1000 Мбит (см. Выше). Может ли быть так, что 8111B уступает так много (360 Мбит / с)?

Эти конкретные диски достигают скорости записи 107 МБ / с. Это именно то число, которое я видел в тесте на локальном компьютере. Но даже длительное последовательное или случайное чтение / запись, возможно, со скоростью 55 МБ / с, НЕ переводит на 360 Мбит / с. Это должно дать мне где-то около 440 Мбит / с, а не 360 Мбит / с, которые я получаю. Поэтому я не подозреваю, что это является узким местом, тем более что они оба используют одну и ту же модель привода. И, кроме того, операция копирования файлов - это одно, но Iperf вообще не использует диски, он использует только оперативную память для тестов.

Обновление 4 - Разгрузка контрольной суммы TCP

По предложению Тонни я попытался отключить разгрузку контрольной суммы TCP (для IPv4 и IPv6).

s t

Я также переключил «Speed ​​& Duplex» обратно на авто для обоих компьютеров. Но это не помогло. У меня все еще низкая пропускная способность в одном направлении и высокая в другом направлении.

Обновление 5 - новая версия драйвера

Я попытался обновить версию драйвера как на локальном, так и на удаленном компьютере до последней версии, загруженной с веб-сайта Gigabyte и веб-сайта Realtek.

Update path...  On local (RTL8111C): 8.1.510.2013 (2013-05-10, Microsoft) 8.20.815.2013 (2013-08-15, Realtek)  On remote (RTL8111B): 6.241.623.2010 (2010-06-23, Realtek) 6.250.908.2011 (2011-09-08, Realtek) 6.252.1109.2012 (2012-11-09, Realtek) 

u v w x

Я все еще получил ту же паршивую пропускную способность в одном направлении.

Обновление 6 - загрузка процессора

Я проверил загрузку процессора. Это не должно быть проблемой. Вот мои выводы.

On local...  Download: 4 - 10 % Upload: 4 - 10 % Idle: 0 - 4 %  On remote...  Download: 24 - 38 % Upload: 10 - 25 % Idle: 1 - 6 % 

Локальный (загрузка, загрузка, простоя) ...

y z aa

Удаленный (загрузка, загрузка, простоя) ...

ab ac ad

Пульт дистанционного управления потребляет гораздо больше ресурсов процессора, но это также и более медленный Core 2 Duo. Но он никогда не превышал 38% во время моих тестов. Что особенно интересно здесь, так это то, что он использует гораздо больше ресурсов процессора при загрузке (local -> remote), чем при загрузке (local <- remote).

Таким образом, при пропускной способности 950 Мбит / с он использует 38%, а при 360 Мбит / с он использует 25%. Также использование ядра не сбалансировано, оно использует одно ядро ​​больше, чем другое. Я не уверен, какой вывод из этого сделать. Локальный компьютер не отображает загрузку ядра, поэтому я не могу его сравнить. Но загрузка ЦП даже на локальном компьютере (10% при загрузке / выгрузке).

Обновление 7 - новый сетевой адаптер Intel Gigabit

Теперь я установил новый сетевой адаптер PCI-Express Gigabit от Intel в качестве замены встроенного Realtek RTL8111B на удаленном компьютере, который предположительно слишком медленный при загрузке. Номер продукта адаптера Intel - EXPI9301CT. Этот адаптер должен быть очень хорошим по отзывам, которые я прочитал. Я просто хочу исключить это как возможное узкое место.

ae

Я провел некоторое тестирование с Iperf для Windows, и вот результаты.

Локальный (скачать, загрузить) ...

af ag

Удаленный (скачать, загрузить) ...

ah ai

В среднем этот адаптер немного медленнее, чем адаптер Realtek. Я думаю, что он имеет меньшую нагрузку, чем Realtek, и, как следствие, более стабильную непрерывную пропускную способность. Но я все еще получаю только около 360 Мбит / с в одном направлении и 950 Мбит / с в другом, даже с этим адаптером Intel.

local: 192.168.100.152 (win 8, realtek 8111c) remote: 192.168.100.154 (vista, intel desktop ct)  192.168.100.152 -> 192.168.100.154 113 MB/s 192.168.100.152 -> 192.168.100.154 104 MB/s 192.168.100.152 -> 192.168.100.154 103 MB/s 192.168.100.152 -> 192.168.100.154 104 MB/s 192.168.100.152 -> 192.168.100.154 102 MB/s 192.168.100.152 -> 192.168.100.154 104 MB/s 192.168.100.152 -> 192.168.100.154 101 MB/s 192.168.100.152 -> 192.168.100.154 102 MB/s 192.168.100.152 -> 192.168.100.154 101 MB/s 192.168.100.152 -> 192.168.100.154 104 MB/s ---------------------------------------------- Max: 113 MB/s Min: 101 MB/s Avg: 103.8 MB/s  192.168.100.152 <- 192.168.100.154 42.2 MB/s 192.168.100.152 <- 192.168.100.154 41.2 MB/s 192.168.100.152 <- 192.168.100.154 41.1 MB/s 192.168.100.152 <- 192.168.100.154 43.0 MB/s 192.168.100.152 <- 192.168.100.154 42.3 MB/s 192.168.100.152 <- 192.168.100.154 42.3 MB/s 192.168.100.152 <- 192.168.100.154 40.2 MB/s 192.168.100.152 <- 192.168.100.154 40.9 MB/s 192.168.100.152 <- 192.168.100.154 41.3 MB/s 192.168.100.152 <- 192.168.100.154 42.0 MB/s ----------------------------------------------- Max: 43.0 MB/s Min: 40.2 MB/s Avg: 41.65 MB/s 

Я понятия не имею, почему он достиг максимума в 113 МБ / с в первом тестовом прогоне, локальном к удаленному. Эта скорость сохранялась на протяжении всего тестового прогона, график был почти плоским при 113 МБ / с. Как и раньше, я использовал 60-секундный интервал для каждого запуска. Однако при следующем запуске он снизился до 104 МБ / с.

Как вы можете судить по этим значениям, у меня все еще такая же пропускная способность с этим адаптером Intel, как и со встроенным адаптером Realtek. Поэтому я могу с уверенностью сказать, что это не имеет никакого отношения к самому адаптеру. Таким образом, мы можем перестать обвинять RTL8111B в том, что он является младшим или меньшим чипом, чем RTL8111C на другой материнской плате. Это все больше и больше напоминает проблему программного обеспечения / ОС / конфигурации или все три вещи одновременно.

Обновление 8 - отличные результаты с Ubuntu LINUX

После того, как я исчерпал все остальные варианты, я, наконец, решил провести несколько тестов с Linux, и я получил отличные результаты. Я использовал систему Ubuntu Linux 13.10 Live и Iperf для Linux (версия 2.0.5-3) как на локальной, так и на удаленной машине. Вот результаты.

======================================================= REALTEK 8111C <-> REALTEK 8111B | IPERF ON UBUNTU LINUX =======================================================  local: 192.168.100.152 remote: 192.168.100.151  192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s 192.168.100.152 -> 192.168.100.151 112 MB/s ---------------------------------------------- Max: 112 MB/s Min: 112 MB/s Avg: 112 MB/s  192.168.100.152 <- 192.168.100.151 110 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 110 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s 192.168.100.152 <- 192.168.100.151 111 MB/s ---------------------------------------------- Max: 111 MB/s Min: 110 MB/s Avg: 110.8 MB/s 

Локальный (загрузка, загрузка, простоя) ...

aj ak al am an

Как вы можете видеть, я получаю одинаковую пропускную способность в обоих направлениях при использовании Ubuntu. Это потому, что я использую одну и ту же ОС на обеих машинах, или это что-то еще? Получу ли я одинаковую пропускную способность, если на обеих машинах будут установлены одинаковые версии Windows? Я не понимаю, почему это будет иметь значение, если я использую слегка устаревшую версию Windows, а именно Vista, на одном компьютере и последнюю версию на другом? ... Я имею в виду, что Vista по-прежнему является текущей и поддерживаемой ОС и поддерживается Microsoft, Windows XP - это отдельная история.

Но я знаю, что они делают все возможное, чтобы убить Vista. Например, последняя версия Office 2013 намеренно не поддерживается в Windows Vista. Я уверен, что Microsoft желает, чтобы Vista никогда не случалась. Так же, как они будут хотеть, чтобы Windows 8.0 никогда не случалась. Но я, как правило, так же настойчив, как и они, и я не обновляю свои установки Windows, пока абсолютно не должен.

Поэтому вопрос заключается в том, как получить одинаковую пропускную способность в обоих направлениях с двумя разными версиями Windows. Windows Vista должна поддерживать гигабитную скорость - это не 20-летняя ОС или что-то в этом роде, это не Windows 95, о которой мы говорим. Vista - это современная ОС. Я еще не тестировал одну и ту же версию Windows на обеих машинах. Может быть разница в реализации TCP или что-то между двумя версиями ОС. Если так, то я, вероятно, буду вынужден обновить машину с Vista. Либо так, либо перейдите на Linux. Я не готов платить больше за меньшее. Зачем мне обновлять Windows, чтобы получить пропускную способность гигабита в обоих направлениях? ...

Обновление 9 ...

кабель

Я пытался поменять кабель. Я получил те же результаты, что и раньше. Я также получил новый соединительный кабель Cat 6 и попробовал тот. Результаты теста пропускной способности были одинаковыми. Таким образом, кабель не проблема здесь. Я использовал только предварительно соединенные / литые соединительные кабели. Поэтому проводка должна быть правильной. Но я планирую прекратить мои собственные установочные кабели позже.

FW и AV

Что касается брандмауэра (FW) и антивируса (AV), я не использую стороннее программное обеспечение FW или AV. У меня есть только Брандмауэр Windows и Основы безопасности. Я отключил их обоих на обеих машинах. Результаты теста пропускной способности были такими же, как и раньше.

ao ap

aq ar as

Тест скорости локальной сети

Я установил LAN Speed ​​Test Lite 1.3 на локальном компьютере. Я считаю, что тест проводится между памятью на локальном диске и диском на удаленной машине. Я не уверен. Но он запрашивает общий путь на удаленной машине. Я использовал o $ share на пульте.

at au av

Upload: 427 Mbps Download: 420 Mbps 

Я не слишком доверяю этим результатам. Если вы посмотрите на график, то увидите, что он сильно меняется на протяжении всего теста. Тест был «последовательным» тестом, то есть сначала запишите (загрузите) тест, а затем прочитайте (загрузите) тест. Очевидно, что при одновременном тестировании загрузки / выгрузки общая пропускная способность будет ниже. Но я не заинтересован в таких тестах. До сих пор я проводил только «последовательные» тесты с обоими тестами передачи файлов в Windows (совместное использование файлов / smb) и в Iperf.

Я не проводил тесты памяти на память с помощью LAN Speed ​​Test, потому что он требует использования программы под названием LST Server на удаленном компьютере, и эта программа требует регистрации, чтобы использовать его.

Обновление 10 ...

Тесты дисков

Я использовал Crystal Disk Mark 3.0.3 для тестирования дисков. Вот результаты.

Local disk: 118 MB/s read, 113 MB/s write Remote disk: 70 MB/s read, 69 MB/s write 

Это последовательные скорости чтения и записи, основанные на 5 запусках и загрузке 1000 МБ.

Это локальный диск (отметка диска, чтение, запись) ...

aw ax ay

И это удаленный диск ...

az

Но я не понимаю ... эти результаты кажутся противоречивыми.

Окей, локальный диск может считывать со скоростью 118 МБ / с, что позволяет загружать около 100 МБ / с. Но удаленный диск не сможет получить его, если он способен записывать только 69 МБ / с. Но по какому-то волшебному повороту я все равно получаю в среднем чуть более 100 МБ / с.

Переходить наоборот имеет больше смысла. Если удаленный диск может читать со скоростью 70 МБ / с, а локальный диск может записывать со скоростью 113 МБ / с, загрузка не должна быть быстрее 70 МБ / с. Я получаю около 40 МБ / с загрузки в среднем. Это казалось бы разумным.

Поэтому я не могу ничего сделать из этих результатов. Я имею в виду диск на локальном компьютере почти не используется. Это также диск с операционной системой, и это единственный раздел в этой системе. Пока удаленный диск почти заполнен, он также разбит на несколько разделов. Тем не менее, он не используется для ОС. Я выбрал букву диска O:для теста здесь, потому что это раздел с наибольшим количеством свободного места.

(Обратите внимание, что C:в предыдущих тестах я использовал букву диска, которая находится на совершенно отдельном диске Seagate, который содержит ОС на удаленном компьютере. Поэтому эти показания не сравнимы.)

Написать кеширование

С включенным кэшированием записи на диск я получил эти результаты.

Local to remote: 106 MB/s Remote to local: 42.2 MB/s 

Затем я отключил кэширование записи на всех дисках удаленного и локального дисковода.

ba bb

Я не перезагружался, потому что никакие перезагрузки не запрашивались, чтобы изменения вступили в силу. Затем я получил следующие результаты.

Local to remote: 106 MB/s Remote to local: 42.1 MB/s 

Там не было практически никаких изменений. Нет перезагрузки, и перезагрузка не была запрошена.

Пакет QOS

Затем я перешел к отключению QOS Packet Scheduler для соответствующего адаптера на удаленном компьютере, а затем на локальном компьютере.

bc bd

Local to remote: 107 MB/s Remote to local: 41.9 MB/s 

Здесь нет существенных изменений. Опять же, перезагрузка и перезагрузка не были запрошены.

Джамбо пакеты

Затем я включил Jumbo-пакеты и использовал настройку 4 ГБ, поскольку 4 КБ - это самый большой размер MTU, который поддерживается на обеих машинах.

be bf

Local to remote: 105 MB/s Remote to local: 33.3 MB/s 

Теперь здесь загрузка (локальная на удаленную) не пострадала, но пропускная способность была значительно снижена. Перезагрузка не запрашивалась, но я все равно решил перезагрузить обе машины, просто для хорошей меры. Затем я снова выполнил те же тесты и получил эти результаты.

Local to remote: 117 MB/s Remote to local: 33.2 MB/s 

Таким образом, загрузка теперь еще быстрее, но загрузка все еще медленнее, чем была до того, как я внес эти изменения, даже после перезагрузки. Я бы ожидал, что они немного подорожают. Что это значит?

46
Может быть, материнская плата компьютера ограничена в скорости интернета. Timtech 10 лет назад 0
@Timtech Хорошо ... кажется, это как-то ограничивает. Обратите внимание, что в диспетчере задач Windows на локальном компьютере он меняется с «1 Гбит / с» на «500 Мбит / с». Смотрите скриншоты, которые я только что добавил. Может ли это быть причиной? Samir 10 лет назад 0
Это может быть кабель. Вы пробовали другой кабель Cat6? Также стоит проверить настройки дуплекса сетевых адаптеров, чтобы убедиться, что они обмениваются данными в дуплексном режиме. Это перекрестный кабель Cat6? Sim 10 лет назад 0
@Sim Да, «я подключил их с помощью совершенно нового UTP-кабеля Cat6». Нет, я не пробовал другой кабель. Нет, это не перекрестный кабель, это прямой кабель. Я должен попробовать перекрестный кабель вместо этого? Вы имеете в виду как в [несоответствие дуплекса] (http://en.wikipedia.org/wiki/Duplex_mismatch)? Samir 10 лет назад 0
Ответ на этот вопрос прост: у вас включен автоматический полнодуплексный режим. Сможете ли вы перевести все ваши подразделения в одно и то же, что затруднит вашу проблему, не вынимая ручку и бумагу ... Ramhound 10 лет назад 0
Я думаю, что показатели пропускной способности, отображаемые в диспетчере задач, автоматически масштабируются на основе фактической пропускной способности. Это, безусловно, для Windows 8 и моего в настоящее время показано 54 Мбит / с, и за последние несколько минут это было 100 МБ и 100 КБ (в режиме ожидания) и различные значения между ними. sgmoore 10 лет назад 4
@ Ramhound Это? Неужели это так просто? У меня было включено автоматическое согласование на обоих концах. Но чего я могу достичь, установив дуплексные настройки вручную? Я сделал это, и это не помогло. Смотрите обновление 2. Samir 10 лет назад 0
Настройка дуплекс / MDX и кроссовер или нет - это красная сельдь. Гигабит с настройками AUTO на обеих сторонах автоматически использует дуплексный режим и при необходимости выполняет автоматический переход. Если бы у вас было несоответствие, производительность была бы плохой в обоих направлениях. Медленный загрузчик - это машина Core2Duo Vista с более старой материнской платой, я думаю (из вашего описания не ясно). Я думаю, что он использует Realtek первого поколения, который просто не может доставить при загрузке. Может помочь выгрузка контрольной суммы TCP в драйвере. Если он включен, попробуйте выключить его. (Иногда это работает против вас.) Tonny 10 лет назад 0
@Ramhound Какие единицы вы имеете в виду? Вы имеете в виду использование «Мбит / с»? Это то же самое, что Мбит / с. Что бы вы хотели, чтобы я использовал вместо этого? Для моих собственных расчетов я предпочитаю использовать МБ / с, потому что другие единицы не очень репрезентативны для объема данных, которые я передаю в обычной ситуации. Как правило, в мире, в котором мы живем сегодня, мы имеем дело с очень большими файлами. Было бы бессмысленно использовать ... скажем, КБ / с или даже КБ / с, не говоря уже о б / с, или Б / с, или даже меньше, Боды. Для ссылки на диалог я использую все, что использует Windows. Я не виноват в выборе единиц Microsoft. Samir 10 лет назад 0
@Sammy 1 Мбит / с и 1 МБ / с - это не одно и то же. Один мегабит второй, другой мегабайт в секунду Ramhound 10 лет назад 0
@ Ramhound Да, это правильно ... Я знаю, что 1 Мбит / с - это 0,125 МБ / с, а 1 МБ / с - 8 МБ / с. Итак? ... ваша точка зрения? Я сказал, что Мбит / с - это то же самое, что Мбит / с, а не МБ / с, как вы предлагаете здесь. Вы указываете, что использование буквы B в нижнем и верхнем регистре неоднозначно? Если так, то я это изменю. Samir 10 лет назад 0
@ Ramhound Там! Теперь я изменил 851,2 Мбит / с на 851,2 Мбит / с и 328,56 Мбит / с на 328,56 Мбит / с. Это единственное место, где я использовал «Мбит / с». Во всех других местах я использовал «Мбит / с» или «Гбит / с» при обращении к битам в секунду. Таким образом, косая черта теперь используется только при обращении к байтам в секунду. Это делает тебя счастливым сейчас? :) Просто подведем итог: косая черта (МБ / с) означает байт в секунду, а косая черта (Мбит / с) означает бит в секунду. ;) Samir 10 лет назад 0
@Sammy - Когда я впервые просмотрел ваш пост, я был на телефоне, и на первый взгляд оказалось, что некоторые вычисления были в мегабитах, а другие - в мегабайтах. Я не знаю, что у вас было раньше (так как я впервые сделал комментарий, кажется, вы обновили вопрос), я уверен, что это делает его более понятным. Хотя я знаю разницу лично, мне не нравится заниматься математикой, а также читать :-) Ramhound 10 лет назад 0
@ Ramhound Ааа ... Хорошо. Так как это выглядит сейчас? Единственные вычисления, которые я сделал, были только средними значениями в таблицах Iperf. Фактические показания (в МБ / с) были получены непосредственно от Iperf. Вы можете настроить Iperf на использование определенного формата. Я использовал опцию `-f MB`. Просто потому, что мне нравятся МБ / с, и это то, что использует Windows, и я могу легко сравнивать различные значения. Раньше КБ / с были похожи на золотой стандарт, но поскольку с годами мы получили большую пропускную способность, более высокую пропускную способность и большие файлы, МБ / с стали более актуальными, чем КБ / с. Samir 10 лет назад 0
@ Тонни Да, вы правильно поняли. Я имею в виду, что «загрузчик» (он же удаленный) - это машина Vista, и она работает на Core 2 Duo (чипсет X38). Локальный компьютер работает на Core 2 Quad (чипсет P45). Я не знаю чипов Realtek, но да, плата X38 немного старше P45. То есть вы думаете, что это аппаратное ограничение на стороне X38 / C2D / Vista? Я опубликую точные спецификации. Samir 10 лет назад 0
Какое было использование процессора во время переносов? Увеличивалось ли использование процессора при снижении скорости? Микросхемы AFAIK Realtek передают некоторую обработку ЦП, поэтому, если ЦП должен что-либо делать во время передачи данных, он замедлит передачу данных. Lawrence 10 лет назад 0
Рассматривали ли вы загрузку обеих машин с live-компакт-дисков Linux (два идентичных загрузочных диска), чтобы исключить проблемы с программным обеспечением, и перенос файла с RAM-диска на RAM-диск для исключения проблем с жесткими дисками? Moshe Katz 10 лет назад 12
у вас кеширование записи включено на жестких дисках? Rex 10 лет назад 0
При запуске iperf, что он сообщает с каждой стороны как размер окна TCP? Кроме того, вы попросили сервер 'iperf' угадать на MSS? Является ли заявленная стоимость разумной? ewhac 10 лет назад 0
Просто вернулся к вашему вопросу. Версия Realtek B в машине Vista, я думаю, является виновником. Если я правильно помню из прошлого опыта, максимальная версия A & B составляет около 35% от Gigabit, в то время как версии C и D могут достигать около 90-95%. Это хорошо коррелирует с вашими выводами. Перепроверьте, следуя совету Моше Каца. Linux Live-CD или USB-накопитель на обеих машинах и запускают iperf оттуда (большинство версий Linux имеют встроенный iperf). Tonny 10 лет назад 0
Я хотел добавить сюда свои 2 цента ... мой первый: вы отключили все вирусы? мое второе: попытался ли вы перевернуть кабель, чтобы посмотреть, не исчезнет ли ваша проблема (переключение конца кабеля на другой компьютер и наоборот). Если вы получаете быструю загрузку, но медленную загрузку, то проблема в проводке. (т.е. ваши пары не скручены вместе, а с другими парами) Rik 10 лет назад 1
@MosheKatz Я только что сделал это. По результатам, которые я только что опубликовал (см. Обновление 8), вы можете видеть, что я получил отличную пропускную способность в обоих направлениях с Ubuntu. Samir 10 лет назад 1
Кэширование записи @Rex включено как на локальном, так и на удаленном жестком диске. Вы говорите, что я должен отключить его, чтобы улучшить производительность? Насколько это реально влияет на производительность жесткого диска? Samir 10 лет назад 0
@ewhac Размер окна TCP на локальном компьютере обычно отличается от размера окна на удаленном компьютере. Значение по умолчанию составляет 0,06 МБ на локальном (win 8) и 0,01 МБ на удаленном (Vista). Должны ли они быть одинакового значения? Как я могу попросить его угадать MSS? Будет ли это ключ `-m` (« напечатать максимальный размер сегмента »)? Я обычно не устанавливаю ничего из этого. Зачем мне это? Samir 10 лет назад 1
@ Тонни Я думаю, что мы можем исключить Realtek 8111B в качестве виновника (см. Обновление 8). Я получил более 90% использования между версиями B и C, используя систему Ubuntu LINUX Live на обеих машинах. Samir 10 лет назад 0
@NothingsImpossible Да, я вроде как получил это сейчас (см. Обновление 8). Вопрос в том, как получить полноценные гигабитные скорости на Ubuntu LINUX, но не на Windows Vist / 8.1. Есть идеи? Samir 10 лет назад 0
@Sammy Вы проверили, удалили ли вы все другие протоколы из локальной сети в Windows (например, «QOS Packet Scheduler» и возможные «Virtual» -драйверы). Это длинный путь, но они * могут * помешать. Кроме того, вы отключили вирусов сканеры на обеих машинах (я знаю, тоже далеко вперед, но это то, где мы сейчас находимся :) Rik 10 лет назад 1
@ Сэмми, вау, эта тема набирает обороты :) Я видел, как ты пробовал Linux на обоих концах. Но вы уже пробовали Linux <-> Win8 и / или Linux <-> Win.vista? Если один из них имеет полную скорость в обоих направлениях, вы знаете, что другой виноват (что будет показано в другом тесте), и вы / мы можем сконцентрировать наши усилия на этой машине. Rik 10 лет назад 2
Почему бы вам не попробовать свой тест с использованием UDP в обоих направлениях и сравнить результаты с вашими номерами TCP? 10 лет назад 0
По поводу теста 10, скорость диска. Сегодня операционные системы используют предварительно сопоставленный или полностью сопоставленный DMA для копирования на внешнее устройство, поэтому я предполагаю, что данные копируются в оперативную память, прежде чем они будут сохранены на диске. Это объясняет более высокую пропускную способность, чем то, на что способен ваш диск. Mogget 10 лет назад 0
Came across this great question. Simply don't use iperf under windows, it's a bad port. Try an alternative. Matt H 7 лет назад 0

9 ответов на вопрос

6
ewhac

Based on your response:

@ewhac The TCP window size on the local machine usually differs from the window size on the remote machine. The default value is 0.06 MB on local (win 8) and 0.01 MB on remote (vista). Do they have to be the same value? How do I ask it to guess the MSS? Would that be the -m switch ("print maximum segment size")? I usually don't set any of that. Why would I have to? – Sammy Nov 30 at 21:39

The TCP window size represents the maximum amount of data the TCP stack will squirt down the wire blind before stopping and waiting to receive acknowledgements from the remote machine -- in other words, the maximum amount of unacknowledged traffic on the wire. The fact that the TCP window on the Vista machine is much smaller than on the Windows Se7en machine supports the theory that you're not filling the pipe enough before stalling and waiting for ACKs.

Therefore, the first thing I would try is increasing the TCP window size on the Vista machine using the -w argument. 0.01MB is a somewhat unhelpful unit; I'm guessing it's 16KiB. So start with 16KiB and run a test:

iperf -c -w 16K ... 

Double the window size and repeat the test:

iperf -c -w 32K ... 

Hopefully you should observe a speed increase. Continue doubling the window size until you no longer see significant speed increases.

4
Michael

Как указывалось ранее, вам потребуется изменить размер окна TCP в iperf, чтобы повысить пропускную способность по высокоскоростным каналам с низкой задержкой. Разные версии Windows (или iPerf) могут иметь разные размеры окон по умолчанию. Попробуйте запустить «-w 256k» как на клиенте, так и на сервере.

Можете ли вы подтвердить направление стрелки на ваших графиках? В iPerf данные передаются с клиента на сервер (в отличие от того, что я обычно думаю).

Вы можете исключить жесткие диски как причину, поскольку iPerf не касается жестких дисков.

Я думаю, что вы уже убедились, что используете последние драйверы NIC. Там не должно быть необходимости возиться с ручной настройкой скорости / дуплекс. То же самое с большими кадрами - они не стоят хлопот с современным оборудованием.

Убедитесь, что большая разгрузка отправки (LSO) и большая разгрузка приема (LRO) включены на обеих сетевых картах. Некоторые драйверы сетевых адаптеров используют разные имена (или несколько опций, которые управляют этим поведением), поэтому вам, возможно, придется охотиться. Обычно по умолчанию все они включены.

3
PeterJ

I think u need to read a little bit more about how iperf works. If you don't set the correct tcp window size your results will vary a lot. I believe its the -w switch. This website will assist with calculating the optimal TCP window size. You need to know the RTT and bandwith to calculate it. http://www.kehlet.cx/docs/tcpwin.php

Also try other tools like "LAN Speed test" lite which will just do up and down transfers between shares at either end. Its results are quite close in the testing ive done with it. Also make sure u check what your hard drives max r/w speeds are.

Могу ли я использовать команду ping для определения RTT? Если я пингую пульт, я получаю менее 1 мс. Но это не говорит мне, сколько. Могу ли я использовать какой-нибудь другой инструмент, более точный? Я знаю, что не могу использовать 0 мс в формуле. Samir 10 лет назад 0
Я использовал программу ping [hrping] (http://www.cfos.de/en/ping/ping.htm). Что касается LAN Speed ​​Test Lite, он был не так хорош, как Iperf. Может быть, это станет лучше, когда вы установили LST-сервер на другом конце. Но мне не хотелось регистрироваться, чтобы использовать его или платить за лицензию. Samir 10 лет назад 0
3
majika

A couple of point which may help you out.. TCP IP stack is now implemented differently in post Windows 7 releases. I would look closely at my TCP optimisations, there may not be much in it between your two boxes but still worth tweaking some settings on your vista Box.

The use of netsh int tcp set global congestionprovider=ctcp has been depreciated. In order to set or change the congestionprovider the following command must be used:

read the article here: http://forums.speedguide.net/showthread.php?280646-When-will-TCP-Optimizer-support-Windows-8-amp-Windows-Server-2012

netsh int tcp set supplemental custom 300 10 ctcp disabled 50 Then type: netsh int tcp set supplemental custom

For further details about the above command simply type: netsh int set supplemental

To check which congestionprovider your currently using use the following: netsh int tcp show supplemental

But only Win Server 2012 can create custom templates CTCP maybe an issue.

Also Auto-Scaling could be a factor.

Maybe worth taking a look at your drivers maybe in need of upgrade/downgrade. see which ones work best.

Another thought is packet-sizes being written to HDD.. What size are your HDD sectors formatted to 512b ~ 64K it could be caching bottleneck.. Worth consideration when using GBit speeds - or test with SSD disk instead!

Have you looked at enabling Jumbo Packets (if this apply's to your NIC's)

Можно ли отключить масштабирование размера окна и установить значение RWIN вручную равным 64 КБ? Samir 10 лет назад 0
Я только что прочитал, что значение RWIN динамически изменяется в современных системах Windows. Это правда? Что RWIN не может быть фиксированным значением? Samir 10 лет назад 0
2
Mike Pennington

Great results with Ubuntu LINUX

This sounds quite familiar... you get inexplicably bad iperf performance in Windows, but the same hardware works fine with Linux.

After fighting this battle over and over, I have come to the conclusion that iperf in Windows is flaky. I don't know why... honestly, I've quit caring because I know I can always get sane results from linux.

So if you want to know why you're getting such bad performance, look no farther than the application.

2
Mark Sowul

Something to try is to stop the MMCSS service. Yes, you will lose your audio temporarily, but it could be that something is activating it, causing the network activity to be throttled so that the network activity doesn't drown out other activity.

See here for some info about MMCSS and network throttling: http://blogs.technet.com/b/markrussinovich/archive/2007/08/27/1833290.aspx

It can be tweaked as per these instructions: http://support.microsoft.com/kb/948066

I doubt it's the cause in this case, as throughput would probably be lower, but after banging my head against the wall for a long time with my own throughput problems on Vista, I discovered this was the cause. I set NetworkThrottlingIndex to 70 and I finally got the throughput I expected.

2
harrymc

Одна вещь, которую вы не пробовали, - это удаление удаленного дифференциального сжатия в Vista.

Мое мышление мотивировано интенсивным использованием процессора в Vista. Возможно, сетевой драйвер Vista не знает, как разгрузить это на сетевую карту, в то время как Windows 8 делает это намного эффективнее.

Для получения полной информации см. Статью:
Предотвратите медленное копирование файлов по сети в Vista, отключив удаленное разностное сжатие .

Но в двух словах, просто снимите флажок Remote Differential Compressionв Панели управления -> Программы и компоненты -> Включить и выключить функции Windows, затем перезагрузите компьютер.

image

0
Gi Cakov

Раньше я преследовал свой хвост с точно такой же проблемой некоторое время! Медленные скорости передачи в одном направлении, в моем случае исходящие (восходящая линия связи).

Windows 7 Pro, Celeron J1800 со встроенной сетевой картой Realtek Gigabit 8111C. QNAP 453a и MacBook Pro на другом конце.

При измерении через Iperf3 я получал 112 Мбит / с с моим Windows 7, установленным в качестве клиента (загрузка ЦП на 25-30%). И только 39-41 Мбит / с при установке в качестве сервера с высокой загрузкой ЦП между 50-100%. Настолько плохо, что ПК зависнет во время тестирования пропускной способности.

Максимальная скорость передачи файлов не превышала 45 Мбит / с, независимо от того, загружал я файлы или загружал их на свой NAS или MAC.

Я получал только 35-45 мегабайт в секунду. Довольно расстраивает!

Закончил быть плохим драйвером карты локальной сети. Я был одержим обновлением драйверов и всегда обновлял свои драйверы, когда новые становятся доступными. Угадайте, что после нескольких обновлений моя сетевая карта замедлилась.

Некоторые из вас могут сказать, просто удалите старый драйвер и установите новый. Просто, а? Я пытался и пытался, это не сработало для меня.

Вот мое решение:

Установил windows с нуля с OEM драйверами с сайта производителя. Также я сделал следующее:

В разделе «Диспетчер устройств» / «Карта LAN» / «Дополнительные настройки» / «Отключить все, кроме управления потоком».

В разделе «Функции Windows» отключите удаленное разностное сжатие.

Сейчас средняя скорость составляет 80-100 Мбит / с.

Извините за некачественные фотографии.

enter image description here

-1
Prestaeus

Linus from Linus Tech Tips on Youtube had the same problem, and I apologize but I have forgotten what the solution was. It is a recent (as of 4/20/2016) video, and I may be wrong but I think it ended up being a case where a single thread on a processor is the limiting factor, so if you have older hardware and you are trying to hit 1 Gbps, it is actually the CPU that is the problem, if it offloads the bulk of the work to the CPU, which most on-board NICs do these days. I could be mistaken, it is a recent video of his, I highly encourage you to check his stream. For what it is worth I am running into the same problem on my gigabit internet connection.

«Я забыл, каково было решение» - не так ли много ответа? DavidPostill 8 лет назад 0
Так что найдите время, чтобы определить, какое решение было. Этот ответ бесполезен, вы все равно можете быть забаненым за отправку неверных ответов, даже если они помечены как вики сообщества Ramhound 8 лет назад 1