Flow control: προσοχή στην αγορά switch και καρτών δικτύου

Ξεκίνησε από alkisg, 23 Δεκ 2010, 02:48:09 ΜΜ

« προηγούμενο - επόμενο »

gidarakos

Παράθεση από: alkisg στις 20 Δεκ 2012, 12:00:55 ΜΜ
Θα πρέπει να βλέπει κανονικά δίκτυο με την Atheros, όμως δεν θα σου κάνει δουλειά για LTSP server (εκτός κι αν τα πάντα είναι gigabit, ή αν έχεις πανάκριβο managed switch), οπότε θα χρειαστείς μια intel ή realtek.

Laptop με σκοπό να γίνει ltsp server 12.04 έχει ethernet 1000Mbit με chipset atheros! Με ένα managed switch 1000Mbit (απενεργοποιημένο το flow control) θα είναι ok ή ακόμα κ σε αυτή την περίπτωση θα έχουμε θέμα; Τα clients είναι 100Mbit.

alkisg

Θα είναι μια χαρά, όταν έχουμε managed switch με απενεργοποιημένο flow control δεν ασχολούμαστε με το θέμα καθόλου. :)

vovos

Παραθέτω και αυτή τη λύση με χρήση Express Card 34mm για laptop server (onboard 100άρα κάρτα) chipset Agere Et1310:
03:00.0 Ethernet controller [0200]: LSI Corporation ET-131x PCI-E Ethernet Controller [11c1:ed00] (rev 02)
	Subsystem: LSI Corporation ET-131x PCI-E Ethernet Controller [11c1:ed00]
	Kernel driver in use: et131x


Οι μετρήσεις έδωσαν:
[  5]	0.0-10.0	sec	90.0	MBytes	75,4	Mbits/sec
[  4]	0.0-10.0	sec	99.6	MBytes	83,5	Mbits/sec
[  6]	0.0-10.0	sec	94.5	MBytes	79,1	Mbits/sec
[  9]	0.0-10.0	sec	103	MBytes	86,2	Mbits/sec
[  8]	0.0-10.0	sec	101	MBytes	84,9	Mbits/sec
[ 11]	0.0-10.0	sec	108	MBytes	90	Mbits/sec
[  7]	0.0-10.0	sec	99.0	MBytes	82,7	Mbits/sec
[ 10]	0.0-10.0	sec	112	MBytes	93,9	Mbits/sec
[ 13]	0.0-10.0	sec	75.0	MBytes	62,7	Mbits/sec
[ 14]	0.0-10.0	sec	57.8	MBytes	48,3	Mbits/sec
[ 12]	0.0-10.0	sec	103	MBytes	85,8	Mbits/sec

Σύνολο δηλαδή 872,5Mbits/sec

Αν μπορείς Άλκη πρόσθεσέ την σαν λύση στο πρώτο post σου.

alkisg

Ανέστη αυτές οι μετρήσεις με ποιο switch έγιναν; Είναι σίγουρο ότι δεν έχει το ίδιο το switch απενεργοποιημένο το flow control; Αν μπορείς γράψε και το μοντέλο του switch...

Thanks για τη λύση, ξέρω κάποιους που την χρειάζονται!

vovos

#94
Το switch είναι το TP-LINK TL-SG1024D (όχι δηλαδή το 1024DE που είναι manageable switch). Όλοι οι clients είχαν απευθείας σύνδεση με αυτό. Από ότι έχω διαβάσει εδώ στο steki, το συγκεκριμένο έχει θέμα με το flow control αν η κάρτα του server δεν το απενεργοποιεί. Στο site της εταιρείας λέει:
Supports IEEE 802.3x flow control for Full Duplex mode and backpressure for Half Duplex mode.
Άρα έχει πρόβλημα με το flow control.

Ίσως να θυμάσαι το manageable switch CISCO Catalyst 2940 με μία θύρα 1Gbps και 8 100άρες που με είχες βοηθήσει να ρυθμίσω. Για αυτό έκανα χωριστή δοκιμή με όλους τους clients που έχω πάνω του, έτσι για να δω πόσο καλά τα πάει (ήξερα πλέον πως δεν είχα θέμα flow control με την νέα κάρτα). Όλα καλά και με αυτό.

Δημήτρης Γκίνης

Πλέον στο εργαστήριο έχω την εξής κατάσταση :

Switch: Gigabit TP-LINK TL-SG1024D

Κάρτα δικτύου server:

administrator@server:~$ lspci -nn -k | grep -A 2 Ethernet 
02:00.0 Ethernet controller [0200]: Qualcomm Atheros Attansic L1 Gigabit Ethernet [1969:1048] (rev b0) 
	Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8226] 
	Kernel driver in use: atl1


Clients: 5 με 1000ρες κάρτες και 5 με 100άρες

Μέτρηση ταχύτητας:

[ 11]  0.0-10.0 sec  27.4 MBytes  22.9 Mbits/sec 
[ 13]  0.0-10.0 sec  27.2 MBytes  22.8 Mbits/sec 
[  5]  0.0-10.1 sec  25.5 MBytes  21.3 Mbits/sec 
[  7]  0.0-10.0 sec  24.2 MBytes  20.3 Mbits/sec 
[ 10]  0.0-10.1 sec  27.2 MBytes  22.7 Mbits/sec 
[  8]  0.0-10.1 sec  27.8 MBytes  23.1 Mbits/sec 
[  4]  0.0-10.1 sec  28.4 MBytes  23.5 Mbits/sec 
[  9]  0.0-10.1 sec  20.5 MBytes  17.0 Mbits/sec 
[ 12]  0.0-10.1 sec  21.1 MBytes  17.5 Mbits/sec 
[  6]  0.0-10.1 sec  23.2 MBytes  19.3 Mbits/sec


Μπορώ να κάνω κάτι με τον server ή να αρχίσω να κοιτάω για άλλη κάρτα;

Αν ναι, αυτή μας κάνει;
TP-LINK TG-3468 GIGABIT PCIE NETWORK ADAPTER (τιμή κάτω από 10 ευρώ)


alkisg

Αν μπορείς δώσε κάπου/κάπως το TL-SG1024D και πάρε το TL-SG1024DE, θα σου λύσει όλα τα προβλήματα με τον καλύτερο τρόπο και δεν θα ξαναασχοληθείς με τα δικτυακά.

Αν όχι, πάρε μια gigabit κάρτα Intel, Broadcom ή Marvel για τον server, η TP-LINK έχει τσιπάκι Realtek και αυτές άλλοτε παίζουν έτσι κι έτσι, ενώ άλλοτε δεν παίζουν καθόλου καλά.

Δημήτρης Γκίνης

#97
Να ανταλλάξω το switch δεν παίζει.
Θα κοιτάξω για κάρτα για τον server. Να προτιμήσω PCIe;
Με μια γρήγορη ματιά που έριξα δεν βρήκα Broadcom ή Marvel, άρα πάω για καμιά Intel, σαν αυτή ας πούμε.

Δημήτρης Γκίνης

 Έβαλα στον server καινούργια κάρτα δικτύου intel (η eth1):
administrator@server:~$ sudo ethtool --show-pause eth1
Pause parameters for eth1:
Autonegotiate:	on
RX:		on
TX:		on

administrator@server:~$ lspci -nn -k | grep -A 2 Ethernet
02:00.0 Ethernet controller [0200]: Qualcomm Atheros Attansic L1 Gigabit Ethernet [1969:1048] (rev b0)
	Subsystem: ASUSTeK Computer Inc. P5KPL-VM Motherboard [1043:8226]
	Kernel driver in use: atl1
--
04:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network Connection [8086:10d3]
	Subsystem: Intel Corporation Gigabit CT Desktop Adapter [8086:a01f]
	Kernel driver in use: e1000e


Προσπάθησα να απενεργοποιήσω το flow control:

administrator@server:~$ sudo ethtool --pause eth1 autoneg on rx off
autoneg unmodified, ignoring


Αυτό σημαίνει ότι δεν απενεργοποιείται;;

Γιατί μου βγάζει:

administrator@server:~$ sudo ethtool --show-pause eth1
Pause parameters for eth1:
Autonegotiate:	on
RX:		on
TX:		on


Στην σελίδα του πωλητή όμως αναφέρει: Τύπος    Managed
http://www.visionstudio.gr/prodinfo.asp?id=20722&cat=13

Λάθος κάρτα πήρα;


Δημήτρης Γκίνης

Το πρόβλημα λύθηκε με...... άνωθεν παρέμβαση (βλέπε ...Άλκης)
Για λεπτομέρειες αναμείνατε στην οθόνη σας.

alkisg

Δημήτρη ευχαριστώ για το troubleshooting!
Το πρόβλημα είναι ότι μερικές κάρτες (π.χ. Intel) θέλουν κάποια εντολή για απενεργοποίηση του flow control, ενώ άλλες (π.χ. Marvel) την ακριβώς αντίθετη...  :-\
Ανέβασα την παρακάτω διόρθωση στα sch-scripts, θα έρθει σε κάποιο επόμενο update.

Κώδικας: Bash
if [ -x /sbin/ethtool ] &&
    test -z "$(ethtool --show-pause $IFACE| grep '^RX:.*off')"
then
    # Some NICs like Intel [8086:10d3] require "autoneg off rx off",
    # while other like Marvel [11ab:4320] require "autoneg on rx off".
    # So we actually need to call ethtool again to check if it worked.
    msg="Failed to disable flow control for interface $IFACE"
    for neg in off on; do
        ethtool --pause "$IFACE" autoneg "$neg" rx off || true
        if ethtool --show-pause "$IFACE" | grep -q '^RX:.*off'; then
            msg="Disabled flow control (autoneg $neg, rx off) for interface $IFACE"
            break
        fi
    done >/dev/null 2>&1 
    $logger -t sch-scripts -p syslog.info "$msg"
fi


Εντωμεταξύ είδα ότι μια άλλη εντολή ονόματι mii-tool ίσως να βοηθήσει όσους έχουν πρόβλημα flow control και κάρτα gigabit Atheros στον server, αν έχει κανείς τέτοια ας έρθει από το IRC να το δούμε live...

richard

Δεν δουλεύω σε κανένα σχολείο, αλλά προσπαθώ να βοηθήσω σε διάφορα. Άρα σπάνια είναι στα χέρια μου να διαλέγω τα υλικά. Βεβαίως όταν με ζητούν (επειδή εσείς έχετε ήδη συζητήσει :)) ) προσπαθώ να αγοράζουν σωστά υλικά.

Άρα συνήθως ότι κάνω είναι με το λογισμικό.

Οι συμβολές σας (σε σειρά):

0 – αγορά κατάλληλο switch π.χ.
http://www.e-shop.gr/tp-link-tl-sg1024de-24-port-gigabit-easy-smart-switch-p-PER.612700
τότε δεν είναι ανάγκη (;) να απασχολούμε με flow control.

1 - απενεργοποιούμε hardware flow control (εάν μπορούμε) στο switch.
2 - απενεργοποιούμε hardware flow control (εάν μπορούμε) στην 1000 κάρτα δικτύου του server.
3 - περιορίσουμε την ταχύτητα που χρησιμοποιεί ο server να στείλει στους clients, π.χ. 55 Mbps.
Στην περίπτωση 3 (εάν έχω καταλάβει καλά) χρειάζεται να προσθέσουμε κάθε ip του κάθε client σε ένα σκρυπτάκι (του Άλκη) σαν:

#!/bin/sh

DEV=eth0
RATE=55
IP1=10.161.254.243
IP2=10.161.254.245
IP3=10.161.254.234
tc qdisc del dev "$DEV" root
tc qdisc add dev "$DEV" root handle 1: cbq avpkt 1000 bandwidth 1gbit

tc class add dev "$DEV" parent 1: classid 1:1 cbq rate ${RATE}mbit allot
1500 prio 5 bounded isolated
tc class add dev "$DEV" parent 1: classid 1:2 cbq rate ${RATE}mbit allot
1500 prio 5 bounded isolated
tc class add dev "$DEV" parent 1: classid 1:3 cbq rate ${RATE}mbit allot
1500 prio 5 bounded isolated

tc filter add dev "$DEV" parent 1: protocol ip prio 16 u32 match ip dst
$IP1 flowid 1:1
tc filter add dev "$DEV" parent 1: protocol ip prio 16 u32 match ip dst
$IP2 flowid 1:2
tc filter add dev "$DEV" parent 1: protocol ip prio 16 u32 match ip dst
$IP3 flowid 1:3


Richard

alkisg

Richard, την περίπτωση (3) δεν την έχω καταφέρει να παίξει καλά οπότε δεν νομίζω ότι την χρησιμοποιεί κανένας πουθενά.
Μια άλλη περίπτωση που βρήκα πρόσφατα και δεν έχω ακόμα δοκιμάσει είναι η (2β) παρακάτω:
(2α) απενεργοποιούμε το flow control στην 1000ρα κάρτα του server με το ethtool (αυτό το κάνουν ήδη τα sch-scripts αυτόματα)
(2β) απενεργοποιούμε το flow control στην 1000ρα κάρτα του server με το mii-tool (δεν το έχω δοκιμάσει στην πράξη ακόμα).

Το mii-tool ίσως και να παίξει σε κάρτες atheros και realtek, ενώ το ethtool παίζει δοκιμασμένα σε intel, broadcom, marvel κλπ.
Με την πρώτη ευκαιρία θα δοκιμάσω το mii-tool, αν κάποιος έχει gigabit atheros στον server και 100ρες κάρτες στους clients ας μου πει να το δούμε στο IRC.
Αν τελικά παίξει, θα το βάλω στα sch-scripts. Τότε θα καλύπτουμε αυτόματα τις περισσότερες περιπτώσεις...

Σ' ευχαριστούμε για τη βοήθεια που δίνετε στα σχολεία! :)

Δημήτρης Γκίνης

Εντάξει, εντάξει, το'πιασα το υπονοούμενο
Παράθεση από: alkisg στις 15 Μαρ 2015, 01:48:03 ΜΜ
Με την πρώτη ευκαιρία θα δοκιμάσω το mii-tool, αν κάποιος έχει gigabit atheros στον server και 100ρες κάρτες στους clients ας μου πει να το δούμε στο IRC.
;)
Την περίοδο αυτή δεν έχω χρόνο όμως για δοκιμές. Να το αφήσουμε για μετά το Πάσχα;

alkisg

Δημήτρη no worries δεν αναφερόμουν συγκεκριμένα σε σένα, θα βρεθούν ευκαιρίες για δοκιμές με Atheros... να 'σαι καλά! :)