Низкая пропускная способность Linux на GigabitEthernet

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

illuminaty
Сообщения: 7

Низкая пропускная способность Linux на GigabitEthernet

Сообщение illuminaty »

Доброго времени суток, коллеги.
Обрисую проблему.
Есть два офиса, между ними оптоволокно.
В одном офисе оптика подключена к гигабитному коммутатору, во втором подключена к маршрутизатору под управлением Linux (OpenSusE 10.3, до этого стоял RHEL5 - проблема та же).
На маршрутизаторе 2 работающих сетевых карточки: к одной подключена оптика, вторая смотрит в локальную сеть офиса.
ifconfig -a:

Код: Выделить всё

eth0      Link encap:Ethernet  HWaddr 00:1D:7D:A2:A4:62
          inet addr:192.168.0.92  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1200  Metric:1
          RX packets:16415187 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19261530 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10478499515 (9993.0 Mb)  TX bytes:14291128969 (13629.0 Mb)
          Interrupt:17 Base address:0x6000

eth3      Link encap:Ethernet  HWaddr 00:07:E9:0F:82:EC
          inet addr:192.168.20.1  Bcast:192.168.20.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1200  Metric:1
          RX packets:21538050 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15501044 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:18575877579 (17715.3 Mb)  TX bytes:7318395902 (6979.3 Mb)
          Base address:0xd000 Memory:f9020000-f9040000

Для тестирования пропускной способности делалось следующее:
взят комп (WinXP) в двадцатой подсети (антивирус отключен),
взят сервер (win2003 Std) в нулевой подсети (антивирус отключен),
установлена Samba на маршрутизаторе,
взят файл размером 4ГБ.
Замер пропускной способности делался TotalCommander'ом.
Скорость передачи файла для сервера и компа из их подсетей колебалась в районе 20МБ/с

Проводились следующие тесты:
Копирование файла с компа на маршрутизатор: скорость 2-6 МБ/сек
Копирование файла с сервера на маршрутизатор: скорость 20-23 МБ/с
Копирование файла с сервера на комп: скорость 13-16 МБ/с
Копирование файла с компа на сервер: 2-6 МБ/сек

Причем, если при передаче файла с компа на сервер одновременно копировать файл с сервера на комп, то скорость передачи с компа на сервер увеличивается до 13-16 МБ/сек, а скорость передачи с сервера на комп падает до 7-10 МБ/сек.

Пробовал менять местами интерфейсы на маршрутизаторе - эффект тот же, то есть проблема не в сетевых картах.

вывод 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: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
        Link detected: yes

вывод ethtool eth3:

Код: Выделить всё

Settings for eth3:
        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: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: umbg
        Wake-on: g
        Current message level: 0x00000007 (7)
        Link detected: yes


Собственно, вопрос в следующем: почему так?
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: Низкая пропускная способность Linux на GigabitEthernet

Сообщение yaleks »

Спасибо сказали:
illuminaty
Сообщения: 7

Re: Низкая пропускная способность Linux на GigabitEthernet

Сообщение illuminaty »

Читал, естественно..
А также http://www.securitylab.ru/analytics/243414.php и много чего другого
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Низкая пропускная способность Linux на GigabitEthernet

Сообщение rm_ »

А почему у Вас MTU на обоих интерфейсах 1200? Стандарт для Ethernet - 1500. Для гигабита же рекомендуется, при наличии поддержки со стороны железа, задействовать jumbo-фреймы, т.е. увеличивать до 7200 или 9000 (два наиболее часто встречающихся "потолка").

Кроме того, если в сети имеются устройства с различными значениями MTU, убрать некоторые потенциальные проблемы поможет

Код: Выделить всё

echo 2 > /proc/sys/net/ipv4/tcp_mtu_probing
Спасибо сказали:
garikello
Сообщения: 9
ОС: Debian

Re: Низкая пропускная способность Linux на GigabitEthernet

Сообщение garikello »

illuminaty писал(а):
22.08.2008 16:41
Для тестирования пропускной способности делалось следующее:
взят комп (WinXP) в двадцатой подсети (антивирус отключен),
взят сервер (win2003 Std) в нулевой подсети (антивирус отключен),
установлена Samba на маршрутизаторе,
взят файл размером 4ГБ.
Замер пропускной способности делался TotalCommander'ом.
Собственно, вопрос в следующем: почему так?

А может быть проблема в Самбе?
Пропробуй передавать файл неткатом, напрямую в сеть. На приёмной стороне писать входящие данные в /dev/null.
Спасибо сказали:
Аватара пользователя
SK_666
Сообщения: 58
ОС: open SUSE 10.3, RHEL5

Re: Низкая пропускная способность Linux на GigabitEthernet

Сообщение SK_666 »

А может быть проблема в Самбе?
Пропробуй передавать файл неткатом, напрямую в сеть. На приёмной стороне писать входящие данные в /dev/null.

а еще лучше iperf или что-нибудь подобное
Спасибо сказали:
illuminaty
Сообщения: 7

Re: Низкая пропускная способность Linux на GigabitEthernet

Сообщение illuminaty »

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