Αποστολέας Θέμα: Ταχύτητες gigabit με τους υπάρχοντες 100Mbps clients!  (Αναγνώστηκε 1956 φορές)

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5658
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Σε ένα πρόσφατο μήνυμα της λίστας ltsp-discuss διάβασα μια πολύτιμη συμβουλή για LTSP: ότι η απενεργοποίηση του flow control μπορεί να δεκαπλασιάσει την ταχύτητα του δικτύου, σε δίκτυα μεικτής ταχύτητας 100/1000!

Θεωρητικά, με
  • ένα φτηνό switch με μία μόνο θύρα gigabit (π.χ. 60 ευρώ),
  • μια κάρτα gigabit στον LTSP server,
  • και τις υπάρχουσες κάρτες 100Mbps των clients,
θα έπρεπε να μπορεί ο server να στέλνει π.χ. από 90Mbps σε 10 clients ταυτόχρονα, ώστε συνολικά να έχουμε 900Mbps bandwidth.

Δυστυχώς στην πράξη αυτό δε συνέβαινε (στα εργαστήρια που έγινε benchmark): το συνολικό bandwidth ήταν λιγότερο από 100Mbps! Έτσι προτεινόταν αναβάθμιση των clients σε gigabit, αλλά και switch με όλες τις θύρες gigabit (όχι μόνο μία), και επομένως χρειαζόταν και αρκετά χρήματα αλλά και κόπος για την αλλαγή των καρτών των clients.

Ο λόγος που δε συνέβαινε, ήταν το ότι το flow control ήταν ενεργοποιημένο. Δεν θα επιχειρήσω να το περιγράψω εδώ, να μια αναλυτική εξήγηση: http://virtualthreads.blogspot.com/2006/02/beware-ethernet-flow-control.html
Η απενεργοποίηση του flow control μπορεί να γίνει είτε από το switch, εάν είναι managed,
είτε από την κάρτα δικτύου του server, με την εντολή ethtool -A autoneg off rx off, εάν το υποστηρίζει ο driver της (για παράδειγμα οι Intel το υποστηρίζουν).
Αυτό είναι όλο κι όλο, με μία και μόνη εντολή έχουμε 10πλάσιες ταχύτητες!

Τα switch που έρχονται με το πρόγραμμα ευρυζωνικής σύνδεσης των Δήμων έχουν δύο θύρες gigabit, και είναι managed, επομένως μπορούμε πολύ εύκολα να απενεργοποιήσουμε το flow control. Στις περισσότερες λοιπόν περιπτώσεις δεν χρειάζεται καθόλου νέο υλικό για να πετύχουμε gigabit ταχύτητες στο εργαστήριό μας.

Wizard

  • Επισκέπτης
Απ: Ταχύτητες gigabit με τους υπάρχοντες 100Mbps clients!
« Απάντηση #1 στις: 03 Μάρ 2009, 04:41:06 μμ »
Πολύ ενδιαφέρον! Το θέμα είναι πώς θα ξέρουμε ποιων καρτών οι drivers υποστηρίζουν την εντολή. Υπάρχει κάποιο utility για έλεγχο του συνολικού bandwidth;

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5658
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Ταχύτητες gigabit με τους υπάρχοντες 100Mbps clients!
« Απάντηση #2 στις: 03 Μάρ 2009, 06:33:50 μμ »
Ανέβασα εδώ: https://help.ubuntu.com/community/UbuntuLTSP/FlowControl
ό,τι γνωρίζω μέχρι στιγμής περί του θέματος, αν βρείτε κάτι συμπληρώστε το!

Με ethtool -a eth0 βλέπεις αν το υποστηρίζει η κάρτα σου (τι κάρτα έχεις στο server; ).

Νομίζω ότι όσες δεν υποστηρίζουν ethtool, θα υποστηρίζουν το παλιότερο mii-tool, π.χ.
sudo mii-tool eth0 -A 100baseTx-FD,100baseTx-HD,10baseT-FD,10baseT-HD
ώστε να μην κάνει advertise flow control (θα το ελέγξω την Πέμπτη για μια RealTec r8169 που έχω)

Για μέτρηση bandwidth χρησιμοποιώ το εξής:
sudo apt-get install netperf
sudo chroot /opt/ltsp/i386 apt-get install netperf
sudo ltsp-update-image


και στη συνέχεια από ένα τοπικό τερματικό σε όλους τους clients (μπορεί εύκολα να βγει ένα βάζοντας LDM_DEBUG_TERMINAL=True στο lts.conf) δίνω
netperf -c -C -H server -l 9999 -D 10,1

Έτσι το δίκτυο πιέζεται στα άκρα, και φαίνεται στην οθόνη των clients πόσο bandwidth τραβάει ο καθένας. Ενόσω τρέχει η παραπάνω εντολή μπορείς να δεις το συγκεντρωτικό bandwidth στον server με την εντολή
sudo iftop


Ένας πιο απλός τρόπος βέβαια είναι να βάλεις να παίξει ένα divx σε όλους τους clients ταυτόχρονα, λογικά η διαφορά θα είναι εμφανής με το μάτι! :)


Στη χειρότερη περίπτωση θα χρειαστεί μια νέα κάρτα στο server, αμελητέο ποσό σε σχέση με την αγορά switch και gigabit καρτών για όλους τους clients...

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 5658
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Ταχύτητες gigabit με τους υπάρχοντες 100Mbps clients!
« Απάντηση #3 στις: 05 Μάρ 2009, 07:26:46 μμ »
Το δοκίμασα αρκετά σήμερα.

Server: 2 χιλιάρες Intel κάρτες, 1 χιλιάρα Realtek, 1 κατοστάρα Realtek.
Switch: 2 χιλιάρες θύρες και 22 κατοστάρες θύρες.
Clients: κατοστάρες κάρτες διαφόρων τύπων σε 600MHz Celerons.

Αρχικά (1 μόνο κάρτα με το προεπιλεγμένο flow control on): 90 Mbps
Με bonding 4 καρτών: 370 Mbps
Με 1 μόνο κάρτα με flow control off: 900 Mbps χωρίς lag
Με bonding 2 καρτών με flow control off: 900 Mbps με lag

Το μόνο που με παραξένεψε ήταν ότι το bonding μαζί με το flow control off έκαναν τους clients να χάνουν μερικά καρέ κατά την αναπαραγωγή βίντεο. Επομένως πλέον χρησιμοποιώ μόνο τη μία κάρτα με flow control off και μπορώ να παίζω ταυτόχρονα σε 10 clients το παρακάτω βίντεο σε πλήρη οθόνη 1024x768 χωρίς να χάνονται καρέ:
wget -c http://movies.apple.com/movies/dreamworks/kung_fu_panda/kung_fu_panda-tlr1_h640w.mov

Επίσης το δοκίμασα με το laptop μου σαν server, με χιλιάρα broadcom κάρτα (tg3 driver) και flow control off, και είχα πάλι τα ίδια αποτελέσματα (900 Mbps χωρίς lag).

Με τη realtek και το mii-tool δεν κατάφερα κάτι, αλλά μια Intel έχει 25 ευρώ, και αφού χρειάζεται μόνο μία (για τον server μόνο) δεν αξίζει τον κόπο για περαιτέρω ψάξιμο...