Почему это сетевое подключение так медленно?

У меня возникают некоторые проблемы с производительностью сети на сервере Linux под управлением Ubuntu 9.10. Скорость передачи по всем типам трафика составляет около 1,5 МБ /с на проводном Ethernet-соединении 1000 мбит /с. В последнее время этот сервер достиг 55МБ /с за самбу. Я не изменил настройки оборудования или сети. Я регулярно запускаю обновления, и на этом компьютере работает последняя и самая большая из репозиториев Ubuntu.

Настройка оборудования

Рабочий стол Windows PC - 1000 коммутатор - 1000 коммутатор - сервер Linux

Все коммутаторы являются netgear, и все они показывают зеленый свет для своих соединений, что означает, что соединение составляет 1000 мбит /с. Светится желтым, когда соединение составляет всего 100 мбит /с. Другая диагностическая информация:

[email protected]:~# 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)


[email protected]:~# 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

[email protected]:~# mii-tool
eth0: negotiated 1000baseT-FD flow-control, link ok

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

Я тестировал скорость жестких дисков с помощью hdparm и получил:

[email protected]:~# 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 создало следующее:

[email protected]:/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 порядка ниже, чем сеть способна?

10 голосов | спросил Paul Keeble 18 AM00000020000004731 2010, 02:03:47

5 ответов


6

Некоторые вещи, которые вы должны рассмотреть:

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

netperf отлично подходит для устранения неполадок в сети. Но неткат не так уж плох.

ответил Brian Cain 18 AM00000060000003631 2010, 06:32:36
6

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

Однако, вы пробовали NFS, FTP и SCP? Являются ли проблемы пропускной способности согласованными в разных протоколах? Если это так, это, вероятно, сузится к физическому соединению. Если вы получаете противоречивые результаты, то это скорее проблема программного обеспечения.

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

ответил Aaron Toponce 19 PM000000120000002731 2010, 12:24:27
2
  1. Попробуйте netstat -i и найдите ошибки rx /tx.
  2. Попробуйте netstat -s и найдите проблемы с tcp - сравните значения до и после копирования файла и найдите большие всплески при сбрасывании или повторных передачах.
ответил Rafael Ferreira 18 AM000000110000004431 2010, 11:10:44
0

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

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

ответил pmalmsten 18 AM00000020000004631 2010, 02:33:46
0

Если вообще возможно, чтобы устранить большинство сомнений в том, что это действительно проблема с ОС /драйвером /картой, соедините компьютеры вместе с помощью перекрестного кабеля. Это приведет к удалению коммутатора и других возможных сетевых проблем из вашего уравнения.

ответил Stephen Jazdzewski 18 PM000000110000005931 2010, 23:42:59

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132