Newsgroup: it.comp.os.linux.sys
Titolo: Problemi di Throughput con Bonding Balance-RR

Ciao a tutti, scrivo qui per avere qualche dritta.
Volevo fare un po' di prove con il Bonding.
Obiettivo:
- far parlare 2 server a una velocità maggiore di 1gbit
- la velocità deve essere raggiunta su una sola connessione tcp
Da quanto leggo online, è possibile con il Bonding in modalità Balance-RR
- Ho preparato 2 pc, inserito 2 schede di rete gigabit ciascuno.
- installato Ubuntu 10.04 su entrambi
- applicate le seguenti config su entrambi (ovviamente con diverso ip, 
of course)
- creato il bonding mettendo quanto di seguito in /etc/network/interfaces
----------------------------------------
# The primary network interface
iface eth0 inet manual
iface eth1 inet manual
auto bond0
iface bond0 inet static
bond_miimon  100
bond_mode balance-rr
address  192.168.15.6
netmask  255.255.255.0
gateway  192.168.15.254
pre-up modprobe bonding
up /sbin/ifenslave bond0 eth0 eth1
down /sbin/ifenslave -d bond0 eth0 eth1
post-down rmmod bonding
----------------------------------------
- inserito queste righe in /etc/modprobe.d/aliases.conf
----------------------------------------
alias bond0 bonding
options mode=0 miimon=100 downdelay=200 updelay=200
----------------------------------------
- inserito questo in /etc/sysctl.conf (e provato anche con valori diversi)
----------------------------------------
net.ipv4.tcp_reordering = 127
----------------------------------------
Effettuate tutte le verifiche del caso, il bonding è funzionante, i dati 
vengono correttamente suddivisi sulle schede in entrambi i server e i 
trasferimenti funzionano.
Se scollego uno dei cavi di rete (è indifferente quale), il link resta up
Il problema è il throughput.
Ho eseguito diversi test con netperf - netserver (quindi lan to ram, gli 
hard disk non fanno da collo di bottiglia) e ottengo risultati del genere:
bonding totalmente disattivato, uso solo una scheda per ogni server --> 
circa 615mbit
bonding attivo, solo un cavo collegato --> circa 580mbit
bonding attivo, entrambi i cavi collegati --> circa 480 mbit
Suggerimenti? Posto che il trasferimento singolo non va al massimo 
teorico (e mi sta bene, visto che l'hardware non è roba 
ultraperformante, come scritto in seguito), mi aspetterei di vedere 
almeno un po' di boost, dal tentativo con bonding abilitato. Invece le 
prestazioni decadono.
Ho letto una marea di post e in tutti i casi si parlava di "abilitare il 
tcp reordering" (cosa che ho fatto), e in tutti i casi le prestazioni 
sono aumentate fino a quasi raddoppiare.
Aggiungo alcune note:
- L'hardware non è materiale server, ma comunque si tratta di pc 
abbastanza performanti (quadcore). Le schede di rete sono delle Zyxell 
con chipset Realtek 8169.
- Il collegamento tra i due server è fatto con dei cavi Cat 5e, diretto, 
senza switch in mezzo.
- La cpu non raggiunge mai il 100% durante i test (arriva al max al 20%)
L'unica cosa che mi è venuta in mente è relativa all'hardware...può 
essere che il bus pci (che, se non sbaglio, dovrebbe reggere 
133MByte/sec) non stia dietro ai trasferimenti?
Magari sui server i bus sono più di uno, mentre su motherboard client 
economiche (Asus P5Q) c'è solo un bus, condiviso tra tutte le porte?
Idee? Grazie mille a chi avrà voglia di darmi una mano :-)
Ciao!!!

 economiche (Asus P5Q) c'è solo un bus, condiviso tra tutte le porte?
Credo di averci preso.
Sono riuscito a recuperare due schede gigabit PCI express.
Quindi la configurazione finale è diventata:
server 1 --> 1 scheda gigabit pci (integrata), 1 scheda gigabit pci express
server 2 --> identico
- il throughput tcp su connessione singola si attesta sui 600mbit (mtu1500)
- il throughput tcp su connessione bonding arriva a 1000 mbit (mtu 
sempre 1500)
- Ho provato a cambiare l'mtu ma qualche scheda non la digerisce (ho 
provato diversi valori da 3000 a 7000, oltre non li accettano), in 
quanto il throughput cala a 1mbit.
- il throughput su test udp arriva a 1800 mbit in un senso, a 1100 
nell'altro (una delle due macchine è meno performante, probabilmente è 
lei che fa da collo di bottiglia. il test udp arriva 1100 quando si fa 
un send dalla macchina meno performante a quella più performante)
Appena ho la possibilità, provo con 4 schede pci express (2 + 2) un po' 
cazzute...e soprattutto che supportino mtu a 9000.

 cazzute...e soprattutto che supportino mtu a 9000.
tienici aggiornati, a me l'argomento interessa molto.
ciao.

 cazzute...e soprattutto che supportino mtu a 9000.
Sicuramente con schede di classe server avrai un ulteriore incremento di 
performance. Tuttavia stai attento che se vai oltre 2 schede potresti 
avere paradossalmente un degrado: tutto dipende da cosa devi farci 
passare ma con DRBD per esempio è così. Imho se ti servono più di 2 Gb 
ti conviene passare a una NIC 10Gb