Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Εάν διαχειρίζεστε μια εικονική υποδομή που βασίζεται στο VMware vSphere (ή σε οποιαδήποτε άλλη στοίβα τεχνολογίας), πιθανότατα ακούτε συχνά παράπονα από χρήστες: "Η εικονική μηχανή είναι αργή!" Σε αυτήν τη σειρά άρθρων θα αναλύσω τις μετρήσεις απόδοσης και θα σας πω τι και γιατί επιβραδύνεται και πώς να βεβαιωθείτε ότι δεν επιβραδύνεται.

Θα εξετάσω τις ακόλουθες πτυχές της απόδοσης της εικονικής μηχανής:

  • CPU,
  • ΕΜΒΟΛΟ,
  • ΔΙΣΚΟΣ,
  • Δίκτυο.

Θα ξεκινήσω με την CPU.

Για να αναλύσουμε την απόδοση θα χρειαστούμε:

  • Μετρητές απόδοσης vCenter – μετρητές απόδοσης, τα γραφήματα των οποίων μπορούν να προβληθούν μέσω του vSphere Client. Οι πληροφορίες για αυτούς τους μετρητές είναι διαθέσιμες σε οποιαδήποτε έκδοση του προγράμματος-πελάτη («χοντρός» πελάτης σε C#, πελάτης ιστού στο Flex και πελάτης ιστού σε HTML5). Σε αυτά τα άρθρα θα χρησιμοποιήσουμε στιγμιότυπα οθόνης από τον πελάτη C#, μόνο και μόνο επειδή φαίνονται καλύτερα σε μικρογραφία :)
  • ESXTOP – ένα βοηθητικό πρόγραμμα που εκτελείται από τη γραμμή εντολών ESXi. Με τη βοήθειά του, μπορείτε να λάβετε τις τιμές των μετρητών απόδοσης σε πραγματικό χρόνο ή να ανεβάσετε αυτές τις τιμές για μια συγκεκριμένη περίοδο σε ένα αρχείο .csv για περαιτέρω ανάλυση. Στη συνέχεια, θα σας πω περισσότερα για αυτό το εργαλείο και θα παρέχω αρκετούς χρήσιμους συνδέσμους για τεκμηρίωση και άρθρα σχετικά με το θέμα.

Λίγο θεωρίας

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Στο ESXi, μια ξεχωριστή διαδικασία – κόσμος στην ορολογία VMware – είναι υπεύθυνη για τη λειτουργία κάθε vCPU (πυρήνας εικονικής μηχανής). Υπάρχουν επίσης διαδικασίες εξυπηρέτησης, αλλά από την άποψη της ανάλυσης της απόδοσης της VM είναι λιγότερο ενδιαφέρουσες.

Μια διαδικασία στο ESXi μπορεί να βρίσκεται σε μία από τις τέσσερις καταστάσεις:

  • τρέξιμο – η διαδικασία εκτελεί κάποια χρήσιμη εργασία.
  • Περιμένετε – η διαδικασία δεν κάνει καμία εργασία (αδράνεια) ή περιμένει είσοδο/έξοδο.
  • Κόστοπ – μια κατάσταση που εμφανίζεται σε εικονικές μηχανές πολλαπλών πυρήνων. Εμφανίζεται όταν ο προγραμματιστής CPU του hypervisor (ESXi CPU Scheduler) δεν μπορεί να προγραμματίσει την ταυτόχρονη εκτέλεση όλων των ενεργών πυρήνων εικονικής μηχανής στους πυρήνες του φυσικού διακομιστή. Στον φυσικό κόσμο, όλοι οι πυρήνες επεξεργαστών λειτουργούν παράλληλα, το λειτουργικό σύστημα επισκέπτη μέσα στο VM αναμένει παρόμοια συμπεριφορά, επομένως ο hypervisor πρέπει να επιβραδύνει τους πυρήνες VM που έχουν τη δυνατότητα να ολοκληρώσουν τον κύκλο του ρολογιού τους πιο γρήγορα. Στις σύγχρονες εκδόσεις του ESXi, ο προγραμματιστής CPU χρησιμοποιεί έναν μηχανισμό που ονομάζεται χαλαρός συν-προγραμματισμός: ο υπερεπόπτης εξετάζει το χάσμα μεταξύ του «γρηγορότερου» και του «αργότερου» πυρήνα εικονικής μηχανής (λοξή). Εάν το κενό υπερβεί ένα συγκεκριμένο όριο, ο γρήγορος πυρήνας εισέρχεται στην κατάσταση κόστους. Εάν οι πυρήνες VM περνούν πολύ χρόνο σε αυτήν την κατάσταση, μπορεί να προκληθούν προβλήματα απόδοσης.
  • Έτοιμος – η διεργασία εισέρχεται σε αυτήν την κατάσταση όταν ο hypervisor δεν μπορεί να εκχωρήσει πόρους για την εκτέλεσή της. Οι υψηλές τιμές ετοιμότητας μπορεί να προκαλέσουν προβλήματα απόδοσης VM.

Βασικοί μετρητές απόδοσης CPU εικονικής μηχανής

Χρήση επεξεργαστή, %. Εμφανίζει το ποσοστό χρήσης της CPU για μια δεδομένη περίοδο.

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Πώς να αναλύσετε; Εάν ένα VM χρησιμοποιεί σταθερά CPU στο 90% ή υπάρχουν κορυφές έως και 100%, τότε έχουμε προβλήματα. Τα προβλήματα μπορούν να εκφραστούν όχι μόνο στην «αργή» λειτουργία της εφαρμογής μέσα στο VM, αλλά και στη μη προσβασιμότητα του VM μέσω του δικτύου. Εάν το σύστημα παρακολούθησης δείχνει ότι το VM πέφτει περιοδικά, δώστε προσοχή στις κορυφές στο γράφημα Χρήσης CPU.

Υπάρχει ένας τυπικός συναγερμός που δείχνει το φορτίο της CPU της εικονικής μηχανής:

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Τι να κάνω; Εάν η χρήση της CPU μιας εικονικής μηχανής βρίσκεται συνεχώς στην οροφή, τότε μπορείτε να σκεφτείτε να αυξήσετε τον αριθμό των vCPU (δυστυχώς, αυτό δεν βοηθά πάντα) ή να μετακινήσετε το VM σε έναν διακομιστή με πιο ισχυρούς επεξεργαστές.

Χρήση CPU σε MHz

Στα γραφήματα στο vCenter Usage σε % μπορείτε να δείτε μόνο για ολόκληρη την εικονική μηχανή· δεν υπάρχουν γραφήματα για μεμονωμένους πυρήνες (στο Esxtop υπάρχουν % τιμές για πυρήνες). Για κάθε πυρήνα μπορείτε να δείτε το Usage σε MHz.

Πώς να αναλύσετε; Συμβαίνει ότι μια εφαρμογή δεν έχει βελτιστοποιηθεί για αρχιτεκτονική πολλών πυρήνων: χρησιμοποιεί μόνο έναν πυρήνα 100%, και οι υπόλοιποι είναι αδρανείς χωρίς φορτίο. Για παράδειγμα, με τις προεπιλεγμένες ρυθμίσεις δημιουργίας αντιγράφων ασφαλείας, το MS SQL ξεκινά τη διαδικασία σε έναν μόνο πυρήνα. Ως αποτέλεσμα, το αντίγραφο ασφαλείας επιβραδύνεται όχι λόγω της αργής ταχύτητας των δίσκων (αυτό ήταν που αρχικά παραπονέθηκε ο χρήστης), αλλά επειδή ο επεξεργαστής δεν μπορεί να αντεπεξέλθει. Το πρόβλημα λύθηκε αλλάζοντας τις παραμέτρους: η δημιουργία αντιγράφων ασφαλείας άρχισε να εκτελείται παράλληλα σε πολλά αρχεία (αντίστοιχα, σε διάφορες διεργασίες).

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU
Ένα παράδειγμα ανομοιόμορφου φορτίου στους πυρήνες.

Υπάρχει επίσης μια κατάσταση (όπως στο παραπάνω γράφημα) όταν οι πυρήνες φορτώνονται άνισα και ορισμένοι από αυτούς έχουν κορυφές 100%. Όπως και με τη φόρτωση μόνο ενός πυρήνα, ο συναγερμός για τη χρήση της CPU δεν θα λειτουργήσει (είναι για ολόκληρο το VM), αλλά θα υπάρξουν προβλήματα απόδοσης.

Τι να κάνω; Εάν το λογισμικό σε μια εικονική μηχανή φορτώνει τους πυρήνες άνισα (χρησιμοποιεί μόνο έναν πυρήνα ή μέρος των πυρήνων), δεν έχει νόημα να αυξηθεί ο αριθμός τους. Σε αυτήν την περίπτωση, είναι καλύτερο να μετακινήσετε το VM σε διακομιστή με ισχυρότερους επεξεργαστές.

Μπορείτε επίσης να δοκιμάσετε να ελέγξετε τις ρυθμίσεις κατανάλωσης ενέργειας στο BIOS του διακομιστή. Πολλοί διαχειριστές ενεργοποιούν τη λειτουργία υψηλής απόδοσης στο BIOS και έτσι απενεργοποιούν τις τεχνολογίες εξοικονόμησης ενέργειας των καταστάσεων C και των καταστάσεων P. Οι σύγχρονοι επεξεργαστές Intel χρησιμοποιούν τεχνολογία Turbo Boost, η οποία αυξάνει τη συχνότητα μεμονωμένων πυρήνων επεξεργαστών σε βάρος άλλων πυρήνων. Αλλά λειτουργεί μόνο όταν είναι ενεργοποιημένες οι τεχνολογίες εξοικονόμησης ενέργειας. Εάν τους απενεργοποιήσουμε, ο επεξεργαστής δεν μπορεί να μειώσει την κατανάλωση ενέργειας των πυρήνων που δεν είναι φορτωμένοι.

Η VMware συνιστά να μην απενεργοποιείτε τις τεχνολογίες εξοικονόμησης ενέργειας στους διακομιστές, αλλά να επιλέγετε λειτουργίες που αφήνουν τη διαχείριση ενέργειας στον hypervisor όσο το δυνατόν περισσότερο. Σε αυτήν την περίπτωση, στις ρυθμίσεις κατανάλωσης ενέργειας του hypervisor, πρέπει να επιλέξετε High Performance.

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

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Έτοιμο CPU

Εάν ο πυρήνας VM (vCPU) βρίσκεται σε κατάσταση ετοιμότητας, δεν εκτελεί χρήσιμη εργασία. Αυτή η συνθήκη παρουσιάζεται όταν ο hypervisor δεν βρίσκει έναν ελεύθερο φυσικό πυρήνα στον οποίο μπορεί να εκχωρηθεί η διαδικασία vCPU της εικονικής μηχανής.

Πώς να αναλύσετε; Συνήθως, εάν οι πυρήνες μιας εικονικής μηχανής βρίσκονται σε κατάσταση ετοιμότητας περισσότερο από το 10% του χρόνου, θα παρατηρήσετε προβλήματα απόδοσης. Με απλά λόγια, περισσότερο από το 10% του χρόνου η εικονική μηχανή περιμένει να γίνουν διαθέσιμοι φυσικοί πόροι.

Στο vCenter μπορείτε να δείτε 2 μετρητές που σχετίζονται με το CPU Ready:

  • ετοιμότητα,
  • Ετοιμος.

Οι τιμές και των δύο μετρητών μπορούν να προβληθούν τόσο για ολόκληρο το VM όσο και για τους μεμονωμένους πυρήνες.
Η ετοιμότητα εμφανίζει την τιμή αμέσως ως ποσοστό, αλλά μόνο σε πραγματικό χρόνο (δεδομένα για την τελευταία ώρα, διάστημα μέτρησης 20 δευτερόλεπτα). Είναι καλύτερα να χρησιμοποιείτε αυτόν τον μετρητή μόνο για να αναζητήσετε προβλήματα "καυτά στα τακούνια".

Οι έτοιμες μετρητές μπορούν επίσης να προβληθούν από ιστορική προοπτική. Αυτό είναι χρήσιμο για τη δημιουργία προτύπων και για τη βαθύτερη ανάλυση του προβλήματος. Για παράδειγμα, εάν μια εικονική μηχανή αρχίσει να αντιμετωπίζει προβλήματα απόδοσης σε μια συγκεκριμένη χρονική στιγμή, μπορείτε να συγκρίνετε τα διαστήματα της τιμής CPU Ready με το συνολικό φορτίο στον διακομιστή όπου εκτελείται αυτό το VM και να λάβετε μέτρα για τη μείωση του φορτίου (εάν DRS αποτυγχάνει).

Το Ready, σε αντίθεση με το Readiness, εμφανίζεται όχι σε ποσοστά, αλλά σε χιλιοστά του δευτερολέπτου. Αυτός είναι ένας μετρητής τύπου Sumation, δηλαδή δείχνει πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης ο πυρήνας VM ήταν σε κατάσταση ετοιμότητας. Μπορείτε να μετατρέψετε αυτήν την τιμή σε ποσοστό χρησιμοποιώντας έναν απλό τύπο:

(Τιμή άθροισης έτοιμου CPU / (διάστημα προεπιλεγμένης ενημέρωσης γραφήματος σε δευτερόλεπτα * 1000)) * 100 = Έτοιμο CPU %

Για παράδειγμα, για το VM στο παρακάτω γράφημα, η μέγιστη τιμή Ready για ολόκληρη την εικονική μηχανή θα είναι η εξής:

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Κατά τον υπολογισμό του ποσοστού Ready, θα πρέπει να προσέξετε δύο σημεία:

  • Η τιμή Ready για ολόκληρο το VM είναι το άθροισμα του Ready μεταξύ των πυρήνων.
  • Μεσοδιάστημα μέτρησης. Για πραγματικό χρόνο είναι 20 δευτερόλεπτα και, για παράδειγμα, σε καθημερινά γραφήματα είναι 300 δευτερόλεπτα.

Με την ενεργή αντιμετώπιση προβλημάτων, αυτά τα απλά σημεία μπορούν εύκολα να χαθούν και μπορεί να χαθεί πολύτιμος χρόνος για την επίλυση ανύπαρκτων προβλημάτων.

Ας υπολογίσουμε το Ready με βάση τα δεδομένα από το παρακάτω γράφημα. (324474/(20*1000))*100 = 1622% για ολόκληρο το VM. Αν κοιτάξετε τους πυρήνες δεν είναι τόσο τρομακτικό: 1622/64 = 25% ανά πυρήνα. Σε αυτήν την περίπτωση, το αλίευμα είναι αρκετά εύκολο να εντοπιστεί: η τιμή Ready δεν είναι ρεαλιστική. Αλλά αν μιλάμε για 10–20% για ολόκληρο το VM με πολλούς πυρήνες, τότε για κάθε πυρήνα η τιμή μπορεί να είναι εντός του κανονικού εύρους.

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Τι να κάνω; Μια υψηλή τιμή Ready υποδεικνύει ότι ο διακομιστής δεν διαθέτει αρκετούς πόρους επεξεργαστή για την κανονική λειτουργία εικονικών μηχανών. Σε μια τέτοια κατάσταση, το μόνο που μένει είναι να μειωθεί η υπερσυνδρομή από τον επεξεργαστή (vCPU:pCPU). Προφανώς, αυτό μπορεί να επιτευχθεί με τη μείωση των παραμέτρων των υπαρχόντων VM ή με τη μετεγκατάσταση μέρους των VM σε άλλους διακομιστές.

Co-stop

Πώς να αναλύσετε; Αυτός ο μετρητής είναι επίσης τύπου Sumation και μετατρέπεται σε ποσοστά με τον ίδιο τρόπο όπως το Ready:

(Τιμή άθροισης CPU co-stop / (διάστημα προεπιλεγμένης ενημέρωσης γραφήματος σε δευτερόλεπτα * 1000)) * 100 = CPU co-stop %

Εδώ πρέπει επίσης να προσέξετε τον αριθμό των πυρήνων στο VM και το διάστημα μέτρησης.
Στην κατάσταση κόστους, ο πυρήνας δεν εκτελεί χρήσιμη εργασία. Με τη σωστή επιλογή του μεγέθους της εικονικής μηχανής και του κανονικού φορτίου στον διακομιστή, ο μετρητής co-stop θα πρέπει να είναι κοντά στο μηδέν.

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU
Σε αυτήν την περίπτωση, το φορτίο είναι σαφώς μη φυσιολογικό :)

Τι να κάνω; Εάν πολλά VM με μεγάλο αριθμό πυρήνων εκτελούνται σε έναν hypervisor και υπάρχει υπερσυνδρομή στην CPU, τότε ο μετρητής co-stop μπορεί να αυξηθεί, γεγονός που θα οδηγήσει σε προβλήματα με την απόδοση αυτών των VM.

Επίσης, το co-stop θα αυξηθεί εάν οι ενεργοί πυρήνες ενός VM χρησιμοποιούν νήματα σε έναν φυσικό πυρήνα διακομιστή με ενεργοποιημένη την υπερ-τράδευση. Αυτή η κατάσταση μπορεί να προκύψει, για παράδειγμα, εάν η εικονική μηχανή έχει περισσότερους πυρήνες από αυτούς που είναι φυσικά διαθέσιμοι στον διακομιστή όπου εκτελείται ή εάν η ρύθμιση "preferHT" είναι ενεργοποιημένη για την εικονική μηχανή. Μπορείτε να διαβάσετε για αυτήν τη ρύθμιση εδώ.

Για να αποφύγετε προβλήματα με την απόδοση της εικονικής μηχανής λόγω υψηλού co-stop, επιλέξτε το μέγεθος VM σύμφωνα με τις συστάσεις του κατασκευαστή του λογισμικού που εκτελείται σε αυτό το VM και τις δυνατότητες του φυσικού διακομιστή όπου εκτελείται το VM.

Μην προσθέτετε πυρήνες στο αποθεματικό, αυτό μπορεί να προκαλέσει προβλήματα απόδοσης όχι μόνο για το ίδιο το VM, αλλά και για τους γείτονές του στον διακομιστή.

Άλλες χρήσιμες μετρήσεις CPU

τρέξιμο – πόσος χρόνος (ms) κατά τη διάρκεια της περιόδου μέτρησης ήταν η vCPU σε κατάσταση RUN, δηλαδή εκτελούσε πραγματικά χρήσιμη εργασία.

Idle – πόσο καιρό (ms) κατά τη διάρκεια της περιόδου μέτρησης η vCPU ήταν σε κατάσταση αδράνειας. Οι υψηλές τιμές αδράνειας δεν αποτελούν πρόβλημα, η vCPU απλώς δεν είχε «τίποτα να κάνει».

Περιμένετε – πόσο καιρό (ms) κατά τη διάρκεια της περιόδου μέτρησης ήταν η vCPU σε κατάσταση αναμονής. Δεδομένου ότι το IDLE περιλαμβάνεται σε αυτόν τον μετρητή, οι υψηλές τιμές αναμονής δεν υποδηλώνουν επίσης πρόβλημα. Αλλά εάν το Wait IDLE είναι χαμηλό όταν το Wait είναι υψηλό, σημαίνει ότι το VM περίμενε να ολοκληρωθούν οι λειτουργίες I/O και αυτό, με τη σειρά του, μπορεί να υποδηλώνει πρόβλημα με την απόδοση του σκληρού δίσκου ή οποιωνδήποτε εικονικών συσκευών του VM.

Μέγιστο περιορισμένο – πόσο καιρό (ms) κατά την περίοδο μέτρησης η vCPU ήταν σε κατάσταση ετοιμότητας λόγω του καθορισμένου ορίου πόρων. Εάν η απόδοση είναι ανεξήγητα χαμηλή, τότε είναι χρήσιμο να ελέγξετε την τιμή αυτού του μετρητή και το όριο της CPU στις ρυθμίσεις VM. Τα VM μπορεί πράγματι να έχουν όρια που δεν γνωρίζετε. Για παράδειγμα, αυτό συμβαίνει όταν ένα VM κλωνοποιήθηκε από ένα πρότυπο στο οποίο είχε οριστεί το όριο της CPU.

Ανταλλαγή αναμονής – πόσο καιρό περίμενε κατά τη διάρκεια της περιόδου μέτρησης η vCPU για μια λειτουργία με VMkernel Swap. Εάν οι τιμές αυτού του μετρητή είναι πάνω από το μηδέν, τότε το VM έχει σίγουρα προβλήματα απόδοσης. Θα μιλήσουμε περισσότερα για το SWAP στο άρθρο σχετικά με τους μετρητές RAM.

ESXTOP

Εάν οι μετρητές απόδοσης στο vCenter είναι καλοί για την ανάλυση ιστορικών δεδομένων, τότε η λειτουργική ανάλυση του προβλήματος γίνεται καλύτερα στο ESXTOP. Εδώ, όλες οι τιμές παρουσιάζονται σε έτοιμη μορφή (δεν χρειάζεται να μεταφράσετε τίποτα) και η ελάχιστη περίοδος μέτρησης είναι 2 δευτερόλεπτα.
Η οθόνη ESXTOP για CPU καλείται με το πλήκτρο "c" και μοιάζει με αυτό:

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Για ευκολία, μπορείτε να αφήσετε μόνο διεργασίες εικονικής μηχανής πατώντας Shift-V.
Για να προβάλετε μετρήσεις για μεμονωμένους πυρήνες VM, πατήστε "e" και εισαγάγετε το GID του VM που σας ενδιαφέρει (30919 στο παρακάτω στιγμιότυπο οθόνης):

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Επιτρέψτε μου να περάσω εν συντομία τις στήλες που παρουσιάζονται από προεπιλογή. Επιπρόσθετες στήλες μπορούν να προστεθούν πατώντας "f".

NWLD (Αριθμός Κόσμων) – αριθμός διαδικασιών στην ομάδα. Για να επεκτείνετε την ομάδα και να δείτε μετρήσεις για κάθε διεργασία (για παράδειγμα, για κάθε πυρήνα σε μια εικονική μηχανή πολλαπλών πυρήνων), πατήστε "e". Εάν υπάρχουν περισσότερες από μία διεργασίες σε μια ομάδα, τότε οι μετρικές τιμές για την ομάδα είναι ίσες με το άθροισμα των μετρήσεων για τις μεμονωμένες διαδικασίες.

%ΜΕΤΑΧΕΙΡΙΣΜΕΝΟΣ – πόσοι κύκλοι CPU διακομιστή χρησιμοποιούνται από μια διεργασία ή μια ομάδα διεργασιών.

%ΤΡΕΞΙΜΟ – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης ήταν η διαδικασία σε κατάσταση RUN, δηλ. έκανε χρήσιμη δουλειά. Διαφέρει από το %USED στο ότι δεν λαμβάνει υπόψη την υπερ-νηματοποίηση, την κλιμάκωση συχνότητας και τον χρόνο που αφιερώνεται σε εργασίες συστήματος (%SYS).

%SYS – χρόνος που αφιερώνεται σε εργασίες συστήματος, για παράδειγμα: επεξεργασία διακοπής, I/O, λειτουργία δικτύου κ.λπ. Η τιμή μπορεί να είναι υψηλή εάν το VM έχει μεγάλη είσοδο/έξοδο.

%OVRLP – πόσο χρόνο αφιερώνει ο φυσικός πυρήνας στον οποίο εκτελείται η διαδικασία VM για εργασίες άλλων διεργασιών.

Αυτές οι μετρήσεις σχετίζονται μεταξύ τους ως εξής:

%USED = %RUN + %SYS - %OVRLP.

Συνήθως η μέτρηση %USED είναι πιο ενημερωτική.

%ΠΕΡΙΜΕΝΕ – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης ήταν η διαδικασία σε κατάσταση αναμονής. Ενεργοποιεί το IDLE.

%ΑΔΡΑΝΗΣ – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης η διεργασία ήταν σε κατάσταση IDLE.

%SWPWT – πόσο καιρό περίμενε κατά τη διάρκεια της περιόδου μέτρησης η vCPU για μια λειτουργία με VMkernel Swap.

%VMWAIT – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης η vCPU ήταν σε κατάσταση αναμονής για ένα συμβάν (συνήθως I/O). Δεν υπάρχει παρόμοιος μετρητής στο vCenter. Οι υψηλές τιμές υποδεικνύουν προβλήματα με I/O στο VM.

%WAIT = %VMWAIT + %IDLE + %SWPWT.

Εάν η εικονική μηχανή δεν χρησιμοποιεί VMkernel Swap, τότε κατά την ανάλυση προβλημάτων απόδοσης, συνιστάται να κοιτάξετε το %VMWAIT, καθώς αυτή η μέτρηση δεν λαμβάνει υπόψη την ώρα που η εικονική μηχανή δεν έκανε τίποτα (%IDLE).

%RDY – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης ήταν η διαδικασία σε κατάσταση ετοιμότητας.

%CSTP – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης ήταν η διαδικασία σε κατάσταση κόστους.

%MLMTD – πόσο καιρό κατά τη διάρκεια της περιόδου μέτρησης η vCPU ήταν σε κατάσταση ετοιμότητας λόγω του καθορισμένου ορίου πόρων.

%WAIT + %RDY + %CSTP + %RUN = 100% – ο πυρήνας VM βρίσκεται πάντα σε μία από αυτές τις τέσσερις καταστάσεις.

CPU σε hypervisor

Το vCenter έχει επίσης μετρητές απόδοσης CPU για τον υπερεπόπτη, αλλά δεν είναι τίποτα ενδιαφέρον - είναι απλώς το άθροισμα των μετρητών για όλα τα VM στον διακομιστή.
Ο πιο βολικός τρόπος για να δείτε την κατάσταση της CPU στον διακομιστή είναι στην καρτέλα "Σύνοψη":

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Για τον διακομιστή, καθώς και για την εικονική μηχανή, υπάρχει ένας τυπικός συναγερμός:

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Όταν το φορτίο της CPU του διακομιστή είναι υψηλό, τα VM που εκτελούνται σε αυτόν αρχίζουν να αντιμετωπίζουν προβλήματα απόδοσης.

Στο ESXTOP, τα δεδομένα φόρτωσης της CPU του διακομιστή εμφανίζονται στο επάνω μέρος της οθόνης. Εκτός από το τυπικό φόρτο της CPU, το οποίο δεν είναι πολύ ενημερωτικό για τους hypervisors, υπάρχουν τρεις ακόμη μετρήσεις:

CORE UTIL(%) – φόρτωση του φυσικού πυρήνα διακομιστή. Αυτός ο μετρητής δείχνει πόσο χρόνο ο πυρήνας εκτέλεσε εργασία κατά τη διάρκεια της περιόδου μέτρησης.

PCPU UTIL(%) – εάν το hyper-threading είναι ενεργοποιημένο, τότε υπάρχουν δύο νήματα (PCPU) ανά φυσικό πυρήνα. Αυτή η μέτρηση δείχνει πόσο χρόνο χρειάστηκε κάθε νήμα για να ολοκληρωθεί η εργασία.

PCPU USED(%) – το ίδιο με το PCPU UTIL(%), αλλά λαμβάνει υπόψη την κλιμάκωση συχνότητας (είτε μείωση της συχνότητας πυρήνα για λόγους εξοικονόμησης ενέργειας, είτε αύξηση της συχνότητας πυρήνα λόγω της τεχνολογίας Turbo Boost) και το υπερ-threading.

PCPU_USED% = PCPU_UTIL% * πραγματική συχνότητα πυρήνα / ονομαστική συχνότητα πυρήνα.

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU
Σε αυτό το στιγμιότυπο οθόνης, για ορισμένους πυρήνες, λόγω του Turbo Boost, η τιμή USED είναι μεγαλύτερη από 100%, καθώς η συχνότητα του πυρήνα είναι υψηλότερη από την ονομαστική.

Λίγα λόγια για το πώς λαμβάνεται υπόψη το hyper-threading. Εάν οι διεργασίες εκτελούνται το 100% του χρόνου και στα δύο νήματα του φυσικού πυρήνα του διακομιστή, ενώ ο πυρήνας λειτουργεί στην ονομαστική συχνότητα, τότε:

  • CORE UTIL για τον πυρήνα θα είναι 100%,
  • Το PCPU UTIL και για τα δύο νήματα θα είναι 100%,
  • Η PCPU που χρησιμοποιείται και για τα δύο νήματα θα είναι 50%.

Εάν και τα δύο νήματα δεν δούλευαν το 100% του χρόνου κατά τη διάρκεια της περιόδου μέτρησης, τότε κατά τις περιόδους που τα νήματα δούλευαν παράλληλα, το PCPU που ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ για τους πυρήνες διαιρείται στο μισό.

Το ESXTOP διαθέτει επίσης οθόνη με παραμέτρους κατανάλωσης ενέργειας CPU διακομιστή. Εδώ μπορείτε να δείτε εάν ο διακομιστής χρησιμοποιεί τεχνολογίες εξοικονόμησης ενέργειας: C-states και P-states. Καλείται από το πλήκτρο "p":

Ανάλυση απόδοσης εικονικής μηχανής στο VMware vSphere. Μέρος 1: CPU

Συνήθη ζητήματα απόδοσης CPU

Τέλος, θα εξετάσω τις τυπικές αιτίες προβλημάτων με την απόδοση της CPU VM και θα δώσω σύντομες συμβουλές για την επίλυσή τους:

Η ταχύτητα του βασικού ρολογιού δεν είναι αρκετή. Εάν δεν είναι δυνατό να αναβαθμίσετε το VM σας σε πιο ισχυρούς πυρήνες, μπορείτε να δοκιμάσετε να αλλάξετε τις ρυθμίσεις ισχύος για να κάνετε το Turbo Boost να λειτουργεί πιο αποτελεσματικά.

Λανθασμένο μέγεθος VM (πάρα πολλοί/λίγοι πυρήνες). Εάν εγκαταστήσετε λίγους πυρήνες, θα υπάρχει υψηλό φορτίο CPU στο VM. Αν είναι πολλά, πιάσε ψηλό κοστοπ.

Μεγάλη υπερεγγραφή της CPU στον διακομιστή. Εάν το VM έχει υψηλό Ready, μειώστε την υπερσυνδρομή CPU.

Εσφαλμένη τοπολογία NUMA σε μεγάλα VM. Η τοπολογία NUMA που εμφανίζεται από το VM (vNUMA) πρέπει να ταιριάζει με την τοπολογία NUMA του διακομιστή (pNUMA). Τα διαγνωστικά και οι πιθανές λύσεις σε αυτό το πρόβλημα είναι γραμμένα, για παράδειγμα, στο βιβλίο "VMware vSphere 6.5 Host Resources Deep Dive". Εάν δεν θέλετε να εμβαθύνετε και δεν έχετε περιορισμούς αδειοδότησης στο λειτουργικό σύστημα που είναι εγκατεστημένο στο VM, δημιουργήστε πολλές εικονικές υποδοχές στο VM, έναν πυρήνα τη φορά. Δεν θα χάσεις πολλά :)

Αυτό είναι όλο για μένα σχετικά με την CPU. Κανε ερωτησεις. Στο επόμενο μέρος θα μιλήσω για τη μνήμη RAM.

χρήσιμοι σύνδεσμοιhttp://virtual-red-dot.info/vm-cpu-counters-vsphere/
https://kb.vmware.com/kb/1017926
http://www.yellow-bricks.com/2012/07/17/why-is-wait-so-high/
https://communities.vmware.com/docs/DOC-9279
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/whats-new-vsphere65-perf.pdf
https://pages.rubrik.com/host-resources-deep-dive_request.html

Πηγή: www.habr.com

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