Intel ® Ethernet 700 Series
Οδηγός συντονισμού απόδοσης Linux
NEX Cloud Networking Group (NCNG)
Αναθ. 1.2
Δεκέμβριος 2024
Ιστορικό αναθεώρησης
Αναθεώρηση | Ημερομηνία | Σχόλια |
1.2 | Δεκέμβριος 2024 | · Προστέθηκε πρόσθετη καθοδήγηση διαχείρισης ενέργειας. · Προστέθηκε Intel* Turbo Boost. · Προστέθηκε Backlog Συσκευών Δικτύου. · Προστέθηκαν διαμορφώσεις και συντονισμός συγκεκριμένης πλατφόρμας. · Προστέθηκαν 4ης γενιάς επεξεργαστές Intel* %eon* Scalable Processors. · Προστέθηκε AMD EPYC. · Ενημερωμένες δυνατότητες ελέγχου συστήματος υλικού. · Ενημερώθηκε το iPerf2. · Ενημερώθηκε το iPerf3. · Ενημερώθηκαν οι ουρές Tx/Rx. · Ενημερώθηκε η εποπτεία διακοπής. · Ενημερωμένο μέγεθος δαχτυλιδιού. · Ενημερωμένος συντονισμός πλατφόρμας (i40e μη συγκεκριμένος). · Ενημερώθηκαν οι ρυθμίσεις του BIOS. · Ενημερωμένος έλεγχος C-State. · Ενημερωμένη κλιμάκωση συχνότητας CPU. · Ενημερώθηκαν οι ρυθμίσεις εφαρμογής. · Ενημερωμένες ρυθμίσεις λειτουργικού συστήματος/πυρήνα. · Ενημερωμένη προώθηση IP. · Ενημερώθηκε η χαμηλή καθυστέρηση. |
Αύγουστος 2023 | Οι αλλαγές σε αυτό το έγγραφο περιλαμβάνουν: · Προστέθηκαν σχετικές αναφορές. · Προστέθηκε Βεβαιωθείτε ότι το πακέτο DDP φορτώνεται σωστά. · Προστέθηκε iPerf2. · Προστέθηκε iPerf3. · Προστέθηκε netperf. · Ενημερώθηκε το IRQ Affinity. · Προστέθηκαν ουρές Tx/Rx. · Ενημερωμένο μέγεθος δαχτυλιδιού. · Προστέθηκαν Jumbo Frames. · Προστέθηκε συγκόλληση προσαρμογέα. · Προστέθηκε το εργαλείο Intel svr-info. |
|
1.0 | Μάρτιος 2016 | Αρχική έκδοση (Intel Public). |
Εισαγωγή
Αυτός ο οδηγός προορίζεται να παρέχει καθοδήγηση για συντονισμό περιβαλλόντων για βέλτιστη απόδοση δικτύωσης με χρήση NIC της σειράς Intel ® Ethernet 700 σε περιβάλλοντα Linux. Επικεντρώνεται σε συνθήκες και ρυθμίσεις υλικού, προγραμμάτων οδήγησης και λειτουργικού συστήματος που ενδέχεται να βελτιώσουν την απόδοση του δικτύου. Θα πρέπει να σημειωθεί ότι η απόδοση της δικτύωσης μπορεί να επηρεαστεί από οποιονδήποτε αριθμό εξωτερικών επιρροών, μόνο οι πιο συνηθισμένες και δραματικές από αυτές καλύπτονται σε αυτόν τον οδηγό.
1.1 Σχετικές αναφορές
- Οδηγός χρήσης για όλους τους προσαρμογείς και συσκευές Intel ® Ethernet που υποστηρίζουν Windows και Linux:
Οδηγός χρήστη Intel ® Ethernet Adapters and Devices - Τεχνικό Φύλλο Δεδομένων:
Φύλλο δεδομένων Intel ® Ethernet Controller X710/XXV710/XL710 - Πλήρες πακέτο SW για όλα τα προϊόντα Intel ® Ethernet (λήψη όλων των προγραμμάτων οδήγησης, NVM, εργαλείων κ.λπ.):
Ολοκληρωμένο πακέτο προγραμμάτων οδήγησης Intel ® Ethernet Adapter - Πακέτο ενημέρωσης NVM (Μη πτητική μνήμη):
Βοηθητικό πρόγραμμα ενημέρωσης μη πτητικής μνήμης (NVM) για τον προσαρμογέα δικτύου Intel ® Ethernet 700 Series - Εργαλείο svr-info για Linux που καταγράφει σχετικές λεπτομέρειες υλικού και λογισμικού από έναν διακομιστή: https://github.com/intel/svr-info
- Οδηγός τεχνολογίας DDP:
Οδηγός τεχνολογίας Intel ® Ethernet 700 Series Dynamic Device Personalization (DDP).
Αρχική λίστα ελέγχου
2.1 Ενημέρωση εκδόσεων προγράμματος οδήγησης/υλικολογισμικού
Ελέγξτε τις εκδόσεις προγραμμάτων οδήγησης/υλικολογισμικού χρησιμοποιώντας το ethtool -i ethx.
Ενημερώστε τα ακόλουθα όπως απαιτείται:
- Ενημερώστε το πρόγραμμα οδήγησης i40e
http://sourceforge.net/projects/e1000/files/i40e%20stable/ or https:// downloadcenter.intel.com/ download/24411/Network-Adapter-Driver-for-PCI-E-40- Gigabit-Network-Connections-under-Linux - Ενημέρωση υλικολογισμικού
https: //downloadcenter.intel.com/download/24769/NVM-Update-Utility-for-Intel- Ethernet-ConvergedNetwork-Adapter-XL710-X710-Series
2.2 Διαβάστε το README
Ελέγξτε για γνωστά προβλήματα και λάβετε τις πιο πρόσφατες οδηγίες διαμόρφωσης από το README file περιλαμβάνεται στο πακέτο πηγής i40e.
2.3 Ελέγξτε ότι η υποδοχή PCI Express (PCIe) σας είναι x8
Ορισμένες υποδοχές PCIe x8 είναι στην πραγματικότητα διαμορφωμένες ως υποδοχές x4. Αυτές οι υποδοχές έχουν ανεπαρκές εύρος ζώνης για πλήρη ρυθμό γραμμής με συσκευές διπλής θύρας και τετραπλής θύρας. Επιπλέον, εάν τοποθετήσετε έναν προσαρμογέα με δυνατότητα PCIe v3.0 σε μια υποδοχή PCIe v2.x, δεν μπορείτε να αποκτήσετε πλήρες εύρος ζώνης. Το πρόγραμμα οδήγησης συσκευής λογισμικού εντοπίζει αυτήν την κατάσταση και γράφει το ακόλουθο μήνυμα στο αρχείο καταγραφής συστήματος:
Το εύρος ζώνης PCI-Express που διατίθεται για αυτήν την κάρτα δεν επαρκεί για βέλτιστη απόδοση. Για βέλτιστη απόδοση απαιτείται υποδοχή x8 PCI-Express.
Εάν παρουσιαστεί αυτό το σφάλμα, μετακινήστε τον προσαρμογέα σας σε μια πραγματική υποδοχή PCIe v3.0 x8 για να επιλύσετε το πρόβλημα.
2.4 Ελέγξτε τις δυνατότητες υλικού συστήματος
Στα 10 Gbps, 25 Gbps και 40 Gbps Ethernet, υπάρχουν ορισμένες ελάχιστες απαιτήσεις CPU και συστήματος. Σε γενικές γραμμές, ένας σύγχρονος επεξεργαστής κατηγορίας διακομιστή και η βέλτιστη διαμόρφωση μνήμης για την πλατφόρμα σας θα πρέπει να είναι επαρκής, αλλά οι ανάγκες ποικίλλουν ανάλογα με τον φόρτο εργασίας σας. Όλα τα κανάλια μνήμης θα πρέπει να συμπληρωθούν και η λειτουργία απόδοσης μνήμης θα πρέπει να είναι ενεργοποιημένη στο BIOS. Βεβαιωθείτε ότι η CPU και η διαμόρφωση της μνήμης σας μπορούν να υποστηρίξουν το επίπεδο απόδοσης δικτύου που χρειάζεστε για τον φόρτο εργασίας σας.
ΣΗΜΕΙΩΜΑ
Το XL710 είναι ελεγκτής 40 GbE. Ο προσαρμογέας 2 x 40 GbE που χρησιμοποιεί αυτόν τον ελεγκτή δεν προορίζεται να είναι 2 x 40 GbE αλλά 1 x 40 GbE με ενεργή εφεδρική θύρα. Όταν επιχειρείτε να χρησιμοποιήσετε κίνηση με ρυθμό γραμμής που περιλαμβάνει και τις δύο θύρες, ο εσωτερικός διακόπτης είναι κορεσμένος και το συνδυασμένο εύρος ζώνης μεταξύ των δύο θυρών περιορίζεται σε ένα σύνολο SO Gbps.
2.4.1 Παράμετροι εκκίνησης πυρήνα
Εάν η τεχνολογία Intel® Virtualization for Directed I/O (Intel® VT-d) είναι ενεργοποιημένη στο BIOS, η Intel συνιστά το IOMMU να βρίσκεται σε λειτουργία pass-through για βέλτιστη απόδοση του δικτύου κεντρικού υπολογιστή. Αυτό εξαλείφει την επιβάρυνση DMA στην επισκεψιμότητα του κεντρικού υπολογιστή, ενώ επιτρέπει στις Εικονικές Μηχανές (VM) να εξακολουθούν να έχουν τα πλεονεκτήματα του Intel® VT-d. Αυτό επιτυγχάνεται προσθέτοντας την ακόλουθη γραμμή στις παραμέτρους εκκίνησης του πυρήνα: fommu-pt.
2.5 Βεβαιωθείτε ότι το πακέτο DDP φορτώνεται σωστά
Τα βασικά προγράμματα οδήγησης 140ea και 140eb δεν έχουν άμεση υποστήριξη για δυναμική εξατομίκευση συσκευών (DDP). Για να χρησιμοποιήσετε το DDP με συσκευές της σειράς 700, ένας επαγγελματίας DDPfile μπορεί να εφαρμοστεί με την εφαρμογή testpmd.
Για λεπτομέρειες σχετικά με το DDP profiles, και πώς να εφαρμόσετε ένα DDP profile με testpmd σε συσκευές 700 Series, ανατρέξτε στον Οδηγό τεχνολογίας Intel® Ethernet 700 Series Dynamic Device Personalization (DDP).
Για να επαληθεύσετε εάν είναι επαγγελματίας DDPfile φορτώθηκε με επιτυχία:
testpmd> ddp λήψη λίστας 0 Profile ο αριθμός είναι: 1
ΣΗΜΕΙΩΜΑ
Εάν ο επαγγελματίαςfile Ο αριθμός είναι 0, δεν έχει φορτωθεί πακέτο DDP. Σε περίπτωση σφάλματος φόρτωσης πακέτου DDP, η συσκευή τίθεται από προεπιλογή σε ασφαλή λειτουργία και πολλές λειτουργίες απόδοσης δεν είναι διαθέσιμες. Εάν υπάρχουν σφάλματα που σχετίζονται με τη φόρτωση του πακέτου DDP, θα προκληθούν προβλήματα απόδοσης. Για βήματα αντιμετώπισης προβλημάτων, ανατρέξτε στον Οδηγό τεχνολογίας Inte/* Ethernet 700 Series Dynamic Device Personalization (DDP).
Βασικές μετρήσεις απόδοσης και μεθοδολογία συντονισμού
3.1 Σημεία αναφοράς απόδοσης δικτύου
Πριν ξεκινήσετε μια άσκηση συντονισμού, είναι σημαντικό να έχετε μια καλή βασική μέτρηση της απόδοσης του δικτύου σας. Συνήθως, εκτός από την αρχική μέτρηση της απόδοσης της συγκεκριμένης εφαρμογής/φόρτου εργασίας σας, είναι καλή ιδέα να χρησιμοποιείτε επίσης ένα τυπικό σημείο αναφοράς απόδοσης δικτύου για να επαληθεύσετε ότι η συσκευή δικτύου σας βρίσκεται σε καλή κατάσταση.
Για τη βελτιστοποίηση ενός συστήματος, το netperf ή iperf και το NetPIPE είναι όλα σταθερά εργαλεία χωρίς ανοιχτό κώδικα που σας επιτρέπουν να τονίσετε μια σύνδεση και να διαγνώσετε προβλήματα απόδοσης.
Το Netperf είναι ισχυρό τόσο για δοκιμές απόδοσης όσο και για λανθάνουσα κατάσταση. Το NetPIPE είναι ένα ειδικό εργαλείο για την καθυστέρηση, αλλά μπορεί να μεταγλωττιστεί για οποιοδήποτε είδος περιβάλλοντος.
ΣΗΜΕΙΩΜΑ
Η δοκιμή TCP_RR στο netperf επιστρέφει καθυστέρηση σε μια τιμή συναλλαγών/δευτ. Αυτός είναι ένας αριθμός μετ' επιστροφής. Η μονόδρομη καθυστέρηση μπορεί να υπολογιστεί χρησιμοποιώντας την ακόλουθη εξίσωση:
Latency(usec) = (1⁄2) / [Transactions/sec] * 1,000,000
3.1.1 iPerf2
Η Intel συνιστά το iperf2 έναντι του iperf3 για τις περισσότερες περιπτώσεις συγκριτικής αξιολόγησης λόγω της ευκολίας χρήσης και της υποστήριξης πολλαπλών νημάτων σε μία μόνο παρουσία εφαρμογής. Η Intel συνιστά την εκτέλεση με την επιλογή -P με 2-4 νήματα για συνδέσεις 25G και περίπου 4-6 νήματα για συνδέσεις 40G.
- Για να εκτελέσετε κίνηση μονής κατεύθυνσης από πελάτη σε διακομιστή: Εντολή διακομιστή π.χample: iperf2 -s
Εντολή πελάτη π.χample: iperf2 -c -Π - Για την εκτέλεση αμφίδρομης κυκλοφορίας από πελάτη σε διακομιστή (και αντίστροφα): Εντολή διακομιστή π.χample: iperf2 –s –p
Εντολή πελάτη π.χample:
iperf2 -c -σελ -Π --full-duplex Ή
iperf2 -c -σελ -Π -ρε
ΣΗΜΕΙΩΜΑ
Και οι δύο επιλογές –full-duplex και –d στο iperf2 επιτρέπουν στον χρήστη να εκτελεί αμφίδρομη δοκιμή. Ωστόσο, η επιλογή –full-duplex εστιάζει ειδικά στη δοκιμή πλήρους διπλής όψης.
ΣΗΜΕΙΩΜΑ
Κατά τη δοκιμή iperf2 σε πολλές θύρες διακομιστή, η σημαία -d μπορεί να προστεθεί στην εντολή διακομιστή για να εκτελεστούν όλες οι περίοδοι λειτουργίας διακομιστή στο παρασκήνιο από το ίδιο παράθυρο τερματικού. Η σημαία -d μπορεί επίσης να χρησιμοποιηθεί όταν η εντολή διακομιστή είναι ενσωματωμένη σε έναν βρόχο for σε ένα σενάριο.
ΣΗΜΕΙΩΜΑ
Όταν εκτελείτε τη δοκιμή απόδοσης δικτύου με μία μόνο ροή/νήμα (π.χample: P1), οι επεξεργαστές AMD ενδέχεται να μην παρέχουν αναμενόμενη απόδοση, ιδιαίτερα NIC υψηλότερου εύρους ζώνης (αν η ταχύτητα είναι >= εύρος ζώνης 25G). Ως αποτέλεσμα, απαιτείται καρφίτσωμα εφαρμογής σε συγκεκριμένους πυρήνες για να επιτευχθεί υψηλότερη απόδοση. Ανατρέξτε στην ενότητα Ρυθμίσεις εφαρμογής στη σελίδα 22.
3.1.2 iPerf3
Εάν χρησιμοποιείται iperf3, απαιτούνται πολλαπλές παρουσίες της εφαρμογής για λήψη advantage από τις ουρές πολλαπλών νημάτων, RSS και υλικού. Η Intel συνιστά την εκτέλεση με 2-4 περιόδους σύνδεσης εφαρμογών για συνδέσεις 25G και περίπου 4-6 περιόδους σύνδεσης για συνδέσεις 40G. Κάθε συνεδρία πρέπει να καθορίζει μια μοναδική τιμή θύρας TCP χρησιμοποιώντας την επιλογή -p.
- Για να εκτελέσετε κίνηση μονής κατεύθυνσης από πελάτη σε διακομιστή:
Εντολή διακομιστή π.χample:
iperf3 -s -p
Εντολή πελάτη π.χample:
iperf3 -c -σελ - Για να εκτελέσετε αμφίδρομη κίνηση από πελάτη σε διακομιστή (και αντίστροφα):
Εντολή διακομιστή π.χample:
iperf3 –s –p
Εντολή πελάτη π.χample: iperf3 -c -σελ -Π –-bidir - Για να ξεκινήσετε πολλαπλές παρουσίες (νήματα) του iperf3, η σύσταση είναι να χρησιμοποιήσετε έναν βρόχο for για να αντιστοιχίσετε νήματα σε θύρες TCP και να εκτελέσετε το iperf3 στο παρασκήνιο χρησιμοποιώντας & για να δημιουργήσετε πολλές διεργασίες παράλληλα.
Εντολή διακομιστή π.χample, ξεκινήστε 4 νήματα: port=””; για i στο {0..3}; do port=520$i; bash -c “iperf3 -s -p $port &”; γινώμενος; Εντολή πελάτη π.χample, ξεκινήστε 4 νήματα – Θύρα δοκιμής μετάδοσης=””; για i στο {0..3}; do port=520$i; bash -c “iperf3 -c $serverIP -p $port &”; γινώμενος; Εντολή πελάτη π.χample, ξεκινήστε 4 νήματα – Λήψη δοκιμαστικής θύρας=””; για i στο {0..3}; do port=520$i; bash -c “iperf3 -R -c $serverIP -p $port &”; γινώμενος; Για συνδέσεις 40G, αυξήστε τον βρόχο για να δημιουργήσετε έως και 6 παρουσίες/νήματα.
ΣΗΜΕΙΩΜΑ
Όταν εκτελείτε τη δοκιμή απόδοσης δικτύου με μία μόνο ροή/νήμα (π.χample: P1), οι επεξεργαστές AMD ενδέχεται να μην παρέχουν αναμενόμενη απόδοση, ιδιαίτερα υψηλότερο εύρος ζώνης
NIC (αν η ταχύτητα είναι >= εύρος ζώνης 25G). Ως αποτέλεσμα, απαιτείται καρφίτσωμα εφαρμογής σε συγκεκριμένους πυρήνες για να επιτευχθεί υψηλότερη απόδοση. Δείτε Ρυθμίσεις εφαρμογής στη σελίδα 22 και AMD EPYC στη σελίδα 26.
3.1.3 netperf
Το εργαλείο netperf είναι μια ισχυρή επιλογή τόσο για τη διεκπεραίωση όσο και για τη δοκιμή καθυστέρησης.
- Η δοκιμή TCP_STREAM στο netperf μετρά τις δυνατότητες απόδοσης της συσκευής. Εντολή διακομιστή π.χample: netserver εντολή πελάτη π.χample: netperf -t TCP_STREAM -l 30 -H
- Η δοκιμή TCP_RR στο netperf επιστρέφει καθυστέρηση σε μια τιμή συναλλαγών/δευτερόλεπτο. Αυτός είναι ένας αριθμός μετ' επιστροφής. Συνιστάται η χρήση της επιλογής -T x,x, εάν το x είναι CPU τοπική στη συσκευή. Ο μονόδρομος λανθάνοντας μπορεί να υπολογιστεί χρησιμοποιώντας: Latency(usec)=(1⁄2)/ [Transactions/sec]*1,000,\ Server command example: netserver
Εντολή πελάτη π.χample: netperf -t TCP_RR -l 30 -H -Τ χ,χ - Για να ξεκινήσετε πολλαπλές παρουσίες (νήματα) του netperf, η σύσταση είναι να χρησιμοποιήσετε έναν βρόχο for για να αντιστοιχίσετε νήματα σε θύρες TCP και να εκτελέσετε το netperf στο παρασκήνιο χρησιμοποιώντας & για να δημιουργήσετε πολλές διεργασίες παράλληλα.
Εντολή διακομιστή π.χample, ξεκινήστε 8 νήματα:
port=””; για i στο {0..7}; do port=520$i; bash -c “netserver -L $serverIP -p $port &”; γινώμενος;
Εντολή πελάτη π.χample, ξεκινήστε 8 νήματα: port=””; για i στο {0..7}; do port=520$i; bash -c “netperf -H $serverIP -p $port -t TCP_STREAM -l 30 &”; γινώμενος;
3.2 Μεθοδολογία συντονισμού
Εστιάστε σε μία αλλαγή συντονισμού κάθε φορά, ώστε να γνωρίζετε τι αντίκτυπο έχει κάθε αλλαγή στη δοκιμή σας. Όσο πιο μεθοδικοί είστε στη διαδικασία συντονισμού, τόσο πιο εύκολο θα είναι να εντοπίσετε και να αντιμετωπίσετε τις αιτίες των συμφορήσεων απόδοσης.
Συντονισμός ρυθμίσεων προγράμματος οδήγησης i40e
4.1 Συνάφεια IRQ
Η διαμόρφωση της συνάφειας IRQ έτσι ώστε οι διακοπές για διαφορετικές ουρές δικτύου να συνδέονται με διαφορετικούς πυρήνες CPU μπορεί να έχει τεράστιο αντίκτυπο στην απόδοση, ιδιαίτερα στις δοκιμές διεκπεραιότητας πολλαπλών νημάτων.
Για να διαμορφώσετε το IRQ affinity, σταματήστε το irqbalance και, στη συνέχεια, χρησιμοποιήστε το σενάριο set_irq_affinity από το πακέτο προέλευσης i40e ή καρφιτσώστε τις ουρές με μη αυτόματο τρόπο. Απενεργοποιήστε τον εξισορροπητή IRQ χώρου χρήστη για να ενεργοποιήσετε το καρφίτσωμα ουράς:
- systemctl απενεργοποιήστε το irqbalance
- systemctl διακοπή irqbalance
Χρησιμοποιώντας το σενάριο set_irq_affinity από το πακέτο πηγής i40e (συνιστάται): - Για να χρησιμοποιήσετε όλους τους πυρήνες:
[path-to-i40epackage]/scripts/set_irq_affinity -X all ethX - Για να χρησιμοποιήσετε μόνο πυρήνες στην τοπική υποδοχή NUMA: [path-to-i40epackage]/scripts/set_irq_affinity -X local ethX
- Μπορείτε επίσης να επιλέξετε μια σειρά από πυρήνες. Αποφύγετε τη χρήση cpu0 γιατί εκτελεί εργασίες με χρονοδιακόπτη. [path-to-i40epackage]/scripts/set_irq_affinity 1-2 ethX
ΣΗΜΕΙΩΜΑ
Το σενάριο συνάφειας ενεργοποιεί το Transmit Packet Steering (XPS) ως μέρος της διαδικασίας καρφιτσώματος όταν έχει καθοριστεί η επιλογή -x. Όταν το XPS είναι ενεργοποιημένο, η Intel συνιστά να απενεργοποιήσετε το irqbalance, καθώς ο εξισορροπητής πυρήνα με XPS μπορεί να προκαλέσει απρόβλεπτη απόδοση. Το σενάριο συνάφειας απενεργοποιεί το XPS όταν έχει καθοριστεί η επιλογή -X. Η απενεργοποίηση του XPS και η ενεργοποίηση συμμετρικών ουρών είναι επωφελής για φόρτους εργασίας όπου επιτυγχάνεται η καλύτερη απόδοση όταν η κυκλοφορία Tx και Rx εξυπηρετείται στο ίδιο(α) ζευγάρι(α) ουρών.
Η διαμόρφωση συμμετρικών ουρών στο Linux περιλαμβάνει τον συντονισμό των παραμέτρων του προγράμματος οδήγησης της διεπαφής δικτύου για να ενεργοποιηθούν οι συμμετρικές ουρές λήψης (Rx) και οι συμμετρικές ουρές μετάδοσης (Tx) για τους υποστηριζόμενους προσαρμογείς δικτύου.
ΣΗΜΕΙΩΜΑ
- Οι συμμετρικές ουρές είναι μια προηγμένη δυνατότητα δικτύωσης και δεν τις υποστηρίζουν όλοι οι προσαρμογείς δικτύου ή τα προγράμματα οδήγησης της σειράς 700.
- Βεβαιωθείτε ότι έχετε την απαραίτητη υποστήριξη προγραμμάτων οδήγησης και υλικού πριν επιχειρήσετε να διαμορφώσετε συμμετρικές ουρές.
Για να διαμορφώσετε συμμετρικές ουρές, ακολουθήστε αυτά τα γενικά βήματα:
- Επεξεργασία διαμόρφωσης διεπαφής δικτύου File: Χρησιμοποιήστε ένα πρόγραμμα επεξεργασίας κειμένου (π.χample, vi, nano ή gedit) για να επεξεργαστείτε τη διαμόρφωση της διεπαφής δικτύου file. Ο file βρίσκεται συνήθως κάτω από τον κατάλογο /etc/sysconfig/network-scripts/ και έχει ένα όνομα όπως ifcfg-ethX, όπου ethX είναι το όνομα της διεπαφής δικτύου σας.
- Προσθήκη συμμετρικών παραμέτρων ουράς. Προσθέστε τις ακόλουθες γραμμές στη διαμόρφωση της διεπαφής δικτύου file: ETHTOOL_OPTS=”rx-queues 8 tx-queues 8″
- Επανεκκινήστε την υπηρεσία δικτύου.
Αφού κάνετε τις αλλαγές, επανεκκινήστε την υπηρεσία δικτύου για να εφαρμόσετε τη νέα διαμόρφωση. sudo systemctl επανεκκίνηση του δικτύου
Χειροκίνητα:
-
Βρείτε τους επεξεργαστές που είναι συνδεδεμένοι σε κάθε κόμβο χρησιμοποιώντας: numactl –hardware lscpu
-
Βρείτε τις μάσκες bit για κάθε έναν από τους επεξεργαστές:
- Υποθέτοντας πυρήνες 0-11 για τον κόμβο 0: [1,2,4,8,10,20,40,80,100,200,400,800]
- Βρείτε τα IRQ που έχουν εκχωρηθεί στη θύρα που εκχωρείται: grep ethX /proc/interrupts και σημειώστε τις τιμές IRQ Για example, 181-192 για τα 12 διανύσματα που φορτώθηκαν.
- Επαναλάβετε την τιμή συνάφειας SMP στην αντίστοιχη καταχώρηση IRQ. Σημειώστε ότι αυτό πρέπει να γίνει για κάθε καταχώρηση IRQ: echo 1 > /proc/irq/181/smp_affinity echo 2 > /proc/irq/182/smp_affinity echo 4 > /proc/irq/183/smp_affinity Εμφάνιση συνάφειας IRQ:
- Για να εμφανίσετε τη συνάφεια IRQ για όλους τους πυρήνες: /scripts/set_irq_affinity -s ethX
- Για να εμφανίσετε μόνο πυρήνες στην τοπική υποδοχή NUMA: /scripts/set_irq_affinity -s τοπικό ethX
- Μπορείτε επίσης να επιλέξετε μια σειρά από πυρήνες: /scripts/set_irq_affinity -s 40-0-8,16 ethX
ΣΗΜΕΙΩΜΑ
Το σενάριο set_irq_affinity υποστηρίζει τη σημαία -s στην έκδοση προγράμματος οδήγησης i40e 2.16.11 και μεταγενέστερη.
4.2 Ουρές Tx/Rx
Ο προεπιλεγμένος αριθμός ουρών που ενεργοποιήθηκαν για κάθε θύρα Ethernet από το πρόγραμμα οδήγησης κατά την προετοιμασία είναι ίσος με τον συνολικό αριθμό των CPU που είναι διαθέσιμες στην πλατφόρμα. Αυτό λειτουργεί καλά για πολλές πλατφόρμες και διαμορφώσεις φόρτου εργασίας. Ωστόσο, σε πλατφόρμες με υψηλό αριθμό πυρήνων και/ή υψηλή πυκνότητα θύρας Ethernet, αυτή η διαμόρφωση μπορεί να προκαλέσει διαμάχη πόρων. Επομένως, μπορεί σε ορισμένες περιπτώσεις να χρειαστεί να τροποποιήσετε την προεπιλογή για κάθε θύρα του συστήματος.
Ο προεπιλεγμένος αριθμός ουρών Tx/Rx μπορεί να διαφέρει ανάλογα με το συγκεκριμένο μοντέλο και την έκδοση του προγράμματος οδήγησης. Ο αριθμός των ουρών μπορεί να ρυθμιστεί χρησιμοποιώντας την εντολή ethtool -L που παρατίθεται παρακάτω.
ΣΗΜΕΙΩΜΑ
Σε αυτές τις περιπτώσεις, η Intel συνιστά να μειώσετε τον προεπιλεγμένο αριθμό ουρών για κάθε θύρα σε όχι περισσότερο από τον αριθμό των CPU που είναι διαθέσιμες στον κόμβο NUMA τοπικό στη θύρα προσαρμογέα. Σε ορισμένες περιπτώσεις, όταν επιχειρείτε να εξισορροπήσετε τους πόρους σε υλοποιήσεις υψηλού αριθμού θυρών, μπορεί να χρειαστεί να μειωθεί ακόμη περισσότερο αυτός ο αριθμός.
Για να τροποποιήσετε τη διαμόρφωση της ουράς:
Οι παρακάτω π.χample ορίζει τη θύρα σε 32 ουρές Tx/Rx: ethtool -L ethX συνδυασμένο 32
Exampη έξοδος:
ethtool -l ethX
Παράμετροι καναλιού για ethX: Προκαθορισμένα μέγιστα:
RX: 96
ΤΧ: 96
Άλλα: 1
Συνδυασμένοι: 96
Τρέχουσες ρυθμίσεις υλικού:
RX: 0
ΤΧ: 0
Άλλα: 1
Συνδυασμένοι: 32
4.3 Εποπτεία διακοπής
Η εποπτεία προσαρμοστικής διακοπής είναι ενεργοποιημένη από προεπιλογή και έχει σχεδιαστεί για να παρέχει μια ισορροπημένη προσέγγιση μεταξύ χαμηλής χρήσης CPU και υψηλής απόδοσης. Ωστόσο, μπορείτε να δοκιμάσετε να ρυθμίσετε τις ρυθμίσεις διακοπής χειροκίνητα για να ταιριάζουν στην περίπτωση χρήσης σας.
Το εύρος 0-235 μικροδευτερόλεπτα παρέχει ένα αποτελεσματικό εύρος από 4,310 έως 250,000 διακοπές ανά δευτερόλεπτο. Η τιμή του rx-μsecs-high μπορεί να οριστεί ανεξάρτητα από τα rx-μsecs και tx-μsecs στην ίδια εντολή ethtool και είναι επίσης ανεξάρτητη από τον προσαρμοστικό αλγόριθμο ελέγχου διακοπής. Το υποκείμενο υλικό υποστηρίζει την ευαισθησία σε διαστήματα 2 μικροδευτερόλεπτων, επομένως οι γειτονικές τιμές ενδέχεται να έχουν τον ίδιο ρυθμό διακοπής.
- Για να απενεργοποιήσετε τη λειτουργία προσαρμοστικής διακοπής: ethtool -C ethX adaptive-rx off adaptive-tx off
- Για να ενεργοποιήσετε την προσαρμοστική εποπτεία διακοπής: ethtool -C ethX adaptive-rx on adaptive-tx on
Ένα καλό μέρος για να ξεκινήσετε για γενικό συντονισμό είναι τα 84 μs ή ~12000 διακοπές/δευτερόλεπτα. Αν δείτε ότι οι μετρητές rx_dropped εκτελούνται κατά τη διάρκεια της κυκλοφορίας (χρησιμοποιώντας το ethtool -S ethX), τότε πιθανότατα έχετε πολύ αργό CPU, δεν υπάρχουν αρκετά buffer από το μέγεθος δακτυλίου του προσαρμογέα (ethtool -G) για να κρατήσετε πακέτα για 84 μs ή σε χαμηλό ρυθμό διακοπής.
- Για να ορίσετε την εποπτεία διακοπής σε σταθερό ρυθμό διακοπής 84 μs μεταξύ των διακοπών (12000 διακοπές/δευτερόλεπτα): ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 84 tx-usecs 84 Η επόμενη τιμή που πρέπει να δοκιμάσετε, εάν δεν έχετε μεγιστοποιηθεί στη χρήση CPU 62 μXNUMX, είναι. Αυτό χρησιμοποιεί περισσότερη CPU, αλλά εξυπηρετεί ταχύτερα buffers και απαιτεί λιγότερους περιγραφείς (μέγεθος δακτυλίου, ethtool -G).
- Για να ορίσετε την εποπτεία διακοπής σε σταθερό ρυθμό διακοπής 62 usecs μεταξύ των διακοπών (16000 διακοπές/δευτερόλεπτα). ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 62 tx-usecs 62
Εάν οι μετρητές rx_dropped αυξάνονται κατά τη διάρκεια της κυκλοφορίας (χρησιμοποιώντας το ethtool -S ethX), πιθανότατα έχετε πολύ αργό CPU, δεν υπάρχουν αρκετά buffer από το μέγεθος κουδουνίσματος του προσαρμογέα (ethtool -G) ή πολύ χαμηλό ρυθμό διακοπής. Εάν δεν έχετε εξαντληθεί στη χρήση της CPU, μπορείτε να αυξήσετε τον ρυθμό διακοπής μειώνοντας την τιμή ITR. Αυτό χρησιμοποιεί περισσότερη CPU, αλλά οι υπηρεσίες αποθηκεύονται πιο γρήγορα και απαιτούν λιγότερους περιγραφείς (μέγεθος δακτυλίου, εργαλείο ethtool -G).
Εάν η CPU σας είναι στο 100%, τότε δεν συνιστάται η αύξηση του ρυθμού διακοπής. Σε ορισμένες περιπτώσεις, όπως ο φόρτος εργασίας με δεσμευμένο CPU, ίσως θέλετε να αυξήσετε την τιμή μs για να ενεργοποιήσετε περισσότερο χρόνο CPU για άλλες εφαρμογές.
Εάν χρειάζεστε απόδοση χαμηλής καθυστέρησης και/ή έχετε άφθονη CPU για να αφιερώσετε στην επεξεργασία δικτύου, μπορείτε να απενεργοποιήσετε πλήρως τη λειτουργία εποπτείας διακοπών, η οποία επιτρέπει στις διακοπές να ενεργοποιούνται όσο το δυνατόν γρηγορότερα. - Για να απενεργοποιήσετε το εργαλείο εποπτείας διακοπής ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs 0 tx-usecs 0
ΣΗΜΕΙΩΜΑ
Όταν εκτελείται με απενεργοποιημένη την εποπτεία διακοπών, το ποσοστό διακοπής σε κάθε ουρά μπορεί να είναι πολύ υψηλό. Εξετάστε το ενδεχόμενο να συμπεριλάβετε την παράμετρο rx-usec-high για να ορίσετε ένα ανώτερο όριο στον ρυθμό διακοπής. Η ακόλουθη εντολή απενεργοποιεί την προσαρμοστική εποπτεία διακοπής και επιτρέπει το πολύ 5 μικροδευτερόλεπτα πριν υποδείξει ότι η λήψη ή η μετάδοση ολοκληρώθηκε. Αντί να καταλήγει σε έως και 200,000 διακοπές ανά δευτερόλεπτο, περιορίζει τις συνολικές διακοπές ανά δευτερόλεπτο σε 50,000 μέσω της παραμέτρου rx-usec-high. # ethtool -C ethX adaptive-rx off adaptive-tx off rx-usecs-high 20 rx-usecs 5 txusecs 5 Δοκιμάστε να ρυθμίσετε τον χρονοδιακόπτη συγχώνευσης μετάδοσης/λήψης/υψηλής προτεραιότητας (80/100/150/200) ή χαμηλότερη για να βρείτε τη βέλτιστη τιμή για εργασία (25/20) (10/5).
4.4 Μέγεθος δαχτυλιδιού
Εάν βλέπετε μετρητές rx_dropped στο ethtool -S ethX (rx_dropped, rx_dropped.nic) ή υποψιάζεστε την πίεση της προσωρινής μνήμης με ενεργές πολλές ουρές, μπορείτε να δοκιμάσετε να προσαρμόσετε το μέγεθος κουδουνίσματος από την προεπιλεγμένη τιμή. Η προεπιλεγμένη τιμή είναι 512, η μέγιστη είναι 4096.
- Για να ελέγξετε τις τρέχουσες τιμές: ethtool -g ethX
Εάν υπάρχει υποψία ότι η έλλειψη αποθήκευσης στην προσωρινή μνήμη προκαλεί πτώσεις στον τρέχοντα ρυθμό διακοπής, μπορείτε να δοκιμάσετε πρώτα το μέγιστο, μετά το ελάχιστο και, στη συνέχεια, να συνεχίσετε σε μια δυαδική αναζήτηση μέχρι να δείτε τη βέλτιστη απόδοση.
Εάν υπάρχει υποψία πίεσης της κρυφής μνήμης (πολλές ουρές ενεργές), η μείωση των buffer από την προεπιλογή μπορεί να βοηθήσει την Intel ® Data Direct I/O (Intel ® DDIO) να λειτουργήσει με καλύτερη αποτελεσματικότητα. Η Intel συνιστά να δοκιμάσετε 128 ή 256 ανά ουρά, έχοντας επίγνωση ότι μπορεί να είναι απαραίτητη μια αύξηση του ρυθμού διακοπής μέσω του ethtool -C για να αποφευχθεί η αύξηση του rx_dropped. - Για να ορίσετε το μέγεθος δακτυλίου σε σταθερή τιμή: ethtool -G eth12 rx 256 tx 256
ΣΗΜΕΙΩΜΑ
Για να διορθώσετε τις πτώσεις πακέτων Rx που εντοπίστηκαν με το ethtool -S ethX|grep drop, εξετάστε το ενδεχόμενο να αυξήσετε το μέγεθος του δακτυλίου σε 4096. Πειραματιστείτε για να βρείτε την καλύτερη ρύθμιση για τον φόρτο εργασίας, αλλά προσέξτε την υπερβολική χρήση μνήμης με υψηλότερες τιμές.
4.5 Έλεγχος ροής
Ο έλεγχος ροής επιπέδου 2 μπορεί να επηρεάσει σημαντικά την απόδοση του TCP και συνιστάται να απενεργοποιείται για τους περισσότερους φόρτους εργασίας. Μια πιθανή εξαίρεση είναι η εκρηκτική κυκλοφορία όπου οι ριπές δεν έχουν μεγάλη διάρκεια.
Ο έλεγχος ροής είναι απενεργοποιημένος από προεπιλογή.
- Για να ενεργοποιήσετε τον έλεγχο ροής: ethtool -A ethX rx on tx on
- Για να απενεργοποιήσετε τον έλεγχο ροής: ethtool -A ethX rx off tx off
ΣΗΜΕΙΩΜΑ
Πρέπει να έχετε έναν συνεργάτη σύνδεσης με δυνατότητα ελέγχου ροής για να ενεργοποιήσετε με επιτυχία τον έλεγχο ροής.
4.6 Κορνίζες Jumbo
Όταν το περιβάλλον αναμενόμενης κίνησης αποτελείται από μεγάλα μπλοκ δεδομένων που μεταφέρονται, μπορεί να είναι ωφέλιμο να ενεργοποιήσετε τη λειτουργία jumbo frame. Η υποστήριξη Jumbo Frames ενεργοποιείται αλλάζοντας τη μέγιστη μονάδα μετάδοσης (MTU) σε τιμή μεγαλύτερη από την προεπιλεγμένη τιμή 1500. Αυτό επιτρέπει στη συσκευή να μεταφέρει δεδομένα σε μεγαλύτερα πακέτα εντός του περιβάλλοντος δικτύου. Αυτή η ρύθμιση μπορεί να βελτιώσει την απόδοση και να μειώσει τη χρήση της CPU για μεγάλους φόρτους εργασίας I/O. Ωστόσο, μπορεί να επηρεάσει μικρά πακέτα ή φόρτους εργασίας ευαίσθητους σε καθυστέρηση.
ΣΗΜΕΙΩΜΑ
Τα Jumbo frames ή οι μεγαλύτερες ρυθμίσεις MTU πρέπει να διαμορφωθούν σωστά στο περιβάλλον του δικτύου σας.
Χρησιμοποιήστε την εντολή ifconfig για να αυξήσετε το μέγεθος του MTU. Για π.χample, εισάγετε τα ακόλουθα, όπου είναι ο αριθμός διεπαφής: ifconfig mtu 9000 πάνω
Εναλλακτικά, μπορείτε να χρησιμοποιήσετε την εντολή ip ως εξής: ip link set mtu 9000 dev ip link set up dev
Συντονισμός πλατφόρμας (i40e μη ειδικό)
5.1 Ρυθμίσεις BIOS
- Ενεργοποιήστε το Intel® VT-d για φόρτους εργασίας εικονικοποίησης.
- Το Hyper-threading (λογικοί επεξεργαστές) μπορεί να επηρεάσει την απόδοση. Πειραματιστείτε με την ενεργοποίηση ή απενεργοποίηση για τον φόρτο εργασίας σας.
- Το Intel® Turbo Boost επιτρέπει στους πυρήνες της CPU να λειτουργούν σε υψηλότερη συχνότητα από τη βασική συχνότητα της CPU. Η ενεργοποίηση του Intel® Turbo Boost μπορεί να βελτιώσει την απόδοση για πολλούς φόρτους εργασίας, αλλά καταναλώνει περισσότερη ενέργεια για να διατηρεί τους πυρήνες σε υψηλότερη συχνότητα. Πειραματιστείτε με το Turbo Boost off/on για τον φόρτο εργασίας σας.
ΣΗΜΕΙΩΜΑ
Οι συχνότητες Turbo δεν είναι εγγυημένες εάν η πλατφόρμα έχει υψηλή συνολική χρήση της CPU. Οι υψηλότερες συχνότητες turbo πυρήνα μειώνονται καθώς αυξάνεται η συνολική χρήση της CPU.
5.2 Διαχείριση ενέργειας
Η διαχείριση ενέργειας μπορεί να επηρεάσει την απόδοση, ιδιαίτερα σε φόρτους εργασίας χαμηλού λανθάνοντος χρόνου. Εάν η απόδοση είναι υψηλότερη προτεραιότητα από τη μείωση της κατανάλωσης ενέργειας, η Intel συνιστά να πειραματιστείτε με τον περιορισμό των επιπτώσεων της διαχείρισης ενέργειας. Υπάρχουν πολλοί διαφορετικοί τρόποι περιορισμού της διαχείρισης ενέργειας, μέσω εργαλείων λειτουργικού συστήματος, ρυθμίσεων BIOS και παραμέτρων εκκίνησης πυρήνα. Επιλέξτε την καλύτερη μέθοδο και επίπεδο που ταιριάζει στο περιβάλλον σας.
5.2.1 Έλεγχος C-State
Ο περιορισμός της εισόδου της κατάστασης C σε CO ή C1 βελτιώνει την απόδοση και αυξάνει τη χρήση ενέργειας.
Η απενεργοποίηση της καταχώρισης κατάστασης του πακέτου CPU C6 μπορεί να βελτιώσει την απόδοση του δικτύου. Ωστόσο, αυτό αυξάνει τη χρήση ενέργειας.
Οι ακόλουθες επιλογές είναι διαθέσιμες:
- Δυναμικός έλεγχος της καταχώρισης C-state:
Ανοιχτό
/dev/cpu_dma_latency και γράψτε τη μέγιστη επιτρεπόμενη καθυστέρηση.
ΣΗΜΕΙΩΜΑ
Υπάρχει ένα μικρό πρόγραμμα που ονομάζεται cpudmalatency.c που μπορεί να ληφθεί από την κοινότητα ανοιχτού κώδικα, να μεταγλωττιστεί και να εκτελεστεί από τη γραμμή εντολών για να γίνει αυτό ακριβώς.
Οι παρακάτω π.χample επιτρέπει πέντε μs του χρόνου αφύπνισης, και έτσι επιτρέπει την είσοδο C1: cpudmalatency 5 &
- Περιορίστε τη μέγιστη κατάσταση C στις ρυθμίσεις εκκίνησης του πυρήνα:
Για επεξεργαστές Intel: intel_idle.max_cstates=1
Για επεξεργαστές εκτός Intel: processor.max_cstates=1 - Χρησιμοποιήστε την εντολή cpupower για να ελέγξετε και να απενεργοποιήσετε την κατάσταση CPU C6: Έλεγχος: οθόνη cpupower ή cpupower idle-info
Απενεργοποίηση C6: cpupower idle-set -d3 or
Απενεργοποίηση C-States: cpupower idle-set -D0
Σημειώσεις:
- Απενεργοποιήστε τις καταστάσεις C στην CPU εάν ο διακομιστής διαθέτει επεξεργαστή(ους) κλιμακωτούς επεξεργαστές Intel® 4ης γενιάς Intel® Xeon®. Όταν το Hyper Threading είναι ενεργοποιημένο ή απενεργοποιημένο, η απενεργοποίηση των καταστάσεων αδράνειας (-D0) αποτρέπει την είσοδο πυρήνων σε καταστάσεις χαμηλής κατανάλωσης κατά τις περιόδους αδράνειας και μειώνει τον λανθάνοντα χρόνο για τη μετάβαση της CPU μεταξύ αδράνειας και ενεργής κατάστασης.
- Η διαχείριση ενέργειας του επεξεργαστή Intel® 4th Gen Intel® Xeon® Scalable Processor είναι εξαιρετικά επιθετική. Για να αποφύγετε την είσοδο πυρήνων σε καταστάσεις χαμηλής κατανάλωσης, δοκιμάστε να μειώσετε τον αριθμό των πυρήνων που χρησιμοποιούνται για να τους κρατήσετε ξύπνους για μεγαλύτερο χρονικό διάστημα (ethtool -L σε συνδυασμό ). Επίσης, δεσμεύστε διακοπές σε συγκεκριμένους πυρήνες χρησιμοποιώντας συνάφεια ορισμού irq (τις περισσότερες φορές με -x τοπικούς πυρήνες ή λίστα πυρήνων CPU) και βεβαιωθείτε ότι ο φόρτος εργασίας εκτελείται στους ίδιους πυρήνες με σύνολο εργασιών ή numactl. Αυτό βελτιώνει την απόδοση διατηρώντας τους πυρήνες ενεργούς και βελτιστοποιώντας τον χειρισμό διακοπών.
Ενεργοποίηση C6:
cpupower idle-set -d3
Ενεργοποίηση καταστάσεων C:
cpupower idle-set -E
- Μια άλλη μέθοδος είναι να χρησιμοποιήσετε το συντονισμένο εργαλείο (που περιλαμβάνεται σε πολλές διανομές Linux) για να ορίσετε έναν επαγγελματία απόδοσηςfile. Αυτά τα υπέρfiles να τροποποιήσετε πολλές ρυθμίσεις λειτουργικού συστήματος που μπορούν να επηρεάσουν την απόδοση σε πολλές εφαρμογές. Έχει βρεθεί ότι το δίκτυο-διακίνησης profile παρέχει βελτίωση στους περισσότερους φόρτους εργασίας.
Ελεγχος:
συντονισμένος-adm ενεργός
Σειρά:
συντονισμένος-adm profile διακίνησης δικτύου
ΣΗΜΕΙΩΜΑ
Η συντονισμένη υπηρεσία πρέπει να εκτελείται για τις παραπάνω εντολές. Για έλεγχο/ επανεκκίνηση, συντονισμένο: systemctl κατάσταση συντονισμένο systemctl επανεκκίνηση συντονισμένο
Μπορείτε επίσης να απαγορεύσετε οποιαδήποτε καταχώρηση κατάστασης C προσθέτοντας τα ακόλουθα στη γραμμή εκκίνησης του πυρήνα:
αδρανής=δημοσκόπηση - Περιορίστε την κατάσταση C μέσω των ρυθμίσεων διαχείρισης ενέργειας του BIOS του συστήματος, οι οποίες μπορεί να έχουν επαγγελματία απόδοσηςfile διαθέσιμος.
Εργαλεία όπως το turbostat ή το x86_energy_perf_policy μπορούν να χρησιμοποιηθούν για τον έλεγχο ή τον ορισμό των ρυθμίσεων διαχείρισης ενέργειας.
5.2.2 Διαχείριση ενέργειας PCIe
Το Active-State Power Management (ASPM) επιτρέπει μια κατάσταση χαμηλότερης ισχύος για συνδέσεις PCIe όταν δεν χρησιμοποιούνται ενεργά. Αυτό μπορεί να προκαλέσει υψηλότερο λανθάνοντα χρόνο σε συσκευές δικτύου PCIe, επομένως η Intel συνιστά να απενεργοποιήσετε το ASPM για φόρτους εργασίας ευαίσθητους σε καθυστέρηση. Απενεργοποιήστε το ASPM προσθέτοντας τα ακόλουθα στη γραμμή εκκίνησης του πυρήνα: pcie_aspm=off
5.2.3 Κλιμάκωση συχνότητας CPU
Η κλιμάκωση συχνότητας CPU (ή κλιμάκωση ταχύτητας CPU) είναι μια τεχνική διαχείρισης ενέργειας Linux στην οποία η ταχύτητα του ρολογιού του συστήματος προσαρμόζεται εν κινήσει για εξοικονόμηση ενέργειας και θερμότητας. Όπως και οι καταστάσεις C, αυτό μπορεί να προκαλέσει ανεπιθύμητο λανθάνοντα χρόνο στις συνδέσεις δικτύου.
Το εργαλείο cpupower μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο και την τροποποίηση των προεπιλογών και των ορίων απόδοσης της CPU:
- Έλεγχος: οθόνη cpupower ή
- Ρύθμιση των CPU σε λειτουργία απόδοσης: cpupower συχνότητα-σύνολο -g απόδοση
ΣΗΜΕΙΩΜΑ
Οι τροποποιήσεις στα όρια συχνότητας της CPU μπορούν να έχουν αντίκτυπο σε πολλούς φόρτους εργασίας και ενδέχεται να απενεργοποιήσουν άλλες λειτουργίες, όπως τη λειτουργία turbo CPU.
Για να απενεργοποιήσετε την κλιμάκωση συχνότητας CPU, απενεργοποιήστε την υπηρεσία τροφοδοσίας της CPU με τις ακόλουθες εντολές:
systemctl διακοπή cpupower.service
systemctl απενεργοποιήστε το cpupower.service
5.2.4 Πρόσθετες οδηγίες διαχείρισης ενέργειας
Πρόσθετες λεπτομέρειες παρέχονται σε αυτό το υψηλού επιπέδου overview πολλών από τις δυνατότητες διαχείρισης ενέργειας στους επεξεργαστές Intel® Xeon® Scalable 3ης γενιάς, καθώς και καθοδήγηση σχετικά με τον τρόπο ενσωμάτωσης αυτών των δυνατοτήτων σε επίπεδο πλατφόρμας: https://networkbuilders.intel.com/solutionslibrary/power-management-technologyoverview-technology-guide
5.3 Intel® Turbo Boost
Το Intel® Turbo Boost κάνει τον επεξεργαστή πιο γρήγορο όταν χρειάζεται, αλλά μπορεί να καταναλώσει επιπλέον ισχύ. Η απενεργοποίηση του Turbo Boost διατηρεί τον επεξεργαστή σε σταθερή ταχύτητα, δίνοντάς σας ένα σταθερό επίπεδο απόδοσης για συγκεκριμένους φόρτους εργασίας.
5.4 Τείχη προστασίας
Τα τείχη προστασίας μπορούν να επηρεάσουν την απόδοση, ιδιαίτερα την απόδοση της καθυστέρησης.
Απενεργοποιήστε το iptables/firewalld εάν δεν απαιτείται.
5.5 Ρυθμίσεις εφαρμογής
Συχνά ένα μεμονωμένο νήμα (το οποίο αντιστοιχεί σε μία ουρά δικτύου) δεν επαρκεί για να επιτευχθεί μέγιστο εύρος ζώνης. Ορισμένες αρχιτεκτονικές πλατφορμών, όπως η AMD, τείνουν να απορρίπτουν περισσότερα πακέτα Rx με ένα μόνο νήμα σε σύγκριση με πλατφόρμες με επεξεργαστές που βασίζονται σε Intel.
Εξετάστε το ενδεχόμενο να χρησιμοποιήσετε εργαλεία όπως το σύνολο εργασιών ή το numactl για να καρφιτσώσετε εφαρμογές στον κόμβο NUMA ή στους πυρήνες της CPU τοπικά στη συσκευή δικτύου. Για ορισμένους φόρτους εργασίας, όπως η είσοδος/έξοδος αποθήκευσης, η μετακίνηση της εφαρμογής σε έναν μη τοπικό κόμβο παρέχει όφελος.
Πειραματιστείτε με την αύξηση του αριθμού των νημάτων που χρησιμοποιούνται από την εφαρμογή σας εάν είναι δυνατόν.
5.6 Έκδοση πυρήνα
Οι περισσότεροι σύγχρονοι πυρήνες in-box είναι αρκετά βελτιστοποιημένοι για απόδοση, αλλά, ανάλογα με την περίπτωση χρήσης σας, η ενημέρωση του πυρήνα μπορεί να προσφέρει βελτιωμένη απόδοση. Η λήψη της πηγής σάς δίνει επίσης τη δυνατότητα να ενεργοποιήσετε/απενεργοποιήσετε ορισμένες λειτουργίες πριν δημιουργήσετε τον πυρήνα.
5.7 Λειτουργικό σύστημα/Ρυθμίσεις πυρήνα
Συμβουλευτείτε οδηγούς συντονισμού λειτουργικών συστημάτων, όπως τον Οδηγό συντονισμού απόδοσης δικτύου Red Hat Enterprise Linux, για περισσότερες πληροφορίες σχετικά με τη γενική ρύθμιση του λειτουργικού συστήματος.
Μερικές κοινές παράμετροι για συντονισμό παρατίθενται στον παρακάτω πίνακα. Σημειώστε ότι αυτά είναι μόνο προτεινόμενα σημεία εκκίνησης και η αλλαγή τους από τις προεπιλογές ενδέχεται να αυξήσει τους πόρους που χρησιμοποιούνται στο σύστημα. Αν και η αύξηση των τιμών μπορεί να βοηθήσει στη βελτίωση της απόδοσης, είναι απαραίτητο να πειραματιστείτε με διαφορετικές τιμές για να προσδιορίσετε τι λειτουργεί καλύτερα για ένα δεδομένο σύστημα, φόρτο εργασίας και τύπο κίνησης.
Οι παράμετροι του πυρήνα μπορούν να διαμορφωθούν χρησιμοποιώντας το βοηθητικό πρόγραμμα sysctl στο Linux όπως υποδεικνύεται παρακάτω.
Να view οι προεπιλεγμένες τιμές για rmem και wmem στο σύστημα:
sysctl net.core.rmem_default
sysctl net.core.wmem_default
Ορίστε τις τιμές στο μέγιστο (16 MB):
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
Τα μεγέθη buffer υποδοχής, επίσης γνωστά ως buffer λήψης (rmem) και buffer μετάδοσης (wmem), είναι παράμετροι του συστήματος που καθορίζουν την ποσότητα μνήμης που δεσμεύεται για την εισερχόμενη και εξερχόμενη κυκλοφορία δικτύου.
Η εκτέλεση sysctl χωρίς το όρισμα -w παραθέτει την παράμετρο με την τρέχουσα ρύθμισή της.
Ρύθμιση στοίβας | Περιγραφή |
net.core.rmem_default | Προεπιλεγμένο μέγεθος παραθύρου λήψης |
net.core.wmem_default | Προεπιλεγμένο μέγεθος παραθύρου μετάδοσης |
net.core.rmem_max | Μέγιστο μέγεθος παραθύρου λήψης |
net.core.wmem_max | Μέγιστο μέγεθος παραθύρου μετάδοσης |
net.core.optmem_max | Μέγιστη προσωρινή μνήμη επιλογών |
net.core.netdev_max_backlog | Συγκέντρωση μη επεξεργασμένων πακέτων πριν αρχίσει να πέφτει ο πυρήνας |
net.ipv4.tcp_rmem | Δεσμευτής μνήμης για buffer ανάγνωσης TCP |
net.ipv4.tcp_wmem | Δεσμευτής μνήμης για buffer αποστολής TCP |
Οι παράμετροι πυρήνας, στοίβας δικτύου, χειριστής μνήμης, ταχύτητας CPU και διαχείρισης ενέργειας μπορούν να έχουν μεγάλο αντίκτυπο στην απόδοση του δικτύου. Μια κοινή σύσταση είναι να εφαρμοστεί στο δίκτυο παροχής profile χρησιμοποιώντας τη συντονισμένη εντολή. Αυτό τροποποιεί μερικές ρυθμίσεις του λειτουργικού συστήματος για να παρέχει προτίμηση σε εφαρμογές δικτύωσης.
Ελεγχος:
συντονισμένος-adm ενεργός
Σειρά:
συντονισμένος-adm profile διακίνησης δικτύου
5.8 Ανεκμετάλλευση συσκευής δικτύου
Αυτή η δυνατότητα βοηθά στη βελτίωση της απόδοσης του δικτύου με αποτελεσματική διαχείριση της εισερχόμενης κίνησης, μειώνοντας την απώλεια πακέτων, μειώνοντας την καθυστέρηση και ενισχύοντας την απόδοση. Αυτό οδηγεί σε καλύτερη εμπειρία χρήστη και ταχύτερη απόκριση του συστήματος.
Από προεπιλογή, είναι ενεργοποιημένο στα περισσότερα λειτουργικά συστήματα Linux. Για να ελέγξετε την προεπιλεγμένη τιμή:
sysctl net.core.netdev_max_backlog
Η μέγιστη τιμή για το netdev_max_backlog μπορεί να ποικίλλει ανάλογα με παράγοντες όπως η έκδοση του πυρήνα, το υλικό, η μνήμη και ο φόρτος εργασίας. Σε πολλές περιπτώσεις, το 8192 θεωρείται καλή τιμή. sysctl -w net.core.netdev_max_backlog=8192
5.9 Διαμορφώσεις και συντονισμός συγκεκριμένης πλατφόρμας
5.9.1 Επεξεργαστές Intel® Xeon® Scalable 4ης γενιάς
Η διαχείριση ενέργειας του επεξεργαστή Intel® 4ης γενιάς Intel® Xeon® Scalable είναι εξαιρετικά επιθετική σε σύγκριση με τους επεξεργαστές Intel® Xeon® Scalable 3ης γενιάς. Για να αποφύγετε την είσοδο πυρήνων σε καταστάσεις χαμηλής κατανάλωσης, δοκιμάστε να μειώσετε τον αριθμό των πυρήνων που χρησιμοποιούνται για να τους κρατήσετε ξύπνιους για μεγαλύτερο χρονικό διάστημα.
Προτεινόμενες ρυθμίσεις Bios για την υψηλότερη απόδοση
- Ενεργοποίηση/απενεργοποίηση Hyper-threading (με βάση την απαίτηση φόρτου εργασίας και τους στόχους απόδοσης) στη CPU.
- Ρυθμίστε το σύστημα profile σε Απόδοση για τη μέγιστη απόδοση.
ΣΗΜΕΙΩΜΑ
Αυτό έχει ως αποτέλεσμα μεγαλύτερη κατανάλωση ενέργειας - Ρυθμίστε τη διαχείριση ισχύος της CPU σε Μέγιστη απόδοση για να δώσετε προτεραιότητα στη μέγιστη απόδοση της CPU έναντι της απόδοσης ισχύος.
- Ενεργοποίηση Turbo Boost. Η απενεργοποίηση του Turbo Boost στις ρυθμίσεις του BIOS του συστήματος συνήθως εμποδίζει τη CPU να αυξήσει δυναμικά την ταχύτητα ρολογιού της πέρα από τη βασική της συχνότητα.
- ΣΗΜΕΙΩΜΑ
Η απενεργοποίηση του Turbo Boost μπορεί να είναι κατάλληλη για ορισμένες περιπτώσεις χρήσης όπου η σταθερή απόδοση, η απόδοση ισχύος ή η θερμική διαχείριση έχουν προτεραιότητα έναντι της μέγιστης απόδοσης. - Απενεργοποιήστε τη δυνατότητα Single Root I/O Virtualization (SR-IOV), εάν το σύστημα δεν χρησιμοποιεί τεχνολογίες εικονικοποίησης.
- Απενεργοποιήστε τις καταστάσεις C για να δώσετε εντολή στην CPU να παραμείνει ενεργή και να αποτρέψει την είσοδο σε βαθύτερες καταστάσεις αδράνειας.
- Απενεργοποιήστε το C1E, για να βεβαιωθείτε ότι η CPU παραμένει ενεργή και δεν εισέρχεται στην κατάσταση αδράνειας C1E.
- Ρυθμίστε τη συχνότητα μη πυρήνα στο μέγιστο για να δώσετε εντολή στο σύστημα να λειτουργεί στην υψηλότερη διαθέσιμη συχνότητα.
- Στις πλατφόρμες της Dell, ορίστε την εξομοίωση πυρήνα πολλαπλών APIC Description Table (MADT) σε Linear (ή Round-Robin ανάλογα με το BIOS) για να παρέχετε μια σαφή και προβλέψιμη αντιστοίχιση των πυρήνων της CPU.
Προτεινόμενοι συντονισμοί επιπέδου λειτουργικού συστήματος για βελτιστοποιημένη απόδοση
- Ρυθμίστε τον ρυθμιστή κλιμάκωσης συχνότητας CPU στην απόδοση. cpupower συχνότητα-σύνολο -g απόδοση cpupower συχνότητα-πληροφορίες
- Απενεργοποιήστε τις καταστάσεις C. cpupower idle-set -D0
- Ρυθμίστε τα buffer πυρήνα Rx (rmem) και Tx (wmem) στη μέγιστη τιμή. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
- Ορισμός ανεκτέλεσης συσκευής δικτύου. sysctl -w net.core.netdev_max_backlog=8192
- Ρύθμιση συντονισμένου επαγγελματίαfile (ο φόρτος εργασίας εξαρτάται από την απόδοση/λανθάνον χρόνο).
συντονισμένος-adm profile διακίνησης δικτύου
Συνιστώμενες ρυθμίσεις επιπέδου προσαρμογέα για βελτιστοποιημένη απόδοση
- Περιορίστε τον αριθμό των ουρών που θα χρησιμοποιηθούν για την κυκλοφορία εφαρμογών. Χρησιμοποιήστε τον ελάχιστο αριθμό ουρών που απαιτούνται για να διατηρήσετε ενεργούς τους συσχετιζόμενους πυρήνες της CPU για να τους αποτρέψετε από το να εισέλθουν σε βαθύτερες καταστάσεις αδράνειας (προσαρμογή για τον φόρτο εργασίας): ethtool -L συνδυασμένος 32
- Ορίστε τα ποσοστά εποπτείας διακοπής. ettool -C adaptive-rx off adaptive-tx off rx-usecs-high 50 rx-usecs 50 tx-usecs 50
Δοκιμάστε να ρυθμίσετε το χρονόμετρο συγχώνευσης μετάδοσης/λήψης/υψηλής προτεραιότητας υψηλότερα (80/100/150/200) ή χαμηλότερα (25/20/10/5) για να βρείτε τη βέλτιστη τιμή για τον φόρτο εργασίας. - Ορίστε τα μεγέθη δαχτυλιδιών Rx/Tx. ethtool -Γ rx 4096 tx 4096
ΣΗΜΕΙΩΜΑ
Εάν δείτε πέφτει το πακέτο Rx με το ethtool -S| grep drop, δοκιμάστε να μειώσετε το μέγεθος του δακτυλίου σε <4096. Προσπαθήστε να βρείτε τη βέλτιστη τιμή για τον φόρτο εργασίας όπου τα πακέτα δεν απορρίπτονται. - Ρύθμιση συνάφειας IRQ. Χρησιμοποιήστε τοπικούς πυρήνες στο NIC ή συγκεκριμένη αντιστοίχιση πυρήνων (όπου # πυρήνες είναι ίσοι με τον αριθμό των ουρών που έχουν οριστεί σε 1 στη σελίδα 26. systemctl stop irqbalance set_irq_affinity -X local Ή set_irq_affinity -X
5.9.2 AMD EPYC
Οι επεξεργαστές AMD EPYC είναι ισχυροί CPU κατασκευασμένοι για διακομιστές και κέντρα δεδομένων, βασισμένοι στην αρχιτεκτονική Zen της AMD. Οι παρακάτω ρυθμίσεις είναι από τη σειρά EPYC 4ης γενιάς της AMD.
Προτεινόμενες ρυθμίσεις BIOS για την υψηλότερη απόδοση
- Ενεργοποιήστε την προσαρμοσμένη λειτουργία για να επιτρέψετε στους χρήστες να προσαρμόσουν την απόδοση της CPU, την κατανάλωση ενέργειας και άλλες ρυθμίσεις. Αυτό βοηθά στη ρύθμιση του συστήματος για την καλύτερη ισορροπία μεταξύ απόδοσης και ενεργειακής απόδοσης.
- Ενεργοποιήστε την ενίσχυση της απόδοσης του πυρήνα για να επιτρέψετε στην CPU να αυξάνει αυτόματα την ταχύτητά της για να χειρίζεται πιο εντατικές εργασίες, βελτιώνοντας τη συνολική απόδοση.
- Απενεργοποιήστε τον παγκόσμιο έλεγχο κατάστασης C, για να αποτρέψετε την είσοδο της CPU σε βαθύτερες καταστάσεις εξοικονόμησης ενέργειας, γνωστές ως καταστάσεις C, οι οποίες μπορούν να διατηρήσουν την απόκριση.
ΣΗΜΕΙΩΜΑ
Η απενεργοποίηση των καταστάσεων C μπορεί να προκαλέσει πρόσθετη κατανάλωση ενέργειας και να αυξήσει τις θερμικές θερμοκρασίες. Παρακολουθήστε και τα δύο για τον φόρτο εργασίας. - Ενεργοποίηση/απενεργοποίηση της ταυτόχρονης πολυνηματικής σύνδεσης (SMT) στην CPU, με βάση την απαίτηση φόρτου εργασίας και τους στόχους απόδοσης. Το SMT είναι ισοδύναμο με το Hyper Threading σε επεξεργαστές Intel.
ΣΗΜΕΙΩΜΑ
Για βελτιστοποιημένη απόδοση, ανατρέξτε στο Tuning i40e Driver Settings στη σελίδα 13 και στο Platform Tuning (i40e Non-Specific) στη σελίδα 19 για το προτεινόμενο συντονισμό επιπέδου λειτουργικού συστήματος και προσαρμογέα.
Συγκόλληση προσαρμογέα
Η σύνδεση Linux είναι ένα ισχυρό χαρακτηριστικό που μπορεί να βελτιώσει σημαντικά την απόδοση του δικτύου, τον πλεονασμό και την ανοχή σφαλμάτων σε περιβάλλοντα διακομιστή. Ωστόσο, είναι σημαντικό να σημειωθεί ότι απαιτεί συμβατό υλικό δικτύου και σωστή διαμόρφωση τόσο στον διακομιστή όσο και στον μεταγωγέα για να λειτουργήσει σωστά.
Το πρόγραμμα οδήγησης bonding στο Linux σάς επιτρέπει να συγκεντρώνετε πολλαπλές φυσικές διεπαφές δικτύου σε μια συνδεδεμένη διεπαφή. Αυτή η συνδεδεμένη διεπαφή εμφανίζεται ως μια ενιαία διεπαφή εικονικού δικτύου για το λειτουργικό σύστημα και τις εφαρμογές.
ΣΗΜΕΙΩΜΑ
Το bond είναι μια λογική διεπαφή, επομένως δεν είναι δυνατό να ορίσετε τη συγγένεια της CPU απευθείας στη διεπαφή δεσμού (π.χ.ample, bond0). Δηλαδή, δεν έχει άμεσο έλεγχο στον χειρισμό διακοπών ή στη συγγένεια της CPU. Η συγγένεια της CPU πρέπει να διαμορφωθεί για τις υποκείμενες διεπαφές που αποτελούν μέρος του δεσμού.
Το Bonding παρέχει διάφορους τρόπους λειτουργίας, ο καθένας με τα δικά του χαρακτηριστικά.
Τρόπος | Τύπος |
0 | Round Robin |
1 | Ενεργό αντίγραφο ασφαλείας |
2 | XOR |
3 | Αναμετάδοση |
4 | LACP |
5 | Υπόλοιπο φορτίου μετάδοσης |
6 | Προσαρμοστικό Ισοζύγιο Φορτίου |
Υπάρχουν διάφορες μέθοδοι για να δημιουργήσετε ένα bonding στο Linux. Μία από τις πιο κοινές μεθόδους είναι η χρήση της διαμόρφωσης δικτύου files (π.χample, /etc/network/ διεπαφές ή /etc/sysconfig/network-scripts/ifcfg-bondX).
Διαμόρφωση με χρήση της ρύθμισης παραμέτρων δικτύου Files
Τα παρακάτω βήματα δημιουργούν σύνδεση μέσω της διαμόρφωσης δικτύου files.
- Επιλέξτε δύο ή περισσότερες θύρες NIC για συγκόλληση (π.χample, ethX και ethY)
- Ανοίξτε το NIC Configuration Files κάτω από το /etc/sysconfig/network-scripts/ για την απαιτούμενη διεπαφή NIC (π.χ.ample, vi ifcfg-ethX και vi ifcfg-ethY) και επισυνάψτε το ακόλουθο κείμενο:
MASTER=bondN [Σημείωση: Το N είναι ακέραιος αριθμός που αναφέρει τον αριθμό του δεσμού.] SLAVE=yes - Δημιουργήστε ένα σενάριο δικτύου ομολόγων file χρησιμοποιώντας το vi /etc/sysconfig/networkscripts/ifcfg-bondN και πληκτρολογήστε το ακόλουθο κείμενο:
DEVICE=bondN [Σημείωση: Το N είναι ακέραιος αριθμός που αναφέρει τον αριθμό δεσμού] ONBOOT=ναι USERCTL=no BOOTPROTO=dhcp (ή) κανένα
IPADDR=200.20.2.4 [απαιτείται εάν BOOTPROTO=κανένας] NETMASK=255.255.255.0 [απαιτείται εάν BOOTPROTO=κανένας] ΔΙΚΤΥΟ=200.20.2.0 [απαιτείται εάν BOOTPROTO=κανένας] BROADCAST200.20.2.255 απαιτούμενο εάν BOOTPROTO=κανένας BOOTPROTO=κανένα] BONDING_OPTS=”mode=1 miimon=100″
ΣΗΜΕΙΩΜΑ
Η λειτουργία μπορεί να είναι οποιοσδήποτε ακέραιος από 0 έως 6 με βάση την απαίτηση. - Επανεκκινήστε τις υπηρεσίες δικτύου χρησιμοποιώντας επανεκκίνηση δικτύου υπηρεσιών ή επανεκκίνηση systemctl NetworkManager.service
Αντιμετώπιση προβλημάτων απόδοσης
7.1 Χρήση CPU
Ελέγξτε τη χρήση της CPU ανά πυρήνα ενώ εκτελείται ο φόρτος εργασίας.
Σημειώστε ότι η χρήση ανά πυρήνα είναι πιο σχετική με την απόδοση από τη συνολική χρήση της CPU, καθώς παρέχει μια ιδέα για τη χρήση της CPU ανά ουρά δικτύου. Εάν έχετε μόνο μερικά νήματα που εκτελούν την κυκλοφορία δικτύου, τότε μπορεί να έχετε μόνο μερικούς πυρήνες που χρησιμοποιούνται. Ωστόσο, εάν αυτοί οι πυρήνες είναι στο 100%, τότε η απόδοση του δικτύου σας πιθανότατα περιορίζεται από τη χρήση της CPU και είναι καιρός να εκτελέσετε τα εξής:
- Συντονίστε την εποπτεία IRQ/το μέγεθος δακτυλίου όπως περιγράφεται στην Εποπτεία διακοπής.
- Αυξήστε τον αριθμό των νημάτων της εφαρμογής για να κατανείμετε το φορτίο της CPU σε περισσότερους πυρήνες. Εάν όλοι οι πυρήνες εκτελούνται στο 100%, τότε η εφαρμογή σας μπορεί να είναι δεσμευμένη σε CPU και όχι σε δίκτυο.
Κοινώς διαθέσιμα εργαλεία:
- κορυφή
— Πατήστε 1 για να αναπτύξετε τη λίστα των CPU και να ελέγξετε ποιες χρησιμοποιούνται.
— Παρατηρήστε το επίπεδο χρήσης.
— Παρατηρήστε ποιες διεργασίες αναφέρονται ως πιο ενεργές (κορυφή της λίστας). - mpstat
Οι παρακάτω π.χampΗ γραμμή εντολών le δοκιμάστηκε στο Red Hat Enterprise Linux 7.x.
Εμφανίζει τη χρήση της CPU ανά πυρήνα (βρίσκοντας το συνολικό ποσοστό αδράνειας και αφαιρώντας από το 100) και επισημαίνει τις τιμές πάνω από 80% με κόκκινο χρώμα. mpstat -P ALL 1 1 | grep -v Μέσος όρος | ουρά -n +5 | κεφαλή -η -1 | awk '{ print (100-$13)}' | egrep -color=πάντα '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*| 100|' | στήλη - perf top Αναζητήστε πού ξοδεύονται οι κύκλοι.
7.2 i40e Μετρητές
Το πρόγραμμα οδήγησης i40e παρέχει μια μακρά λίστα μετρητών για εντοπισμό σφαλμάτων και παρακολούθηση διεπαφής μέσω της εντολής ethtool -S ethX. Μπορεί να είναι χρήσιμο να παρακολουθείτε την έξοδο ενώ εκτελείται ένας φόρτος εργασίας ή/και να συγκρίνετε τις τιμές του μετρητή πριν και μετά την εκτέλεση του φόρτου εργασίας.
- Για να λάβετε μια πλήρη συλλογή μετρητών i40e: ethtool -S ethX
- Για να παρακολουθήσετε μόνο μη μηδενικούς μετρητές: παρακολουθήστε -d (ethtool -S ethX) | egrep -v :\ 0 | στήλη
Μερικά πράγματα που πρέπει να αναζητήσετε: - Το rx_dropped σημαίνει ότι η CPU δεν εξυπηρετεί τα buffer αρκετά γρήγορα.
- port.rx_dropped σημαίνει ότι κάτι δεν είναι αρκετά γρήγορο στην υποδοχή/μνήμη/σύστημα.
7.3 Μετρητές δικτύου
Ελέγξτε το netstat -s πριν/μετά την εκτέλεση του φόρτου εργασίας.
Το Netstat συλλέγει πληροφορίες δικτύου από όλες τις συσκευές δικτύου του συστήματος. Επομένως, τα αποτελέσματα ενδέχεται να επηρεαστούν από δίκτυα άλλα από το υπό δοκιμή δίκτυο. Η έξοδος από το netstat -s μπορεί να είναι μια καλή ένδειξη προβλημάτων απόδοσης στο λειτουργικό σύστημα ή τον πυρήνα Linux. Συμβουλευτείτε οδηγούς συντονισμού λειτουργικών συστημάτων, όπως τον Οδηγό συντονισμού απόδοσης δικτύου Red Hat Enterprise Linux, για περισσότερες πληροφορίες σχετικά με τη γενική ρύθμιση του λειτουργικού συστήματος.
7.4 Αρχεία καταγραφής συστήματος
Ελέγξτε τα αρχεία καταγραφής συστήματος για σφάλματα και προειδοποιήσεις (/var/log/messages, dmesg).
7.5 Εργαλείο Intel svr-info
Η Intel παρέχει ένα εργαλείο svr-info (βλ https://github.com/intel/svr-info) για Linux που καταγράφει σχετικές λεπτομέρειες υλικού και λογισμικού από έναν διακομιστή. Η έξοδος svr-info μπορεί να είναι εξαιρετικά χρήσιμη για τον εντοπισμό σημείων συμφόρησης του συστήματος ή ρυθμίσεων/ρυθμίσεων που δεν είναι βελτιστοποιημένες για τον φόρτο εργασίας. Όταν ανοίγετε μια θήκη υποστήριξης με την Intel για ζητήματα απόδοσης που σχετίζονται με το Ethernet, φροντίστε να συμπεριλάβετε έξοδο svr-info (κείμενο file) για κάθε διακομιστή Linux στη δοκιμαστική διαμόρφωση.
- Λήψη και εγκατάσταση του svr-info:
wget -qO- https://github.com/intel/svr-info/releases/latest/download/svrinfo.tgz| tar xvz cd svr-info
./svr-info
> hostname.txt - Συλλέξτε την έξοδο:
./svr-info > hostname.txt - Επισύναψη ενός κειμένου (.txt) file για κάθε διακομιστή στη θήκη υποστήριξης της Intel για ανάλυση.
Συστάσεις για κοινά σενάρια απόδοσης
8.1 Προώθηση IP
- Ενημερώστε τον πυρήνα.
Ορισμένοι πρόσφατοι πυρήνες εντός διανομής έχουν υποβαθμίσει την απόδοση δρομολόγησης λόγω αλλαγών στον πυρήνα στον κώδικα δρομολόγησης ξεκινώντας με την αφαίρεση της κρυφής μνήμης δρομολόγησης λόγω ασφάλειας. Οι πρόσφατοι πυρήνες εκτός διανομής θα πρέπει να έχουν ενημερώσεις κώδικα που μειώνουν τον αντίκτυπο στην απόδοση αυτών των αλλαγών και ενδέχεται να παρέχουν βελτιωμένη απόδοση. - Απενεργοποιήστε το hyper-threading (λογικούς πυρήνες).
- Επεξεργαστείτε τις παραμέτρους εκκίνησης του πυρήνα.
— Απενεργοποίηση του iommu (intel_iommu=off ή iommu=off) από τη γραμμή εκκίνησης του πυρήνα, εκτός εάν απαιτείται για εικονικοποίηση
— Απενεργοποιήστε τη διαχείριση ενέργειας: processor.max_cstates=1 idle=poll pcie_aspm=off - Περιορίστε τον αριθμό των ουρών ώστε να είναι ίσος με τον αριθμό των πυρήνων στην τοπική υποδοχή (12 σε αυτήν την π.χ.ample). ethtool -L ethX συνδυασμένο 12
- Καρφιτσώστε τις διακοπές μόνο στην τοπική πρίζα. set_irq_affinity -X local ethX OR set_irq_affinity -X local ethX
ΣΗΜΕΙΩΜΑ
-Το X ή το -x μπορεί να χρησιμοποιηθεί ανάλογα με τον φόρτο εργασίας. - Αλλάξτε τα μεγέθη δακτυλίου Tx και Rx όπως απαιτείται. Μια μεγαλύτερη αξία απαιτεί περισσότερους πόρους, αλλά μπορεί να προσφέρει καλύτερες τιμές προώθησης. ethtool -G ethX rx 4096 tx 4096
- Απενεργοποιήστε το GRO κατά τη δρομολόγηση.
Λόγω ενός γνωστού ζητήματος πυρήνα, το GRO πρέπει να απενεργοποιηθεί κατά τη δρομολόγηση/προώθηση. ethtool -K ethX gro off όπου το ethX είναι η διεπαφή Ethernet που πρέπει να τροποποιηθεί. - Απενεργοποιήστε την προσαρμοστική εποπτεία διακοπής και ορίστε μια στατική τιμή. ethtool -C ethX adaptive-rx off adaptive-tx off ethtool -C ethX rx-usecs 64 tx-usecs 64
ΣΗΜΕΙΩΜΑ
Ανάλογα με τον τύπο του επεξεργαστή και τον φόρτο εργασίας, οι παράμετροι συγχώνευσης για RX και TX μπορούν να προσαρμοστούν για βελτιωμένη απόδοση (ή λιγότερη απώλεια καρέ).
- Απενεργοποιήστε το τείχος προστασίας. sudo systemctl απενεργοποίηση τείχους προστασίας sudo systemctl διακοπή τείχους προστασίας
- Ενεργοποίηση προώθησης IP. sysctl -w net.ipv4.ip_forward=1
- Διαμορφώστε τις μέγιστες τιμές για τα μεγέθη buffer υποδοχής λήψης και αποστολής. sysctl -w net.core.rmem_max=16777216 sysctl -w net.core.wmem_max=16777216
ΣΗΜΕΙΩΜΑ
Ανάλογα με τον φόρτο εργασίας ή την απαίτηση, αυτές οι τιμές μπορούν να αλλάξουν από την προεπιλογή.
8.2 Χαμηλή καθυστέρηση
- Απενεργοποιήστε το hyper-threading (λογικούς πυρήνες).
- Βεβαιωθείτε ότι η συσκευή δικτύου είναι τοπική στον πυρήνα numa 0.
- Καρφιτσώστε το σημείο αναφοράς στον πυρήνα 0 χρησιμοποιώντας το σύνολο εργασιών -c 0.
- Απενεργοποιήστε το irqbalance χρησιμοποιώντας systemctl stop irqbalance ή systemctl απενεργοποιήστε το irqbalance
- Εκτελέστε το σενάριο συνάφειας για να εξαπλωθεί στους πυρήνες. Δοκιμάστε είτε τοπικά είτε όλα.
- Απενεργοποιήστε την εποπτεία διακοπής. ethtool -C ethX rx-usecs 0 tx-usecs 0 adaptive-rx off adaptive-tx off rxusecs- high 0
- Περιορίστε τον αριθμό των ουρών για να είναι ίσος με τον αριθμό των πυρήνων στην τοπική υποδοχή (32 σε αυτήν την π.χ.ample). ethtool -L ethX συνδυασμένο 32
- Καρφιτσώστε τις διακοπές μόνο στην τοπική πρίζα (σενάριο συσκευασμένο με πηγή προγράμματος οδήγησης i40e). set_irq_affinity -X τοπικό ethX
- Χρησιμοποιήστε ένα καθιερωμένο σημείο αναφοράς όπως netperf -t TCP_RR, netperf -t UDP_RR ή NetPipe. netperf -t TCP_RR ή netperf -t UDP_RR
- Καρφιτσώστε το σημείο αναφοράς σε έναν μεμονωμένο πυρήνα στον τοπικό κόμβο NUMA. σύνολο εργασιών -γ
Intel ® Ethernet 700 Series
Οδηγός συντονισμού απόδοσης Linux
Δεκέμβριος 2024
Έγγρ. Αρ.: 334019, Αναθ.: 1.2
Έγγραφα / Πόροι
![]() |
Intel Ethernet 700 Series Linux Performance Tuning [pdf] Οδηγός χρήστη 334019, Ethernet 700 Series Linux Performance Tuning, Ethernet 700 Series, Linux Performance Tuning, Performance Tuning, Tuning |