Erneut Problem: bonding | geringer Datendurchsatz | rsync

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Erneut Problem: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 30.04.2014 07:45:21

Ich versuche den Datendurchsatz zwischen zwei Servern zu erhöhen, da ich wenige, aber sehr große Dateien synchronisieren muss ( 2 files á 200 GB).

Ich habe mich daher daran versucht, jeweils 2 Gigabit Netzwerkkarten (eth1/eth2) mit Crossover-Cat-5-Kabeln zu verbindung und bonding einzurichten:

Code: Alles auswählen

/etc/network/interfaces:
(...)
auto eth1
iface eth1 inet manual
bond-master bond0

auto eth2
iface eth2 inet manual
bond-master bond0

auto bond0
     iface bond0 inet static
     address 192.168.2.1
     netmask 255.255.255.0
     bond-mode 802.3ad # auch mit mode 0 probiert
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200
     bond-lacp-rate 4
     bond-slaves none
Die Datei ist auf dem anderen Server identisch (mit Ausnahme der IP-Adresse, die lautet auf 192.168.2.2)

ethtool zeigt auch an, dass jeweils beide Netzwerkkarten mit 1000 Mb/s erkannt werden:

Code: Alles auswählen

Settings for eth1:
        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
Das routing funktioniert auch:

Code: Alles auswählen

192.168.0.0       *               255.255.255.0   U     0      0        0 eth0
192.168.2.0       *               255.255.255.0   U     0      0        0 bond0
Der Datendurchsatz ist aber schlechter als vor dem bonding. Es ist eine dritte Netwertkkarte (eth0) verbaut, die als Vergleich "Normal" über den Switch verkabelt ist und bei dieser ist der Durchsatz höher, als bei den gekoppelten 2 Karten:


über bond0/crossover:

Code: Alles auswählen

netperf -H 192.168.2.1 -p 12865 -l 5 -f M:

Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    5.02       57.71
Über eth0/switch

Code: Alles auswählen

netperf -H 192.168.0.1 -p 12865 -l 5 -f M:

Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    5.04       70.02
Kann mir jemand helfen, wo ich das Problem suchen kann?
Zuletzt geändert von Mona am 25.05.2014 10:04:31, insgesamt 2-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von rendegast » 30.04.2014 17:55:31

Hier sieht es etwas anders aus, https://help.ubuntu.com/community/UbuntuBonding:

Code: Alles auswählen

auto eth0
...

auto eth1
...

auto bond0
...
# bond0 uses standard IEEE 802.3ad LACP bonding protocol
bond-mode 4
bond-miimon 100
bond-lacp-rate 1
bond-slaves eth0 eth1
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von habakug » 30.04.2014 18:26:30

Hallo!

Es geht auch so:

Code: Alles auswählen

# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
        options bonding mode=4 miimon=100 lacp_rate=1
# echo -e "bonding\nmii" >> /etc/modules
# cat /etc/network/interfaces
auto eth0
    iface eth0 inet manual
    bond-master bond0
auto eth1
     iface eth1 inet manual
     bond-master bond0
auto bond0
     iface bond0 inet static
     address 192.168.1.10
     gateway 192.168.1.1
     netmask 255.255.255.0
     bond-mode 802.3ad
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200
     bond-lacp-rate 4
     bond-slaves none
Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 02.05.2014 03:18:27

Ich habe ehrlicherweise nicht erkannt, inwiefern sich die Angaben von meinen unterscheiden, habe jetzt aber einfach mal copy/paste gemacht, es hat sich aber leider gar nichts geändert.

Code: Alles auswählen

cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
        options bonding mode=4 miimon=100 lacp_rate=1

Code: Alles auswählen

cat /etc/modules
(...)
bonding
mii

Code: Alles auswählen

cat /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet manual
bond-master bond0

auto eth2
iface eth2 inet manual
bond-master bond0

auto bond0
     iface bond0 inet static
     address 192.168.1.1
     gateway 192.168.1.10
     netmask 255.255.255.0
     bond-mode 802.3ad
     bond-miimon 100
     bond-downdelay 200
     bond-updelay 200
     bond-lacp-rate 4
     bond-slaves none
Auf dem anderen Server sind alle Dateien identisch, bis auf

Code: Alles auswählen

cat /etc/network/interfaces:

     address 192.168.1.10
     gateway 192.168.1.1
Der Datendurchsatz ist wieder der gleich (niedrige):

Code: Alles auswählen

netperf -H 192.168.1.10 -p 12865 -l 5 -f M:


TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.10 (192.168.1.10) port 0 AF_INET : demo
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    5.02       58.00

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von dufty2 » 02.05.2014 05:51:16

Hi,

wir hatten sowas erst kürzlich hier diskutiert:
viewtopic.php?f=30&t=148669

Bin auch im Deinen Fall der Meinung, dass
bond-mode 0 ( balance-rr )
für maximalen Durchsatz (insbesondere einer einzelnen Verbindung) gewählt werden sollte.

Ein
gateway 192.168.x.y
sollte eingentlich nicht gewählt werden, da Du es vermutlich schon bei Deiner eth0 vorhanden ist und eth1/eth2 nur im lokalen Netz zum kopieren gedacht sind, richtig?

70 MB/s selbst für die einzelne eth0 scheint mir etwas niedrig zu sein, hätte 100+ erwartet.

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 02.05.2014 06:25:48

Gateway gelöscht, Mode auf 0 geändert

Code: Alles auswählen

auto bond0
iface bond0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    slaves eth1 eth2
    bond_mode 0
    bond_miimon 100
    bond_downdelay 200
    bond_updelay 200
exakt der gleiche Datendurchsatz:

Code: Alles auswählen

netperf -H 192.168.2.2 -p 12865 -l 5 -f M

Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    5.01       47.85

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von dufty2 » 02.05.2014 06:30:39

Und wie schaut Deine
/etc/modprobe.d/bonding.conf
aus?

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 02.05.2014 06:39:01

Code: Alles auswählen

cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
        options bonding mode=0 miimon=100 lacp_rate=1

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von dufty2 » 02.05.2014 06:55:25

Das lacp_rate würd ich rausnehmen, befürchte fast, es wird aber auch nix bringen.

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 02.05.2014 08:32:08

Nein, das hat leider auch nichts gebracht

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von PatrickOliver » 02.05.2014 11:45:58

Interessantes Thema und ich hoffe, dass der/die TE weiterhin hier rein schreibt.
Ich konnte mein Problem mit 802.3ad nämlich nicht lösen.

Im Modus balance-rr gibt es btw. 50% Paketverluste, wenn man von zwei NICs im Bond ein Interface trennt.

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 03.05.2014 10:28:21

Der Eintrag in /etc/modprobe.d/bonding.conf ist wohl seit squeeze nicht mehr notwendig (https://wiki.debian.org/Bonding). Habe den Eintrag daher gelöscht, das Netzwerk genau so, wie beschrieben konfiguriert

Code: Alles auswählen

auto eth0
iface eth0 inet dhcp

auto bond0

iface bond0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    network 192.168.2.0
    slaves eth1 eth2
    bond_mode 0
    bond_miimon 100
    bond_downdelay 200
    bond_updelay 200
und beide Server neu gestartet.

Das Netzwerk ist da:

Code: Alles auswählen

ifconfig -a
bond0     Link encap:Ethernet  Hardware Adresse 28:10:7b:bb:c0:6f
          inet Adresse:192.168.2.1  Bcast:192.168.2.255  Maske:255.255.255.0
          inet6-Adresse: fe80::2a10:7bff:febb:c06f/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metrik:1
          RX packets:1043778 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1044594 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:343641955 (327.7 MiB)  TX bytes:1334457636 (1.2 GiB)

eth0      Link encap:Ethernet  Hardware Adresse 00:1b:21:83:f0:67
          inet Adresse:192.168.0.6  Bcast:192.168.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::21b:21ff:fe83:f067/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:141342 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15113 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:7472846 (7.1 MiB)  TX bytes:751161621 (716.3 MiB)

eth1      Link encap:Ethernet  Hardware Adresse 28:10:7b:bb:c0:6f
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metrik:1
          RX packets:521889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:522298 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:171812652 (163.8 MiB)  TX bytes:667243236 (636.3 MiB)
          Interrupt:21 Basisadresse:0x8000

eth2      Link encap:Ethernet  Hardware Adresse 28:10:7b:bb:c0:6f
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metrik:1
          RX packets:521889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:522296 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:171829303 (163.8 MiB)  TX bytes:667214400 (636.3 MiB)
          Interrupt:22 Basisadresse:0xa000

Code: Alles auswählen

cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 28:10:7b:bb:c0:6f
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 9c:d6:43:90:f7:f7
Slave queue ID: 0
Routing sieht auch gut aus

Code: Alles auswählen

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
default         <name router>			0.0.0.0         UG    0      0        0 eth0
192.168.0.0        *            255.255.255.0   U     0      0        0 eth0
192.168.2.0       *              255.255.255.0   U     0      0        0 bond0
Aber es bleibt dabei, der Datendurchsatz ist extrem schlecht :(

Code: Alles auswählen

iperf -c 192.168.2.2 -P 10
------------------------------------------------------------
Client connecting to 192.168.2.2, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[ 12] local 192.168.2.1 port 35832 connected with 192.168.2.2 port 5001
[  3] local 192.168.2.1 port 35822 connected with 192.168.2.2 port 5001
[  5] local 192.168.2.1 port 35823 connected with 192.168.2.2 port 5001
[  6] local 192.168.2.1 port 35825 connected with 192.168.2.2 port 5001
[  4] local 192.168.2.1 port 35824 connected with 192.168.2.2 port 5001
[  7] local 192.168.2.1 port 35826 connected with 192.168.2.2 port 5001
[  9] local 192.168.2.1 port 35828 connected with 192.168.2.2 port 5001
[ 10] local 192.168.2.1 port 35830 connected with 192.168.2.2 port 5001
[  8] local 192.168.2.1 port 35829 connected with 192.168.2.2 port 5001
[ 11] local 192.168.2.1 port 35831 connected with 192.168.2.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  54.5 MBytes  45.7 Mbits/sec
[  5]  0.0-10.0 sec  46.1 MBytes  38.6 Mbits/sec
[  9]  0.0-10.0 sec  51.8 MBytes  43.3 Mbits/sec
[  8]  0.0-10.0 sec  48.6 MBytes  40.7 Mbits/sec
[ 12]  0.0-10.0 sec  42.8 MBytes  35.8 Mbits/sec
[ 10]  0.0-10.0 sec  42.5 MBytes  35.5 Mbits/sec
[  7]  0.0-10.1 sec  47.0 MBytes  39.2 Mbits/sec
[ 11]  0.0-10.1 sec  42.6 MBytes  35.6 Mbits/sec
[  4]  0.0-10.1 sec  48.9 MBytes  40.7 Mbits/sec
[  6]  0.0-10.1 sec  48.9 MBytes  40.7 Mbits/sec
[SUM]  0.0-10.1 sec   474 MBytes   394 Mbits/sec

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von PatrickOliver » 05.05.2014 14:03:35

/etc/network/interfaces

Code: Alles auswählen

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
        bond-master bond0

auto eth1
iface eth1 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        address 192.168.83.226
        network 255.255.255.0
        gateway 192.168.83.1
        bond-mode 4
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-lacp-rate 1
        bond-slaves none
/proc/net/bonding/bond0

Code: Alles auswählen

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 2
        Number of ports: 2
        Actor Key: 17
        Partner Key: 56
        Partner Mac Address: 94:0c:6d:ca:c9:6a

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:57:16:80
Aggregator ID: 2
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:57:16:81
Aggregator ID: 2
Slave queue ID: 0

Code: Alles auswählen

iperf -c  192.168.83.226
------------------------------------------------------------
Client connecting to 192.168.83.226, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  3] local 192.168.83.227 port 50683 connected with 192.168.83.226 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   943 Mbits/sec

Code: Alles auswählen

 iperf -c  192.168.83.226 -P 10
------------------------------------------------------------
Client connecting to 192.168.83.226, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[ 12] local 192.168.83.227 port 50704 connected with 192.168.83.226 port 5001
[  3] local 192.168.83.227 port 50695 connected with 192.168.83.226 port 5001
[  5] local 192.168.83.227 port 50697 connected with 192.168.83.226 port 5001
[  4] local 192.168.83.227 port 50696 connected with 192.168.83.226 port 5001
[  8] local 192.168.83.227 port 50700 connected with 192.168.83.226 port 5001
[  7] local 192.168.83.227 port 50699 connected with 192.168.83.226 port 5001
[  9] local 192.168.83.227 port 50701 connected with 192.168.83.226 port 5001
[ 10] local 192.168.83.227 port 50702 connected with 192.168.83.226 port 5001
[  6] local 192.168.83.227 port 50698 connected with 192.168.83.226 port 5001
[ 11] local 192.168.83.227 port 50703 connected with 192.168.83.226 port 5001
[ ID] Interval       Transfer     Bandwidth
[ 12]  0.0-10.0 sec   124 MBytes   104 Mbits/sec
[  7]  0.0-10.0 sec   118 MBytes  99.3 Mbits/sec
[  3]  0.0-10.0 sec   114 MBytes  95.1 Mbits/sec
[ 10]  0.0-10.0 sec   105 MBytes  87.9 Mbits/sec
[  5]  0.0-10.1 sec   114 MBytes  94.8 Mbits/sec
[  4]  0.0-10.1 sec   116 MBytes  96.8 Mbits/sec
[  9]  0.0-10.1 sec   115 MBytes  95.6 Mbits/sec
[ 11]  0.0-10.1 sec   117 MBytes  97.4 Mbits/sec
[  8]  0.0-10.1 sec   116 MBytes  96.5 Mbits/sec
[  6]  0.0-10.2 sec   113 MBytes  92.8 Mbits/sec
[SUM]  0.0-10.2 sec  1.13 GBytes   949 Mbits/sec
Ich nutze mein eth0 und/oder eth1 nur im Bond.
Bekommst du auch nur 394 Mbits/sec, wenn du gar kein Bonding konfigurierst?
Also auf beiden Seiten kein Bonding!

Nachtrag:
Iperf -c habe ich natürlich von einem zweiten Node gestartet, der identisch konfiguriert ist.

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 08.05.2014 18:46:45

Also ich verstehe es einfach nicht.

Ich habe die Bündelung aufgehoben und die Karten einzelnd miteinander verbunden:

Server1

Code: Alles auswählen

auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.2.1
netmask 255.255.255.0
Server2

Code: Alles auswählen

auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.2.2
netmask 255.255.255.0
Der Durchsatz ist hier auch nur

Code: Alles auswählen

[SUM]  0.0-10.1 sec   591 MBytes   493 Mbits/sec
Ich habe dann alle Crossover-Kabel gegen nagelneue Crossover-CAT6-Patchkabel ausgetauscht. Keine Änderung.

Die verbauten D-Link Netzwertkkarten haben ich dann ebenfalls durch nagelneue Intel e1000 Netzwerkkarten getauscht. Das hat den Durchsatz minimla erhöht:

Code: Alles auswählen

[SUM]  0.0-10.3 sec   734 MBytes   595 Mbits/sec
Es ist aber weit von den 1Gigabit entfernt.

Kann es irgendwie daran liegen, dass es jeweils 2 Xen-Server sind? Irgendjemand sonst noch eine Idee?

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von PatrickOliver » 09.05.2014 09:07:16

Ggf. kannst du dank Auto-MDI-X ein normales CAD6 Kabel testen?
Die NICs laufen im Full-Duplex und werden auch nicht über den PCI-Port limitiert?
Ggf. eine Art "Quality of Service" auf einem der Nodes (iptables, tc) konfiguriert?
Ich werfe einfach mal alles in den Raum, was mir grad so durch den Kopf rauscht ;-)

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von gbotti » 09.05.2014 09:18:19

Welcher Prozessor ist denn in den Geräten? Sind das PCI-Express oder PCI-X-Karten?
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 09.05.2014 10:21:08

Der Server, auf dem ich das Problem vermute, hat 6 CPUs dieser Art:

Code: Alles auswählen

processor       : [0-5]
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 10
model name      : AMD Phenom(tm) II X6 1075T Processor
stepping        : 0
microcode       : 0x10000bf
cpu MHz         : 800.000
cache size      : 512 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 6
wp              : yes
flags           : fpu de tsc msr pae cx8 apic cmov pat clflush mmx fxsr sse sse2                                                                                                              ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow constant_tsc rep_good nopl nons                                                                                                             top_tsc extd_apicid pni cx16 popcnt hypervisor lahf_lm cmp_legacy extapic cr8_le                                                                                                             gacy abm sse4a misalignsse 3dnowprefetch cpb hw_pstate
bogomips        : 6026.57
TLB size        : 1024 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate [9]
Es sind 3 PCI Netzwerkkarten:

Code: Alles auswählen

04:05.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)
04:06.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)
04:07.0 Ethernet controller: D-Link System Inc DGE-528T Gigabit Ethernet Adapter (rev 10)
Die Karten laufen im Vollduplex Mode

Code: Alles auswählen

ethtool eth1
Settings for eth1:
(...)
        Speed: 1000Mb/s
        Duplex: Full
        Link detected: yes

ethtool eth2
Settings for eth2:
(...)
        Speed: 1000Mb/s
        Duplex: Full
        Link detected: yes
iptables ist weitesgehend unkonfiguriert

Code: Alles auswählen

iptables -L -v
Chain INPUT (policy ACCEPT 7935 packets, 965K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
33727 4695K ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-out vif4.0 --physdev-is-bridged
33331 4835K ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-in vif4.0 --physdev-is-bridged
 7776  986K ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-out vif3.0 --physdev-is-bridged
 4112  466K ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-in vif3.0 --physdev-is-bridged
 346K 2178M ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-out vif2.0 --physdev-is-bridged
 221K 2179M ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-in vif2.0 --physdev-is-bridged
 708K   76M ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-out vif1.0 --physdev-is-bridged
 652K 1279M ACCEPT     all  --  any    any     anywhere             anywhere             PHYSDEV match --physdev-in vif1.0 --physdev-is-bridged

Chain OUTPUT (policy ACCEPT 4310 packets, 535K bytes)
 pkts bytes target     prot opt in     out     source               destination
ipv6 habe ich auch deaktiviert (https://wiki.debian.org/DebianIPv6#How_to_turn_off_IPv6), hat auch nichts gebracht.
Zuletzt geändert von Mona am 09.05.2014 10:50:47, insgesamt 1-mal geändert.

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von gbotti » 09.05.2014 10:29:21

Das wird das Problem sein.

Theoretisch kann PCI (wenn ich mich recht erinnere) bis zu 133 MB/s übertragen. Da sich aber alle PCI-Karten den selben PCI-Bus teilen müssen, wird die Geschwindigkeit auch entsprechend langsamer...

Das selbe Problem hatte ich hier auch mal, dann habe ich die günstigsten Intel PCI-Express Gigabit-Karten verwendet und hab um einiges höhere Geschwindigkeiten erzielt.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von PatrickOliver » 09.05.2014 11:36:04

Alle PCI-Karten bis auf eine NIC raus und Ergebnisse posten?

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von gbotti » 09.05.2014 11:46:35

Es gibt noch mehr PCI-Geräte als die, die gesteckt sind... Eventuell ist auch die Northbridge der Flaschenhals. Das war nie für derartige Datendurchsätze konzipiert. Deswegen gab es ja dann AGP für die Grafikkarten und dann PCIE
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von PatrickOliver » 13.05.2014 15:13:07

Mona:
Gibt es von deiner Seite neue Erkenntnisse?

Code: Alles auswählen

root@kvm23-1:/# aptitude show ifenslave-2.6 | grep -i version
Version: 1.1.0-20
root@kvm23-1:/# uname -a
Linux kvm23-1 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u1 x86_64 GNU/Linux
Ich für meinen Teil benötige eine /etc/modprobe.d/bonding.conf

Code: Alles auswählen

alias bond0 bonding
        options bonding mode=4 miimon=100 lacp_rate=1
Zudem habe ich noch die /etc/modules erweitert

Code: Alles auswählen

loop
bonding
mii
Eine meiner /etc/network/interfaces hatte ich ja schon gepostet

Code: Alles auswählen

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
        bond-master bond0

auto eth2
iface eth2 inet manual
        bond-master bond0

auto bond0
iface bond0 inet static
        address 192.168.83.224
        network 255.255.255.0
        gateway 192.168.83.1
        bond-mode 4
        bond-lacp-rate 1
        bond-miimon 100
        bond-downdelay 200
        bond-updelay 200
        bond-slaves none
Und nach dem ich meinen Switch entsprechend konfiguriert habe, schaut meine /proc/net/bonding/bond0 wie folgt aus.

Code: Alles auswählen

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 200
Down Delay (ms): 200

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 4
        Partner Mac Address: 00:12:cf:f9:3d:d4

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:de:a2:88
Aggregator ID: 1
Slave queue ID: 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:25:90:de:a2:8a
Aggregator ID: 1
Slave queue ID: 0
Trotzdem, mehr als ein GBit/s bekomme ich nicht hin :-(

Code: Alles auswählen

root@kvm23-1:/# netperf -H 192.168.83.225  -p 12865 -l 5 -f M
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.83.225 (192.168.83.225) port 0 AF_INET : demo
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    5.02      112.15
Konntest du inzwischen eine Verbesserung über 802.3ad erzielen?

Nachtrag:
Lt. IPTraf geht der gesamte Netzverkehr über nur eine Schnittstelle.
Lasse ich zwei unterschiedliche Dienste laufen, ergibt das in der Summe auch keine Verbesserung.

Gleichzeitig:

Code: Alles auswählen

root@kvm23-1:/# iperf -c 192.168.83.225 -P 4
------------------------------------------------------------
Client connecting to 192.168.83.225, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  3] local 192.168.83.224 port 39024 connected with 192.168.83.225 port 5001
[  5] local 192.168.83.224 port 39022 connected with 192.168.83.225 port 5001
[  4] local 192.168.83.224 port 39023 connected with 192.168.83.225 port 5001
[  6] local 192.168.83.224 port 39028 connected with 192.168.83.225 port 5001
[ ID] Interval       Transfer     Bandwidth
[  6]  0.0-10.0 sec   280 MBytes   235 Mbits/sec
[  5]  0.0-10.0 sec   280 MBytes   234 Mbits/sec
[  3]  0.0-10.0 sec   280 MBytes   234 Mbits/sec
[  4]  0.0-10.1 sec   287 MBytes   239 Mbits/sec
[SUM]  0.0-10.1 sec  1.10 GBytes   939 Mbits/sec

Code: Alles auswählen

root@kvm23-1:/t# netperf -H 192.168.83.225  -p 12865 -l 5 -f M
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.83.225 (192.168.83.225) port 0 AF_INET : demo
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    MBytes/sec

 87380  16384  16384    5.22        1.66

PatrickOliver
Beiträge: 70
Registriert: 03.04.2014 10:54:32

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von PatrickOliver » 13.05.2014 16:07:42

Noch einmal ich.
Inzwischen habe ich drei Nodes nach dem o.g. Muster konfiguriert.
Server:

Code: Alles auswählen

root@kvm23-1:/# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.83.224 port 5001 connected with 192.168.83.225 port 52178
[  5] local 192.168.83.224 port 5001 connected with 192.168.83.226 port 55245
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
[  5]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec
Node 1 und Node 2, welche gleichzeitig auf den Server zugreifen:

Code: Alles auswählen

root@kvm23-2:/# iperf -c 192.168.83.224
------------------------------------------------------------
Client connecting to 192.168.83.224, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  3] local 192.168.83.225 port 52178 connected with 192.168.83.224 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   944 Mbits/sec

Code: Alles auswählen

root@kvm23-3:/# iperf -c 192.168.83.224
------------------------------------------------------------
Client connecting to 192.168.83.224, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[  3] local 192.168.83.226 port 55245 connected with 192.168.83.224 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   944 Mbits/sec
Ich bin mir fast sicher, dass ich soetwas schon mal getestet hatte.
Schaut nach zwei GBit/s aus :-)

dufty2
Beiträge: 1714
Registriert: 22.12.2013 16:41:16

Re: bonding | geringer Datendurchsatz | rsync

Beitrag von dufty2 » 13.05.2014 19:18:16

PatrickOliver hat geschrieben: Schaut nach zwei GBit/s aus :-)
Ja ja, aber halt für zwei und nicht für eine Verbindung alleine.

Anyway, die theoretische Grenze von 949 Mbit/s erreicht sie/er ja nicht mal auf einen Interface ganz allein,
und wenn der PCI-Bus (was bei dieser 0,8 GHz Hardware nicht mal so verwunderlich wäre) den Flaschhals darstellt,
hilft auch "die ganze Bonderei" nicht mehr.

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: gelöst: bonding | geringer Datendurchsatz | rsync

Beitrag von Mona » 19.05.2014 23:36:00

Vielen Dank für alle Hilfestellungen, es war tatsächlich die Hardware. Heute sind 4 nagelneue PCI-Express-Karten endlich eingetroffen und nach deren EInbau erhielt ich sofort fast meine 2 Gigabit. Wunderbar!

Mona
Beiträge: 46
Registriert: 08.04.2006 12:13:57

Re: Erneut Problem: bonding | geringer Datendurchsatz | rsyn

Beitrag von Mona » 25.05.2014 10:24:45

Nach der tollen Hilfe hier habe ich die Netzwerkkarten gegen PCI-E-KArten ausgetauscht und hielt das PRoblem zunächst für gelöst.

iperf zeigt auch einen fast optimalen Datendurchsatz an:

Code: Alles auswählen


# iperf -c 10.44.0.2 -P 10
------------------------------------------------------------
Client connecting to 10.44.0.2, TCP port 5001
TCP window size: 23.5 KByte (default)
------------------------------------------------------------
[ 12] local 10.44.0.1 port 42155 connected with 10.44.0.2 port 5001
[  3] local 10.44.0.1 port 42146 connected with 10.44.0.2 port 5001
[  4] local 10.44.0.1 port 42147 connected with 10.44.0.2 port 5001
[  5] local 10.44.0.1 port 42148 connected with 10.44.0.2 port 5001
[  6] local 10.44.0.1 port 42149 connected with 10.44.0.2 port 5001
[  7] local 10.44.0.1 port 42150 connected with 10.44.0.2 port 5001
[  8] local 10.44.0.1 port 42151 connected with 10.44.0.2 port 5001
[  9] local 10.44.0.1 port 42152 connected with 10.44.0.2 port 5001
[ 10] local 10.44.0.1 port 42153 connected with 10.44.0.2 port 5001
[ 11] local 10.44.0.1 port 42154 connected with 10.44.0.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   279 MBytes   234 Mbits/sec
[  5]  0.0-10.0 sec   192 MBytes   161 Mbits/sec
[  6]  0.0-10.0 sec   212 MBytes   177 Mbits/sec
[  7]  0.0-10.0 sec   238 MBytes   199 Mbits/sec
[  9]  0.0-10.0 sec   212 MBytes   177 Mbits/sec
[  3]  0.0-10.0 sec   241 MBytes   202 Mbits/sec
[  8]  0.0-10.0 sec   203 MBytes   170 Mbits/sec
[ 10]  0.0-10.0 sec   210 MBytes   176 Mbits/sec
[ 11]  0.0-10.0 sec   247 MBytes   207 Mbits/sec
[ 12]  0.0-10.0 sec   201 MBytes   168 Mbits/sec
[SUM]  0.0-10.0 sec  2.18 GBytes  1.87 Gbits/sec
Nach einem Blick in die logfiles der vergangenen Woche musste ich jedoch feststellen, dass die Backups nicht wirklich schneller waren. Bei einem manuellen Test musste ich auch feststellen, dass sowohl rsync als auch scp kaum über 40 MB/s kommen, während die Geschwindigkeit bei gekoppelten Gigabit-Karten bei über 200 liegen müsste.

Code: Alles auswählen

# rsync -W --progress testfile 10.44.0.2:/tmp
(...)
81330176   2%   38.77MB/s    0:01:16

Code: Alles auswählen

# scp testfile 10.44.0.2:/tmp
(...)
testfile 19%  587MB  48.6MB/s   00:48 ETA
CPU und RAM habe ich als Fehlerursache schon mal ausgeschlossen (Die CPUs pendeln zwischen 30% und 50%, der Speicher wird nur minimal genutzt).

Hat jemand eine Idee, wo das bottleneck sein könnte?

Antworten