Чому в мережі 1000 Мбіт / с я отримую лише 300-400 Мбіт / с?


17

Моя настройка така:

Ноутбук <--> Маршрутизатор <--> Робочий стіл

Всі вони підтримують гігабітний Ethernet. Я використовую орієнтир TCP / IP 'iperf' на ноутбуці та на робочому столі, і ніколи не отримував більше 400 Мбіт / с пропускної здатності. Ноутбук - це Intel Core 2 Duo 2 ГГц під управлінням Windows XP, робочий стіл - це Intel Core 2 квадратик 2,4 ГГц під управлінням Windows 7. На що я можу подивитися, щоб досягти максимальної швидкості мережі між ними? Налаштування програмного забезпечення? Спосіб дізнатися, чи мій кабель не відповідає технічним умовам? Як дізнатися, чи не може гігабітний контролер Ethernet в одному з пристроїв досягти максимальної швидкості?

Відповіді:


11

1 Гбіт / с - це теоретичний максимум цього зв'язку.

На це може вплинути багато речей.

Очікуйте враження від продуктивності своїх бортових NIC, оскільки вони, швидше за все, будуть (на основі описів пристроїв "Ноутбук" та "Настільний") хост-адаптерів, які покладаються на ЦП для обробки мережевого трафіку. Тому процесор впливатиме на швидкість, роблячи інші речі (наприклад, передача даних з жорстких дисків до мережевої підсистеми).

Крім того, залежно від того, що таке "маршрутизатор", він може намагатися обробляти дані, переходячи від порту LAN до порту LAN, тому швидкість його обробки також може впливати на швидкість передачі даних, незалежно від того, наскільки швидкі "порти" є.

Якби я був ти, моїм наступним тестом було б придбати собі «досить довгий» перекладочний кабель CAT6 та підключити ноутбук безпосередньо до ПК (можливо, ти зможеш відійти прямолінійним кабелем, як багато авторів підтримки NIC -перехрещення в ці дні).

Таким чином, ви (принаймні) можете досить легко усунути або ідентифікувати маршрутизатор (та / або наявну проводку) як вузьке місце.


Дивіться на en.wikipedia.org/wiki/… про дві можливі розетки для створення гігабітного кросовер-кабелю.
одинадцять81

Добра інформація точно. У цьому випадку, якщо користувач не звик робити кабель, а мета - усунути можливі уповільнення, тоді, мабуть, краще використовувати кабель, виготовлений на заводі. Нічого набагато гіршого, ніж пухкий обжим. ;)
Ƭᴇcʜιᴇ007

14
Просто FYI, з гігабітною мережею Ethernet, кросовер-кабелі більше не потрібні. Всі гігабітні контролери Ethernet повинні мати можливість «автосенсерувати» кабель, тому ви можете використовувати стандартний кабель для підключення до гігабітних пристроїв Ethernet разом. Я спробую підключити свій ноутбук прямо до робочого столу і побачити, чи є різниця.
davr

@davr, чи могли б ви мати успіх?
ebrahim.mr

8

iperf за замовчуванням використовує досить невеликий розмір вікна.

Збільшити вікно або запустити його в режимі UDP, і воно легко наситить з'єднання 1 Гбіт / с.


Не думав про це, я спробую це.
davr

1
Ви не будете насичувати це обладнанням для споживачів. Зазвичай процесор обмежується шиною PCI або PCI-Express. тобто процесор не може перенести дані з оперативної пам'яті на мережеву карту досить швидко. Обладнання для серверного класу, здається, робить краще. Я знаю, я програміст, і я намагався зробити саме це. Наближаюся, але зараз обмежений власним обладнанням.
Метт Х

1
працював на мене, годинами стукав головою, намагаючись з'ясувати, чому Windows iperf дає мені 250 Мбіт / с, а завантажений Ubuntu на тій же машині дає мені 925 Мбіт / сек. виявляється, що iperf для Windows за замовчуванням до 8k tcp розміру вікна та до 88k розміру вікна в Linux.
Омрі

@Omry, iperf на windows - собака з декількох точок зору. Я здебільшого відмовився і запускаю iperf лише під Linux
Майк Пеннінгтон

4

Джефф Етвуд має хороший аналіз того, чому реальна пропускна здатність мережі Gigabit ближче до його розрахунків до 30 Мб / с. (великий "B", а не маленький "b")

... Ви точно не повинні сподіватися на ідеальне масштабування, яке ми досягли, переходячи від 10baseT до 100baseT. Без будь-якого серйозного налаштування ви отримаєте лише частину десятикратного поліпшення пропускної здатності, яке ви могли б очікувати


Цей інструмент "pcattcp", який він використовує, - це лайно. Мій нетбук з частотою 900 МГц (який, мабуть, такий же швидкий, як і його машина в 2005 році) робить 300 Мб / с через зворотний зв'язок.
користувач23307

Так, iperf дає помітно кращі показники в порівнянні з циклом, ніж pcattcp. Я зараз дотримуюся iperf для тестування, якщо не почую ще чогось, що краще.
davr

1
Крім того, я вже отримую вище, ніж його 240mbit, і цій статті вже 5 років, тому я вже не є такою актуальною, я вважаю, як технології з цього часу повинні сильно просунутися.
davr

Ну, враховуючи, що інтерфейс зворотного зв'язку віртуальний (нічого навіть не переноситься на мережеву карту), ви б очікували набагато кращої продуктивності (в основному це тоді процес обробки та жодного жорсткого диска). Я отримую 8.09 Гбіт / с (1035 Мбайт / с) через інтерфейс зворотного зв'язку.
Метт Х

3

Якщо все є гігабітним, ви можете спробувати включити джомбові кадри . Один з моїх друзів зробив це з його домашнім комп'ютером і помітив величезне збільшення пропускної здатності. Однак, є деякі недоліки для додатків із низькою затримкою, таких як VOIP, як зазначено у статті.


Зростання не повинно бути таким суттєвим для більшості програм. Все це буде означати менше витрат на протокол TCP або UDP на пакет. Крім того, для найкращих результатів ваш комутатор / маршрутизатори також повинні підтримувати джамбо-кадри. Сумніваюсь у його волі.
Метт Х

Для будь-яких результатів ваші комутатори повинні підтримувати джамбо-кадри. Немає можливості, щоб пристрій, призначений лише для L2, надсилав назад помилку ICMP "Пакет занадто великий", щоб повідомити вашій машині, що вона повинна використовувати менший розмір пакету.
cpt_fink

1

Ви сказали, що використовуєте роутер? це вимкнений маршрутизатор споживача (не комутатор)?

Я б сказав, що це, швидше за все, ваше вузьке місце. Щоб перевірити це, підключіть ноутбук безпосередньо до робочого столу. Встановіть свій ноутбук та настільний комп’ютер для використання статичної IP-адреси, наприклад 192.168.1.10 (ноутбук), 192.168.1.11 (робочий стіл).

Це повинно дозволяти ноутбуку спілкуватися безпосередньо на робочому столі. Запустіть iperf між ними і повідомте про результат тут.

Це має спрацювати, оскільки більшість сучасних мережевих карт можуть автоматично сприймати передачу / отримання проводів на відміну від старих часів, коли раніше потрібно було будувати кросовер.

Якщо ви помітили помітне збільшення, то винуватцем вашого маршрутизатора. Деякі з них мають вимикачі на задній панелі, інші насправді можуть здійснювати маршрути між портами. Багато з цих маршрутизаторів - страшні виконавці. Якщо ви виявите, що це проблема, то, якби я був, я б або оновив маршрутизатор (що, мабуть, добре для використання в Інтернеті), або пішов і придбав собі комутатор GigE і каскадував його на комутатор маршрутизатора. Підключіть ваш ноутбук та робочий стіл до вимикача. Таким чином вони обійдуть маршрутизатор, щоб поговорити один з одним.

Переконайтеся, що ви замінили ноутбук та робочий стіл на DHCP, коли закінчите експеримент.

Щоб дати вам ідею, ви повинні отримати, я думаю, 650 Мбіт / с і вище. iperf не використовує жорсткий диск, якщо ви цього не скажете. Отже, це пам'ять на пам'ять або справді тестування мережі.

На інших вузьких місцях насправді - наскільки швидко ваш процесор може передавати дані з пам'яті на мережеву карту. Начебто мережі, які працюють на PCI express, працюють краще. Я думаю, що ноутбуки, як правило, досить дешево побудовані в наші дні, тому якщо ви не бачите набагато вище, то це може бути іншим вузьким місцем.

Крім того, споживчі комутатори часто можуть впоратися лише з перемиканням 1 ГБ між будь-якими двома портами, тоді як комутатори високого класу можуть перемикатися зі швидкістю проводів на всіх портах одночасно. Це частина причини, що вони коштують набагато дорожче.


1

Ми провели численні тести, і це зводилося до операційної системи.

Якщо ми переходимо від Ubuntu 11.04 до Ubuntu 11.04 (те ж саме з CentOS для машин Linux), швидкість пропускання становить постійну ~ 938-941 Мбіт / с. Якщо ми переходимо від Windows 7 x64 SP1 Ultimate до Ubuntu 11.04, він змінюється від ~ 440-475 Мбіт / с. Якщо ми перейдемо з Windows 2008 R2SP1 x64 до Ubuntu 11.04, швидкість вимірювання становить ~ 435-635 Мбіт / с.

Як бачите, машини на базі Linux повністю використовують посилання Gigabit порівняно з Windows. Зараз ми досліджуємо налаштування в Windows, які б призвели до тієї ж пропускної здатності, що і Linux для того ж обладнання. Обмеження жорсткого диска не є фактором, оскільки це в пам'яті. Для запису машин, які ми використовували, було 7200 обертів на хвилину із SATA 3.0. І Ubuntu 11.04 (або база Linux), і Windows перевищили теоретичну швидкість цих посилань SATA.


Дякуємо за інформацію, будь ласка, оновіть свою відповідь, якщо ви знайдете будь-які параметри, які впливають на швидкість у Windows
квітня 1111

це змушує мене замислитися, чи iperf не єдина частина Windows, яка за замовчуванням має менший розмір пакета, ніж Linux, див. superuser.com/a/95587/16966
matt wilkie

0

Швидкість передачі так само хороша, як і найслабша ланка ланцюга. Це може бути не швидкістю мережі, але швидкістю запису / читання ваших жорстких дисків.

Ви можете завантажити програмне забезпечення RamDisk і створити RamDisk на обох комп'ютерах. Помістіть файл пристойного розміру всередині нього і виконайте передачу по мережі між RamDisks. Це повинно показати вам фактичну швидкість вашої мережі, яка не буде обмежена вашими швидкостями на жорсткому диску.


2
Ось чому я згадав "iperf", але, мабуть, це не так часто використовується в інструменті. В основному він тестує швидкість мережі безпосередньо, не читаючи / записуючи на Жорсткий диск, так що це не вузьке місце. Я розумію, що жорсткий диск може бути вузьким місцем у реальному використанні.
квітня

0

Це не пряма відповідь на ваше запитання, але нещодавно ми отримали наступний результат, що складається з iperfдвох ящиків Linux (8 ядер, 2,66 ГГц у кожному):

------------------------------------------------------------
Client connecting to 192.168.74.15, TCP port 5001
TCP window size:  192 KByte (default)
------------------------------------------------------------
[  3] local 192.168.74.25 port 54016 connected with 192.168.74.15 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

з MTU = 1500 (тобто не використовуються джамбо-кадри). Це повинно дати вам уявлення про те, яка реалізація в принципі можлива.

Мережеві карти (вихід lspci):

82571EB Gigabit Ethernet Controller

з обох сторін.

Ви можете перевірити завантаження процесора на сервері та, особливо, на стороні клієнта, і побачити, чи близьке це до 100%. Незважаючи на те, що я маю сказати, що в нашій системі найзайнятіше ядро ​​на 80% (83%) в режимі холостого ходу на стороні приймача (відправника), а інші 7 здаються на 100% в режимі очікування (перевірено mpstat).

Це працює iperfбез -uопції, тобто використовується TCP.


Я думаю, ви повинні отримувати> 500 або 600 мбіт / с на 1 - 2-річному апаратному забезпеченні настільних ПК.
Метт Х

-4

davr, На відміну від волоконного каналу та подібних технологій, які використовують складні схеми розподілу пропускної здатності, ethernet - це протокол "прослуховування та прослуховування". Спочатку Ethernet слухає, чи хтось зараз передає, якщо так, зачекайте, якщо ні, то надішліть. Проблема полягає в тому, що якщо дві або більше сторін, які бажають передавати, слухають одночасно, вони також надсилатимуться одночасно! Це спричинить зіткнення та повторну передачу. Фантастичні вимикачі усувають багато цього, але не все.

З мережею Ethernet слід очікувати, що ви побачите приблизно 30-40 відсотків пропускної здатності (схоже, що ви отримаєте це. Я можу помилитися в точному #, багато що залежить від якості перемикача тощо), перш ніж почати виникати багато зіткнень, технологія тканини - це щось на кшталт 80%. Ethernet дешевий, волоконний канал - ні. . . Я не впевнений, що робить 4G Ethernet, щоб уникнути цього. . . це може мати більш "тканину", як мережева топологія, схожа на волоконний канал та друзів. Це надмірне спрощення, але по суті правильно.


2
Так, я не використовую "німий" хаб. Я думаю, що більшість людей сьогодні використовуватиме інтелектуальні комутатори чи маршрутизатори, які керують сполучними пристроями безпосередньо один з одним, усуваючи зіткнення. Також мій тест включає лише два пристрої, підключені до одного маршрутизатора, тому зіткнення не буде проблемою в моєму конкретному випадку.
квітня

davr - виправдання, поки я ненадовго граю на захисника чортів. . . Що заважає вашим двом господарям одночасно намагатися спілкуватися? Крім того, ви не згадали, який тип даних передається. . . це майже виключно TCP або є багато потокової передачі даних (аудіо, відео тощо)? Чи обидва комп'ютери передають дані одночасно або є більш чітко визначені відносини клієнт / сервер?
TheEruditeTroglodyte

2
Я використовую спеціальну програму бенчмаркінгу TCP / IP, куди надсилається лише один комп'ютер, а інший слухає. Але навіть так, Ethernet - це повний дуплекс ... якщо у вас є лише дві машини, вони можуть одночасно надсилати та отримувати повну пропускну здатність один до одного.
дав
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.