Οι πελάτες ρωτούν συχνά για το CPU steal time. Ειδικά εκείνοι που χρησιμοποιούν έντονα τις CPU και για τους οποίους αποτελεί βασικό κριτήριο απόδοσης. Υπάρχουν αρκετές διαφορές στη ρύθμιση και τη συμπεριφορά των CPU και των πυρήνων μεταξύ φυσικών και εικονικών περιβαλλόντων. Ακόμη και μεταξύ των παρόχων cloud υπάρχουν διαφορές στις ρυθμίσεις που καθιστούν δύσκολη την άμεση σύγκριση. Γι’ αυτόν το λόγο θεωρήσαμε χρήσιμο να παρέχουμε μια σύντομη επισκόπηση της δικής μας ρύθμισης και της λογικής κατανομής CPU για τους πελάτες, καθώς και να εξηγήσουμε τις πιο κοινές πηγές του CPU steal time.
Αρχικά, λοιπόν, για όσους δεν είναι εξοικειωμένοι με την έννοια, το CPU steal time είναι ο χρόνος που η εικονική σας CPU μέσα στον cloud διακομιστή σας πρέπει να περιμένει την πραγματική φυσική CPU, ενώ ο hypervisor είναι απασχολημένος χρησιμοποιώντας τη για άλλα πράγματα (όπως άλλες εικονικές μηχανές/cloud διακομιστές). Αυτό είναι ένα εξαιρετικό άρθρο σχετικά με το CPU steal time που αξίζει πραγματικά να διαβάσετε.
Λίγες πληροφορίες για τη ρύθμιση των CPU μας
Το πρώτο πράγμα που πρέπει να κατανοήσετε σχετίζεται με τον τρόπο με τον οποίο κατανέμουμε τους πυρήνες μεταξύ των εικονικών μηχανών σε κάθε φυσικό κόμβο υπολογισμού που φιλοξενεί τις υπηρεσίες σας. Οι CPU και οι πυρήνες τους στη CloudSigma είναι κοινόχρηστοι. Με άλλα λόγια, δεν δεσμεύουμε έναν cloud διακομιστή πελάτη σε συγκεκριμένους πυρήνες. Ο χρόνος CPU εκχωρείται δυναμικά από τον scheduler του φυσικού κόμβου υπολογισμού και όλα είναι κοινόχρηστα. Πιστεύουμε ότι αυτό προσφέρει μια σειρά από οφέλη για την παροχή πιο αξιόπιστης απόδοσης συνολικά, επιτρέποντας στον κόμβο υπολογισμού να κάνει λογικές προσαρμογές κατανομής σε πραγματικό χρόνο για την εξισορρόπηση του φορτίου.
Σε συνδυασμό με αυτό, χρησιμοποιούμε Control Groups (συντομογραφία cgroups) για να εγγυηθούμε αρκετό χρόνο CPU για καθέναν από τους cloud διακομιστές, σύμφωνα με τους πόρους που έχετε ορίσει μέσω του μεγέθους του διακομιστή. Στο τέλος, ο scheduler αποφασίζει τι θα κάνει με τους υπόλοιπους πόρους και τα cgroups. Αξίζει επίσης να σημειωθεί ότι δεσμεύουμε ένα σύνολο συγκεκριμένων πυρήνων ώστε να βρίσκονται εκτός του εύρους κατανομής για τις υπολογιστικές εργασίες των πελατών. Χρησιμοποιούμε αυτούς τους πυρήνες για την εκτέλεση του λειτουργικού συστήματος του φυσικού κεντρικού υπολογιστή. Συγκεκριμένα, δεσμεύουμε πρόσθετους πυρήνες για την επεξεργασία των λειτουργιών δικτύου και αποθήκευσης. Όλα αυτά στοχεύουν στην αύξηση της σταθερότητας του συνολικού μηχανήματος. Επιπλέον, βοηθά στην παροχή αξιόπιστων επιπέδων απόδοσης με την πάροδο του χρόνου, ανεξάρτητα από το φορτίο άλλων πελατών για εσάς ως πελάτη.
Οι πηγές του CPU Steal Time σε ένα εικονικό περιβάλλον
Σε αντίθεση με ένα φυσικό περιβάλλον, υπάρχουν πολλαπλές πηγές και καταστάσεις όπου μπορείτε να αντιμετωπίσετε CPU steal time. Αυτό συμβαίνει επειδή τα πράγματα είναι πιο περίπλοκα σε ένα εικονικό περιβάλλον πολλαπλών χρηστών. Δεν πρόκειται σε όλες τις περιπτώσεις για μια κατάσταση όπου δεν λαμβάνετε τον χρόνο CPU που θα έπρεπε· στην πραγματικότητα, σε πολλές περιπτώσεις μπορείτε συχνά να απορροφήσετε επιπλέον κύκλους CPU πέρα από το καθορισμένο μέγεθός σας, αλλά αυτή δεν είναι μια κατάσταση όπου θα βλέπατε CPU steal time. Οι τρεις πιο συνηθισμένες καταστάσεις ακολουθούν παρακάτω με περισσότερες λεπτομέρειες.
Ο Cloud διακομιστής σας είναι υπερφορτωμένος
Συμβαίνει! Όλοι θέλουν να χρησιμοποιούν όσο το δυνατόν πλησιέστερα στη μέγιστη χωρητικότητα αυτό για το οποίο πληρώνουν, ωστόσο εάν η εκχωρημένη CPU στον εικονικό cloud διακομιστή σας δεν επαρκεί για την επεξεργασία του φόρτου εργασίας, μπορεί να δείτε CPU steal time καθώς οι εργασίες συσσωρεύονται και μπαίνουν σε ουρά αναμονής μέσα στην εικονική CPU. Εάν αυτή είναι η κύρια αιτία του CPU steal time, τότε η λύση είναι να αλλάξετε το μέγεθος του cloud διακομιστή. Εάν πρόκειται για προσωρινή υπερφόρτωση, μπορείτε με ασφάλεια να αφήσετε τα πράγματα ως έχουν. Θα δείτε το CPU steal time να εξαφανίζεται όταν μειωθεί το φορτίο σας.
Ο φυσικός διακομιστής που φιλοξενεί τον Cloud διακομιστή σας είναι υπερφορτωμένος
Εάν υπάρχει υπερφόρτωση του κεντρικού υπολογιστή, σε αυτή την περίπτωση πρόκειται για σφάλμα από τη δική μας πλευρά. Είναι σπάνιο, αλλά μπορεί να συμβεί. Σε αυτή την περίπτωση, χρησιμοποιούμε live migration για να μεταφέρουμε χωρίς διακοπή τις εικονικές μηχανές σε άλλους φυσικούς κόμβους υπολογισμού, ώστε να επαναφέρουμε τα επίπεδα φορτίου στα κανονικά επίπεδα. Γενικά, διατηρούμε τους κεντρικούς υπολογιστές πολύ κάτω από το πλήρες φορτίο. Επομένως, εάν συνεχίσετε να το παρατηρείτε αυτό για παρατεταμένο χρονικό διάστημα, επικοινωνήστε μαζί μας. Η δωρεάν υποστήριξή μας 24/7 μπορεί να ελέγξει τον φυσικό κεντρικό υπολογιστή στον οποίο βρίσκεστε. Εάν δεν υπάρχει υπερφόρτωση, τότε είναι απίθανο να είναι αυτή η κύρια αιτία του CPU steal time.
Χρησιμοποιείτε μικρότερο μέγεθος εικονικού πυρήνα
Στην CloudSigma σάς δίνουμε τη δυνατότητα να ορίσετε το μέγεθος του εικονικού πυρήνα για να επωφεληθείτε, για παράδειγμα, από περισσότερα νήματα CPU ή περισσότερους μικρότερους εικονικούς πυρήνες για οποιοδήποτε μέγεθος διακομιστή cloud. Ο διακομιστής cloud εντός του λειτουργικού συστήματος θα βλέπει πάντα το μέγεθος του πυρήνα ως το πλήρες φυσικό μέγεθος.
Αν ο φυσικός πυρήνας είναι 2.6GHz αλλά το VM σας είναι 4GHz και δύο πυρήνες, κάθε εικονικός πυρήνας θα είναι 2GHz. Έτσι, θα βλέπετε πάντα steal time. Στην πραγματικότητα, αυτό συμβαίνει επειδή λαμβάνετε ένα αναλογικό (pro rata) ποσό του συνολικού πυρήνα και όχι το πλήρες μέγεθος, λόγω του ότι το μέγεθος του εικονικού πυρήνα είναι μικρότερο. Ως εκ τούτου, θα πρέπει πάντα να προσαρμόζετε τυχόν υπολογισμούς του CPU steal time για να λάβετε υπόψη το μικρότερο μέγεθος εικονικού πυρήνα, εάν πράγματι το χρησιμοποιείτε. Για να το αποφύγετε αυτό, μπορείτε να χρησιμοποιήσετε το πλήρες μέγεθος πυρήνα ανά πυρήνα. Μπορείτε να το κάνετε αυτό επεκτείνοντας το μέγεθος του εικονικού πυρήνα στο πλήρες μέγεθος του πυρήνα της CPU (π.χ. Intel v4 2.6GHz).
Συμπέρασμα
Το CPU steal time στο cloud είναι λίγο πιο περίπλοκο από ό,τι στα παραδοσιακά φυσικά περιβάλλοντα ενός ενοικιαστή (single tenant). Ωστόσο, σίγουρα εξακολουθεί να υπάρχει. Η αναφορά του CPU steal time από τα λειτουργικά συστήματα δεν έχει ωστόσο προσαρμοστεί στις διαφορετικές συνθήκες. Αυτό σημαίνει ότι μπορεί να λάβετε ψευδώς θετικά αποτελέσματα. Όταν εντοπίζετε CPU steal time, αυτό συνήθως σημαίνει ότι υπάρχει περιορισμός πόρων. Ελπίζουμε αυτή η ανάρτηση να σας βοηθήσει να εντοπίσετε γρήγορα τη βασική αιτία και να εξασφαλίσετε τη συνεχή ομαλή λειτουργία.
Καλό computing!
Robert
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.