Чрезвычайно медленная сеть передает в одном направлении

Передачи файлов с моего домашнего сервера (рабочий Сервер Ubuntu 12.04) к любому другому ПК на моей LAN (весь под управлением Windows 7) являются чрезвычайно медленными, но передачами файлов в другом направлении (загружающий на сервер), быстры.

Я наблюдал это и с Samba и с передачами SFTP, так решил проверить его с iperf и получил те же результаты. Вывод на сервере был похож на это:

iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.95 port 5001 connected with 192.168.1.82 port 1309
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   416 MBytes   349 Mbits/sec
------------------------------------------------------------
Client connecting to 192.168.1.82, TCP port 5001
TCP window size: 46.1 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.95 port 59704 connected with 192.168.1.82 port 5001
[  4]  0.0-12.2 sec  1.50 MBytes  1.03 Mbits/sec

Клиент (Моя Победа 7 пк) произвел этот вывод для того же выполнения:

iperf.exe -c 192.168.1.95 -r
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 192.168.1.95, TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.82 port 1309 connected with 192.168.1.95 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   416 MBytes   349 Mbits/sec
[  4] local 192.168.1.82 port 5001 connected with 192.168.1.95 port 59704
[  4]  0.0-12.2 sec  1.50 MBytes  1.03 Mbits/sec

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

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

Я приложил все усилия к Google вокруг подобных проблем, но я еще не нашел соответствующих решений. У кого-либо есть какие-либо идеи?


Следующее является некоторыми дампами соответствующих команд отладки, в случае, если они имеют любое применение для людей, более хорошо осведомленных, чем я.

ethtool производят для платы Ethernet на сервере:

ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Half 1000baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

Инструмент mii произвел:

sudo mii-tool
eth0: negotiated 1000baseT-HD flow-control, link ok

Список аппаратных средств возвращается lspci:

sudo lspci
00:00.0 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.1 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.2 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.3 Host bridge: VIA Technologies, Inc. PT890 Host Bridge
00:00.4 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:00.7 Host bridge: VIA Technologies, Inc. CN700/VN800/P4M800CE/Pro Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237/VX700 PCI Bridge
00:08.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)
00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)
00:0f.0 IDE interface: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:10.0 USB controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.1 USB controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.2 USB controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.3 USB controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)
00:10.4 USB controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
01:00.0 VGA compatible controller: VIA Technologies, Inc. CN700/P4M800 Pro/P4M800 CE/VN800 Graphics [S3 UniChrome Pro] (rev 01)

Список загруженных драйверов возвращается lsmod:

sudo lsmod
Module                  Size  Used by
usb_storage            39646  0
vesafb                 13516  1
ppdev                  12849  0
arc4                   12473  2
snd_via82xx            24718  0
gameport               15060  1 snd_via82xx
snd_ac97_codec        110213  1 snd_via82xx
b43                   342801  0
ac97_bus               12642  1 snd_ac97_codec
snd_pcm                80916  2 snd_via82xx,snd_ac97_codec
snd_timer              28931  1 snd_pcm
snd_page_alloc         14108  2 snd_via82xx,snd_pcm
snd_mpu401_uart        13865  1 snd_via82xx
snd_rawmidi            25424  1 snd_mpu401_uart
snd_seq_device         14172  1 snd_rawmidi
snd                    62218  7 snd_via82xx,snd_ac97_codec,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
mac80211              436493  1 b43
soundcore              14635  1 snd
serio_raw              13027  0
i2c_viapro             12969  0
cfg80211              178877  2 b43,mac80211
bcma                   25651  1 b43
parport_pc             32114  1
shpchp                 32265  0
mac_hid                13077  0
via_cputemp            13031  0
hwmon_vid              12723  1 via_cputemp
lp                     17455  0
parport                40930  3 ppdev,parport_pc,lp
pata_via               13428  0
ssb                    50691  1 b43
r8169                  56396  0
sata_via               13495  2

Информация о драйвере для Гигабитной карты:

sudo modinfo r8169
filename:       /lib/modules/3.2.0-51-generic-pae/kernel/drivers/net/ethernet/realtek/r8169.ko
version:        6.017.00-NAPI
license:        GPL
description:    RealTek RTL-8169 Gigabit Ethernet driver
author:         Realtek and the Linux r8169 crew <netdev@vger.kernel.org>
srcversion:     231149B837AF2B63F7C0271
alias:          pci:v00001186d00004300sv00001186sd00004C00bc*sc*i*
alias:          pci:v000010ECd00008169sv*sd*bc*sc*i*
alias:          pci:v000010ECd00008167sv*sd*bc*sc*i*
depends:
vermagic:       3.2.0-51-generic-pae SMP mod_unload modversions 686
parm:           speed:force phy operation. Deprecated by ethtool (8). (array of int)
parm:           duplex:force phy operation. Deprecated by ethtool (8). (array of int)
parm:           autoneg:force phy operation. Deprecated by ethtool (8). (array of int)
parm:           rx_copybreak:Copy breakpoint for copy-only-tiny-frames (int)
parm:           use_dac:Enable PCI DAC. Unsafe on 32 bit PCI slot. (int)
parm:           debug:Debug verbosity level (0=none, ..., 16=all) (int)

... и uname-a в придачу:

uname -a
Linux hotblack 3.2.0-51-generic-pae #77-Ubuntu SMP Wed Jul 24 20:40:32 UTC 2013 i686 i686 i386 GNU/Linux

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


Обновление

Из-за отсутствия лучшего способа протестировать другой драйвер, я также попытался ронять к более старому ядру на начальной загрузке, которая возвратила r8169 v2.3LK-NAPI, но проблема осталась тем же.

Я, однако, сделал интересное исследование. Если я использую ethtool для сдерживания карты к 100 МБ...

sudo ethtool -s eth0 speed 100 autoneg on duplex full
sudo ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000033 (51)
                               drv probe ifdown ifup
        Link detected: yes

... затем iperf показывает соединение, хорошо работающее в обоих направлениях:

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.95 port 5001 connected with 192.168.1.82 port 2437
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   105 MBytes  87.7 Mbits/sec
------------------------------------------------------------
Client connecting to 192.168.1.82, TCP port 5001
TCP window size: 83.9 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.95 port 40844 connected with 192.168.1.82 port 5001
[  4]  0.0-10.0 sec   113 MBytes  94.4 Mbits/sec

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

6
задан 6 August 2013 в 02:53

2 ответа

Я видел это раньше из-за несоответствия дуплекса. Спецификация для Gigabit ethernet требует, чтобы обе стороны использовали автосогласование, поэтому убедитесь, что сетевые адаптеры на сервере и клиентах настроены на автосогласование и одинаковы для портов коммутатора. Установка его на 1000 / Full явно не сделает этого.

Я вижу по одному из ваших выходов:

согласовано управление потоком 1000baseT-HD, ссылка в порядке

Это похоже на полудуплекс. Что происходит, когда обе стороны не настроены на автоматический режим, так это то, что фаза автосогласования между двумя соединениями правильно определяет скорость 1000 Мбит / с, но не может обнаружить дуплексный режим, поэтому используется полудуплексный режим по умолчанию. Таким образом, у вас есть два устройства, которые пытаются соединиться, одно в полнодуплексном режиме, а другое в полудуплексном. Конечным результатом является то, что трафик с одной стороны вызывает много ошибок пакетов, что вынуждает пакеты повторно отправляться и убивает скорость передачи в этом направлении.

Я исправил проблему между сервером и сетевым хранилищем таким образом, что для одной карты было установлено автоматическое, а для другой явно - 1000 / Full.

0
ответ дан 6 August 2013 в 02:53

У меня была подобная проблема на моей машине. Загрузка к машине была 2MB/s, в то время как загрузка от машины была только 55kB/s. Я попробовал все вышеупомянутые приемы, проверенные переключатели, кабели и т.д. и т.д., но ничто не работало. В конце, что решило мою проблему, должен был взлететь, плата Ethernet Администратора сети (установите managed=false в/etc/NetworkManager/NetworkManager.conf), и установите устройство вручную в/etc/network/interfaces

auto eth0
iface eth0 inet dhcp

Теперь я получаю 1MB/s в обоих направлениях.

0
ответ дан 6 August 2013 в 02:53

Другие вопросы по тегам:

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