Νέος εξισορροπητής φορτίου CPU από το MIT

Το σύστημα Shenango σχεδιάζεται να χρησιμοποιηθεί σε κέντρα δεδομένων.

Νέος εξισορροπητής φορτίου CPU από το MIT
/ φωτογραφία Μάρκο βεράντα CC BY

Σύμφωνα με έναν από τους παρόχους, κέντρα δεδομένων χρήση μόνο το 20–40% της διαθέσιμης υπολογιστικής ισχύος. Σε υψηλά φορτία αυτός ο δείκτης μπορεί να φτάσει το 60%. Αυτή η κατανομή πόρων οδηγεί στην εμφάνιση των λεγόμενων «ζόμπι διακομιστών». Πρόκειται για μηχανές που κάθονται αδρανείς τις περισσότερες φορές, σπαταλώντας ενέργεια. Σήμερα το 30% των διακομιστών στον κόσμο είναι χωρίς δουλειά, καταναλώνοντας ηλεκτρική ενέργεια αξίας 30 δισεκατομμυρίων δολαρίων ετησίως.

Το MIT αποφάσισε να καταπολεμήσει την αναποτελεσματική χρήση των υπολογιστικών πόρων.

Μηχανική ομάδα έχει αναπτύξει σύστημα εξισορρόπησης φορτίου επεξεργαστή που ονομάζεται Shenango. Σκοπός του είναι να παρακολουθεί την κατάσταση της προσωρινής μνήμης εργασιών και να αναδιανέμει κολλημένες διεργασίες (που δεν μπορούν να λάβουν χρόνο CPU) σε ελεύθερες μηχανές.

Πώς λειτουργεί το Shenango

Το Shenango είναι μια βιβλιοθήκη Linux σε C με δεσμεύσεις Rust και C++. Ο κώδικας του έργου και οι δοκιμαστικές εφαρμογές δημοσιεύονται στο αποθετήρια στο GitHub.

Η λύση βασίζεται στον αλγόριθμο IOKernel, ο οποίος εκτελείται σε έναν αποκλειστικό πυρήνα ενός συστήματος πολλαπλών επεξεργαστών. Διαχειρίζεται αιτήματα CPU χρησιμοποιώντας ένα πλαίσιο DPDK, το οποίο επιτρέπει στις εφαρμογές να επικοινωνούν απευθείας με συσκευές δικτύου.

Το IOKernel αποφασίζει σε ποιους πυρήνες θα αναθέσει μια συγκεκριμένη εργασία. Ο αλγόριθμος αποφασίζει επίσης πόσοι πυρήνες θα χρειαστούν. Για κάθε διεργασία, καθορίζονται οι κύριοι πυρήνες (εγγυημένοι) και οι πρόσθετοι (διάρρητοι) - οι τελευταίοι εκκινούνται σε περίπτωση απότομης αύξησης του αριθμού των αιτημάτων προς την CPU.

Η ουρά αιτημάτων IOkernel είναι οργανωμένη ως ring buffer. Κάθε πέντε μικροδευτερόλεπτα, ο αλγόριθμος ελέγχει εάν έχουν ολοκληρωθεί όλες οι εργασίες που έχουν ανατεθεί στον πυρήνα. Για να γίνει αυτό, συγκρίνει την τρέχουσα θέση της κεφαλής του buffer με την προηγούμενη θέση της ουράς του. Εάν αποδειχθεί ότι η ουρά ήταν ήδη στην ουρά κατά τη στιγμή του προηγούμενου ελέγχου, το σύστημα σημειώνει την υπερφόρτωση του buffer και εκχωρεί έναν επιπλέον πυρήνα για τη διαδικασία.

Κατά τη διανομή του φορτίου, δίνεται προτεραιότητα στους πυρήνες στους οποίους η ίδια διεργασία είχε εκτελεστεί νωρίτερα και παρέμεινε εν μέρει στην κρυφή μνήμη ή σε οποιουσδήποτε αδρανείς πυρήνες.

Νέος εξισορροπητής φορτίου CPU από το MIT

Ο Shenango υιοθετεί επιπλέον την προσέγγιση κλοπή εργασίας. Οι πυρήνες που διατίθενται για την εκτέλεση μιας εφαρμογής παρακολουθούν τον αριθμό των εργασιών που έχει ο ένας ο άλλος. Εάν ένας πυρήνας ολοκληρώσει τη λίστα εργασιών του πριν από τους άλλους, τότε «απαλλαγεί» μέρος του φορτίου από τους γείτονές του.

Πλεονεκτήματα και μειονεκτήματα

Επί λόγια μηχανικοί από το MIT, Shenango είναι σε θέση να επεξεργάζονται πέντε εκατομμύρια αιτήματα ανά δευτερόλεπτο και να διατηρούν μέσο χρόνο απόκρισης 37 μικροδευτερόλεπτα. Οι ειδικοί λένε ότι σε ορισμένες περιπτώσεις η τεχνολογία μπορεί να αυξήσει το ποσοστό χρήσης των επεξεργαστών στα κέντρα δεδομένων στο 100%. Ως αποτέλεσμα, οι χειριστές των κέντρων δεδομένων θα μπορούν να εξοικονομούν χρήματα για την αγορά και τη συντήρηση διακομιστών.

Δυνατότητα λύσης γιορτάστε και ειδικούς από άλλα πανεπιστήμια. Σύμφωνα με καθηγητή από κορεατικό ινστιτούτο, το σύστημα MIT θα βοηθήσει στη μείωση των καθυστερήσεων στις υπηρεσίες Ιστού. Για παράδειγμα, θα είναι χρήσιμο σε ηλεκτρονικά καταστήματα. Τις ημέρες των εκπτώσεων υπάρχει ακόμη και δεύτερη καθυστέρηση στη φόρτωση της σελίδας приводит σε μείωση του αριθμού των προβολών ιστότοπου κατά 11%. Η άμεση διανομή φορτίου θα βοηθήσει στην εξυπηρέτηση περισσότερων πελατών.

Η τεχνολογία εξακολουθεί να έχει μειονεκτήματα - δεν υποστηρίζει πολυεπεξεργαστή NUMA-συστήματα στα οποία τα τσιπ είναι συνδεδεμένα με διαφορετικές μονάδες μνήμης και δεν «επικοινωνούν» μεταξύ τους. Σε αυτήν την περίπτωση, το IOKernel μπορεί να ρυθμίσει τη λειτουργία μιας ξεχωριστής ομάδας επεξεργαστών, αλλά όχι όλων των τσιπ διακομιστή.

Νέος εξισορροπητής φορτίου CPU από το MIT
/ φωτογραφία Τιμ Ρέκμαν CC BY

Παρόμοιες τεχνολογίες

Άλλα συστήματα εξισορρόπησης φορτίου επεξεργαστή περιλαμβάνουν το Arachne. Υπολογίζει πόσους πυρήνες θα χρειαστεί μια εφαρμογή κατά την εκκίνηση και κατανέμει τις διαδικασίες σύμφωνα με αυτόν τον δείκτη. Σύμφωνα με τους συγγραφείς, η μέγιστη καθυστέρηση μιας εφαρμογής στο Arachne είναι περίπου 10 χιλιάδες μικροδευτερόλεπτα.

Η τεχνολογία υλοποιείται ως βιβλιοθήκη C++ για Linux και ο πηγαίος κώδικας της είναι διαθέσιμος στη διεύθυνση GitHub.

Ένα άλλο εργαλείο εξισορρόπησης είναι το ZygOS. Όπως το Shenango, η τεχνολογία χρησιμοποιεί τη μέθοδο κλοπής εργασίας για να αναδιανείμει τις διαδικασίες. Σύμφωνα με τους συντάκτες του ZygOS, η μέση καθυστέρηση εφαρμογής κατά τη χρήση του εργαλείου είναι περίπου 150 μικροδευτερόλεπτα και η μέγιστη είναι περίπου 450 μικροδευτερόλεπτα. Ο κωδικός του έργου είναι επίσης βρίσκεται σε δημόσιο τομέα.

Ευρήματα

Τα σύγχρονα κέντρα δεδομένων συνεχίζουν να επεκτείνονται Η αυξητική τάση είναι ιδιαίτερα αισθητή στην αγορά των κέντρων δεδομένων υπερκλίμακας: τώρα στον κόσμο υπάρχει 430 κέντρα δεδομένων υπερκλίμακας, αλλά τα επόμενα χρόνια ο αριθμός τους μπορεί να αυξηθεί κατά 30%. Για το λόγο αυτό, οι τεχνολογίες εξισορρόπησης φορτίου επεξεργαστή θα έχουν μεγάλη ζήτηση. Συστήματα όπως το Shenango είναι ήδη διαθέσιμα υλοποιώ, εφαρμόζω μεγάλες εταιρείες και ο αριθμός τέτοιων εργαλείων θα αυξηθεί μόνο στο μέλλον.

Δημοσιεύσεις από το Πρώτο ιστολόγιο σχετικά με το εταιρικό IaaS:

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο