Чому цей мережевий зв’язок такий повільний?


11

У мене є деякі проблеми зі швидкістю роботи мережі на сервері Linux під управлінням Ubuntu 9.10. Швидкість передачі для всіх типів трафіку становить близько 1,5 Мб / с на провідному Ethernet-з'єднанні 1000 Мбіт / с. Цей сервер досяг недавнього минулого 55 Мб / с над самбою. Я не змінив налаштування обладнання або мережі. Я регулярно запускаю оновлення, і на цій машині працює останнє та найкраще з сховищ Ubuntu.

Налаштування обладнання

Настільний ПК з Windows - комутатор 1000 - комутатор 1000 - сервер Linux

Усі вимикачі мають мережеву передачу, і всі вони показують зелене світло для своїх з'єднань, що означає, що з'єднання становить 1000 мбіт / с. Фари жовті, коли з'єднання становить лише 100 Мбіт / с. Інша діагностична інформація:

root@server:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:6e:3e:ae:36
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:6eff:fe3e:ae36/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28678 errors:0 dropped:0 overruns:0 frame:0
          TX packets:73531 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2109780 (2.1 MB)  TX bytes:111039729 (111.0 MB)
          Interrupt:22

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:113 errors:0 dropped:0 overruns:0 frame:0
          TX packets:113 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:23469 (23.4 KB)  TX bytes:23469 (23.4 KB)


root@server:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pg
        Wake-on: g
        Current message level: 0x00000037 (55)
        Link detected: yes

root@server:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok

Сервер вважає, що його встановлено 1000mbit / s з'єднання. Я перевірив швидкість передачі, копіюючи файли за допомогою Samba. Я також використовував netcat (nc target 10000 <aBigFile) на сервері для передачі в Windows (nc -l -p 10000) і бачив подібні рівні низької продуктивності.

Я перевірив швидкість жорстких дисків за допомогою hdparm і отримав:

root@server:~# hdparm -tT /dev/md0
/dev/md0:
 Timing cached reads:   1436 MB in  2.00 seconds = 718.01 MB/sec
 Timing buffered disk reads:  444 MB in  3.02 seconds = 147.24 MB/sec

Читання одного і того ж файлу для передачі за допомогою DD створює таке:

paul@server:/home/share/Series/New$ dd if=aBigFile of=/dev/null
3200369+1 records in
3200369+1 records out
1638589012 bytes (1.6 GB) copied, 12.7091 s, 129 MB/s

Я спотикався. Що може спричинити низьку продуктивність мережі, яка на 2 порядки нижче, ніж на що здатна мережа?


serverfault - це, мабуть, краще місце для таких питань.
Мацей П'єхотка

Спробуйте це запитання ServerFault для загальних методів, корисних для усунення несправностей з повільним мережевим з'єднанням.

Якщо нічого не змінилося, звинувачуйте в зносі (кабелі).
Мел

Відповіді:


6

Деякі речі, які слід розглянути, перевірити:

  1. Дуплекс - якщо одна сторона вважає, що посилання є дуплексним, а інша сторона вважає, що посилання є напівдуплексним, очікуйте поганості.
  2. Несправний вимикач? Обхід його / їх.
  3. Кадри Jumbo. 9000 байт MTU зменшує накладні витрати, що повинно збільшити пропускну здатність (втрачаючи невелику затримку). Здається, ваша проблема настільки погана, що це не допоможе.
  4. Особливості TCP: ECN, SACK, регулятор перевантаженості
  5. Розмір вікон TCP для надсилання / отримання ( деталі для Linux )

netperf чудово підходить для усунення несправностей у мережі. Але сітка не погана.


6

В моєму професійному досвіді я намагався досягти хороших надійних мереж із Samba в GNU / Linux. Ви згадали, що з нею досягли швидкості 55 Мбіт / с, що я вважаю, тому я здогадуюсь, що ще щось напевно є на грі.

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

Чи використовуєте ви шифрування для передачі, крім тестування інших протоколів? Наприклад, використання rsync -zсолодкого для ввімкнення стиснення, але воно відбувається за ціною процесора, що сильно впливає на загальну швидкість передачі. Якщо ви користуєтесь SSHз rsync, то у вас є шифрування поверх стиснення, і ваш процесор буде підданий деяким навантаженням, що спричинить суворі штрафи за швидкість.


2
  1. Спробуйте netstat -iі шукайте rx / tx помилки.
  2. Спробуйте netstat -sзнайти проблеми з tcp - порівняйте значення до та після копіювання файлу та шукайте великі шипи у скидах чи повторній передачі.

На жаль, після 100 МБ взагалі немає помилок TX / RX, і кількість скидів послідовно 4 від початку до кінця тесту
Пол Кілбл

0

Ви можете перевірити перевантаженість вашої мережі; можливо, деякі інші пристрої споживають всю вашу пропускну здатність?

Крім того, можливо, щось не так з вашим мережевим інтерфейсом та / або його драйвером. Досить дивно.


На момент випробування це були лише два пристрої в мережі, нічого іншого не було.
Пол Кілбл

0

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.