Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Μέρος 1. Σχετικά με τη CPU

Σε αυτό το άρθρο, θα μιλήσουμε για τους μετρητές απόδοσης της μνήμης τυχαίας πρόσβασης (RAM) στο vSphere.
Φαίνεται ότι με τη μνήμη όλα είναι πιο ξεκάθαρα από ό,τι με τον επεξεργαστή: αν ένα VM έχει προβλήματα απόδοσης, είναι δύσκολο να μην τα παρατηρήσεις. Αν όμως εμφανιστούν, είναι πολύ πιο δύσκολο να τα αντιμετωπίσεις. Πρώτα όμως πρώτα.

Λίγο θεωρίας

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

Ποιες τεχνικές να χρησιμοποιήσετε το ESXi αποφασίζει ανάλογα με το φορτίο της RAM:

Κατάσταση μνήμης

Border

Δραστηριότητα

Ψηλά

400% των λεπτών Δωρεάν

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

Καθαρισμός

100% των λεπτών Δωρεάν

Οι μεγάλες σελίδες μνήμης χωρίζονται σε μικρές, το TPS αναγκάζεται να λειτουργήσει.

Μαλακός

64% των λεπτών Δωρεάν

TPS + Μπαλόνι

Σκληρά

32% των λεπτών Δωρεάν

TPS + Συμπίεση + Εναλλαγή

Χαμηλός

16% των λεπτών Δωρεάν

Συμπίεση + Εναλλαγή + Αποκλεισμός

Πηγή

Το minFree είναι η μνήμη RAM που απαιτείται για να λειτουργήσει ο hypervisor.

Πριν από το ESXi 4.1 συμπεριλαμβανομένου, το minFree διορθώθηκε από προεπιλογή - 6% της μνήμης RAM του διακομιστή (το ποσοστό μπορούσε να αλλάξει μέσω της επιλογής Mem.MinFreePct στο ESXi). Σε μεταγενέστερες εκδόσεις, λόγω της αύξησης των μεγεθών μνήμης στους διακομιστές, το minFree άρχισε να υπολογίζεται με βάση την ποσότητα της μνήμης κεντρικού υπολογιστή και όχι ως σταθερό ποσοστό.

Η τιμή minFree (προεπιλογή) υπολογίζεται ως εξής:

Ποσοστό μνήμης που έχει δεσμευτεί για minFree

Εύρος μνήμης

6%

0-4 GB

4%

4-12 GB

2%

12-28 GB

1%

Υπολειπόμενη μνήμη

Πηγή

Για παράδειγμα, για έναν διακομιστή με 128 GB μνήμης RAM, η τιμή MinFree θα είναι:
Ελάχιστο Δωρεάν = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB
Η πραγματική τιμή μπορεί να διαφέρει κατά μερικές εκατοντάδες MB, εξαρτάται από τον διακομιστή και τη μνήμη RAM.

Ποσοστό μνήμης που έχει δεσμευτεί για minFree

Εύρος μνήμης

Αξία για 128 GB

6%

0-4 GB

245,76 MB

4%

4-12 GB

327,68 MB

2%

12-28 GB

327,68 MB

1%

Υπολειπόμενη μνήμη (100 GB)

1024 MB

Συνήθως, για τις παραγωγικές κερκίδες, μόνο η Υψηλή κατάσταση μπορεί να θεωρηθεί κανονική. Για πάγκους δοκιμών και ανάπτυξης, οι καταστάσεις Clear/Soft μπορεί να είναι αποδεκτές. Εάν η μνήμη RAM στον κεντρικό υπολογιστή είναι μικρότερη από 64% MinFree, τότε τα VM που λειτουργούν σε αυτόν έχουν σίγουρα προβλήματα απόδοσης.

Σε κάθε κατάσταση, εφαρμόζονται ορισμένες τεχνικές ανάκτησης μνήμης, ξεκινώντας από το TPS, το οποίο πρακτικά δεν επηρεάζει την απόδοση του VM και τελειώνει με το Swapping. Θα σας πω περισσότερα για αυτούς.

Διαφανής κοινή χρήση σελίδων (TPS). Το TPS είναι, χονδρικά, η αφαίρεση των σελίδων μνήμης εικονικής μηχανής σε έναν διακομιστή.

Το ESXi αναζητά πανομοιότυπες σελίδες στη μνήμη RAM των εικονικών μηχανών μετρώντας και συγκρίνοντας το άθροισμα κατακερματισμού των σελίδων και αφαιρεί διπλότυπες σελίδες, αντικαθιστώντας τις με συνδέσμους προς την ίδια σελίδα στη φυσική μνήμη του διακομιστή. Ως αποτέλεσμα, η κατανάλωση φυσικής μνήμης μειώνεται και μπορεί να επιτευχθεί κάποια υπερσυνδρομή μνήμης με μικρή ή καθόλου υποβάθμιση της απόδοσης.

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη
Πηγή

Αυτός ο μηχανισμός λειτουργεί μόνο για σελίδες μνήμης 4 KB (μικρές σελίδες). Ο hypervisor δεν προσπαθεί καν να διαγράψει σελίδες των 2 MB (μεγάλες σελίδες): η πιθανότητα να βρείτε πανομοιότυπες σελίδες αυτού του μεγέθους δεν είναι μεγάλη.

Από προεπιλογή, το ESXi εκχωρεί μνήμη σε μεγάλες σελίδες. Η διάσπαση μεγάλων σελίδων σε μικρές σελίδες ξεκινά όταν επιτευχθεί το όριο Υψηλής κατάστασης και επιβάλλεται όταν επιτευχθεί η κατάσταση Εκκαθάρισης (δείτε τον πίνακα κατάστασης υπερεπόπτη).

Εάν θέλετε το TPS να αρχίσει να λειτουργεί χωρίς να περιμένετε να γεμίσει η μνήμη RAM του κεντρικού υπολογιστή, στις Επιλογές για προχωρημένους ESXi πρέπει να ορίσετε την τιμή "Mem.AllocGuestLargePage" έως 0 (προεπιλογή 1). Στη συνέχεια, η εκχώρηση μεγάλων σελίδων μνήμης για εικονικές μηχανές θα απενεργοποιηθεί.

Από τον Δεκέμβριο του 2014, σε όλες τις εκδόσεις του ESXi, το TPS μεταξύ VMs έχει απενεργοποιηθεί από προεπιλογή, καθώς βρέθηκε μια ευπάθεια που θεωρητικά επιτρέπει την πρόσβαση από ένα VM στη μνήμη RAM ενός άλλου VM. Λεπτομέρειες εδώ. Δεν έχω συναντήσει πληροφορίες σχετικά με την πρακτική εφαρμογή της εκμετάλλευσης της ευπάθειας του TPS.

Η πολιτική TPS ελέγχεται μέσω προηγμένης επιλογής "Mem.ShareForceSalting" στο ESXi:
0 - Inter-VM TPS. Το TPS λειτουργεί για σελίδες διαφορετικών VM.
1 – TPS για VM με την ίδια τιμή «sched.mem.pshare.salt» στο VMX.
2 (προεπιλογή) - Intra-VM TPS. Το TPS λειτουργεί για σελίδες μέσα στο VM.

Είναι σίγουρα λογικό να απενεργοποιείτε μεγάλες σελίδες και να ενεργοποιείτε το Inter-VM TPS σε πάγκους δοκιμών. Μπορεί επίσης να χρησιμοποιηθεί για βάσεις με μεγάλο αριθμό ίδιου τύπου VM. Για παράδειγμα, στα περίπτερα με VDI, η εξοικονόμηση στη φυσική μνήμη μπορεί να φτάσει τα δεκάδες τοις εκατό.

μπαλονάκι μνήμης. Το Balooning δεν είναι πλέον μια τόσο αβλαβής και διαφανής τεχνική για το λειτουργικό σύστημα VM όπως το TPS. Αλλά με την κατάλληλη εφαρμογή, μπορείτε να ζήσετε και ακόμη και να εργαστείτε με το Balooning.

Μαζί με το Vmware Tools, ένα ειδικό πρόγραμμα οδήγησης που ονομάζεται Balloon Driver (γνωστός και ως vmmemctl) είναι εγκατεστημένο στο VM. Όταν ο hypervisor αρχίζει να εξαντλείται από φυσική μνήμη και εισέρχεται στην κατάσταση Soft, το ESXi ζητά από το VM να ανακτήσει τη μνήμη RAM που δεν έχει χρησιμοποιηθεί μέσω αυτού του Balloon Driver. Το πρόγραμμα οδήγησης, με τη σειρά του, λειτουργεί σε επίπεδο λειτουργικού συστήματος και ζητά δωρεάν μνήμη από αυτό. Ο hypervisor βλέπει ποιες σελίδες φυσικής μνήμης έχει καταλάβει το Balloon Driver, παίρνει τη μνήμη από την εικονική μηχανή και την επιστρέφει στον κεντρικό υπολογιστή. Δεν υπάρχουν προβλήματα με τη λειτουργία του ΛΣ, αφού σε επίπεδο ΛΣ η μνήμη είναι κατειλημμένη από το Balloon Driver. Από προεπιλογή το Balloon Driver μπορεί να καταλάβει έως και το 65% της μνήμης VM.

Εάν το VMware Tools δεν είναι εγκατεστημένο στο VM ή το Balooning είναι απενεργοποιημένο (δεν το προτείνω, αλλά υπάρχουν KB:), ο hypervisor μεταβαίνει αμέσως σε πιο αυστηρές τεχνικές αφαίρεσης μνήμης. Συμπέρασμα: βεβαιωθείτε ότι τα VMware Tools βρίσκονται στο VM.

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη
Η λειτουργία του Balloon Driver μπορεί να ελεγχθεί από το λειτουργικό σύστημα μέσω του VMware Tools.

συμπίεση μνήμης. Αυτή η τεχνική χρησιμοποιείται όταν το ESXi φτάσει στην κατάσταση Σκληρού. Όπως υποδηλώνει το όνομα, το ESXi επιχειρεί να συρρικνώσει μια σελίδα μνήμης RAM 4KB σε 2KB και έτσι να ελευθερώσει χώρο στη φυσική μνήμη του διακομιστή. Αυτή η τεχνική αυξάνει σημαντικά τον χρόνο πρόσβασης στα περιεχόμενα των σελίδων VM RAM, καθώς η σελίδα πρέπει πρώτα να αποσυμπιεστεί. Μερικές φορές δεν μπορούν να συμπιεστούν όλες οι σελίδες και η ίδια η διαδικασία διαρκεί λίγο χρόνο. Επομένως, αυτή η τεχνική δεν είναι πολύ αποτελεσματική στην πράξη.

εναλλαγή μνήμης. Μετά από μια σύντομη φάση συμπίεσης μνήμης, το ESXi σχεδόν αναπόφευκτα (εάν τα VM δεν έχουν φύγει για άλλους κεντρικούς υπολογιστές ή έχουν απενεργοποιηθεί) θα μεταβεί σε Swapping. Και αν έχει απομείνει πολύ λίγη μνήμη (Χαμηλή κατάσταση), τότε ο hypervisor σταματά επίσης να εκχωρεί σελίδες μνήμης στο VM, γεγονός που μπορεί να προκαλέσει προβλήματα στο λειτουργικό σύστημα φιλοξενίας του VM.

Δείτε πώς λειτουργεί το Swapping. Όταν ενεργοποιείτε μια εικονική μηχανή, δημιουργείται ένα αρχείο με την επέκταση .vswp για αυτήν. Είναι ίσο σε μέγεθος με τη μη δεσμευμένη RAM του VM: είναι η διαφορά μεταξύ διαμορφωμένης και δεσμευμένης μνήμης. Όταν εκτελείται η Εναλλαγή, το ESXi ξεφορτώνει τις σελίδες μνήμης εικονικής μηχανής σε αυτό το αρχείο και αρχίζει να εργάζεται με αυτό αντί για τη φυσική μνήμη του διακομιστή. Φυσικά, μια τέτοια «λειτουργική» μνήμη είναι αρκετές τάξεις μεγέθους πιο αργή από την πραγματική, ακόμα κι αν το .vswp βρίσκεται σε γρήγορη αποθήκευση.

Σε αντίθεση με το Balooning, όταν οι σελίδες που δεν χρησιμοποιούνται λαμβάνονται από το VM, με το Swapping, οι σελίδες που χρησιμοποιούνται ενεργά από το λειτουργικό σύστημα ή τις εφαρμογές μέσα στο VM μπορούν να μετακινηθούν στο δίσκο. Ως αποτέλεσμα, η απόδοση του VM πέφτει μέχρι το σημείο να παγώσει. Το VM λειτουργεί επίσημα και τουλάχιστον μπορεί να απενεργοποιηθεί σωστά από το λειτουργικό σύστημα. Αν κάνετε υπομονή 😉

Εάν τα VM πήγαν στο Swap, αυτή είναι μια μη φυσιολογική κατάσταση, η οποία καλύτερα να αποφευχθεί εάν είναι δυνατόν.

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

Φτάσαμε λοιπόν στο κύριο θέμα. Για την παρακολούθηση της κατάστασης της μνήμης στο VM, υπάρχουν οι ακόλουθοι μετρητές:

Ενεργή — δείχνει την ποσότητα της μνήμης RAM (KB) στην οποία είχε πρόσβαση το VM την προηγούμενη περίοδο μέτρησης.

Χρήση - το ίδιο με το Active, αλλά ως ποσοστό της διαμορφωμένης μνήμης RAM του VM. Υπολογίζεται χρησιμοποιώντας τον ακόλουθο τύπο: ενεργό ÷ μέγεθος μνήμης ρυθμισμένης εικονικής μηχανής.
Το High Usage και το Active, αντίστοιχα, δεν αποτελούν πάντα ένδειξη προβλημάτων απόδοσης VM. Εάν το VM χρησιμοποιεί επιθετικά τη μνήμη (τουλάχιστον έχει πρόσβαση σε αυτήν), αυτό δεν σημαίνει ότι δεν υπάρχει αρκετή μνήμη. Μάλλον είναι μια ευκαιρία να δούμε τι συμβαίνει στο λειτουργικό σύστημα.
Υπάρχει ένας τυπικός συναγερμός χρήσης μνήμης για VM:

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Shared - η ποσότητα της μνήμης RAM VM που αφαιρέθηκε με χρήση TPS (μέσα στο VM ή μεταξύ VM).

Χορηγείται - το ποσό της φυσικής μνήμης κεντρικού υπολογιστή (KB) που δόθηκε στο VM. Περιλαμβάνει Κοινόχρηστο.

Καταναλώνεται (Χορηγείται - Κοινόχρηστο) - η ποσότητα φυσικής μνήμης (KB) που καταναλώνει το VM από τον κεντρικό υπολογιστή. Δεν περιλαμβάνει Κοινόχρηστο.

Εάν μέρος της μνήμης VM δεν παρέχεται από τη φυσική μνήμη του κεντρικού υπολογιστή, αλλά από το αρχείο ανταλλαγής ή η μνήμη λαμβάνεται από το VM μέσω του προγράμματος οδήγησης μπαλονιού, αυτό το ποσό δεν λαμβάνεται υπόψη στην ενότητα Χορηγείται και καταναλώνεται.
Οι υψηλές αξίες που χορηγούνται και καταναλώνονται είναι απολύτως φυσιολογικές. Το λειτουργικό σύστημα παίρνει σταδιακά τη μνήμη από τον hypervisor και δεν την επιστρέφει. Με την πάροδο του χρόνου, σε ένα VM που εκτελείται ενεργά, οι τιμές αυτών των μετρητών πλησιάζουν την ποσότητα της διαμορφωμένης μνήμης και παραμένουν εκεί.

Μηδέν — η ποσότητα της VM RAM (KB), η οποία περιέχει μηδενικά. Αυτή η μνήμη θεωρείται ελεύθερη από τον hypervisor και μπορεί να δοθεί σε άλλες εικονικές μηχανές. Αφού το Guest OS έχει γράψει κάτι στη μηδενισμένη μνήμη, πηγαίνει στο Consumed και δεν επιστρέφει πίσω.

Κράτηση γενικών εξόδων — το ποσό της μνήμης VM RAM, (KB) που δεσμεύεται από τον υπερεπόπτη για τη λειτουργία VM. Αυτό είναι ένα μικρό ποσό, αλλά πρέπει να είναι διαθέσιμο στον κεντρικό υπολογιστή, διαφορετικά το VM δεν θα ξεκινήσει.

Μπαλόνι — το ποσό της μνήμης RAM (KB) που κατασχέθηκε από το VM χρησιμοποιώντας το πρόγραμμα οδήγησης Balloon.

Συμπιεσμένο - η ποσότητα της μνήμης RAM (KB) που συμπιέστηκε.

Αλλαγή εικόνων - το ποσό της μνήμης RAM (KB) που, λόγω έλλειψης φυσικής μνήμης στον διακομιστή, μετακινήθηκε στο δίσκο.
Οι μετρητές μπαλονιών και άλλων τεχνικών ανάκτησης μνήμης είναι μηδενικοί.

Έτσι φαίνεται το γράφημα με τους μετρητές μνήμης για ένα VM που λειτουργεί κανονικά με 150 GB μνήμης RAM.

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Στο παρακάτω γράφημα, το VM έχει εμφανή προβλήματα. Κάτω από το γράφημα, μπορείτε να δείτε ότι για αυτό το VM χρησιμοποιήθηκαν όλες οι περιγραφόμενες τεχνικές εργασίας με RAM. Το Balloon για αυτό το VM είναι πολύ μεγαλύτερο από το Consumed. Στην πραγματικότητα, το VM είναι περισσότερο νεκρό παρά ζωντανό.

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

ESXTOP

Όπως και με την CPU, αν θέλουμε να αξιολογήσουμε γρήγορα την κατάσταση στον κεντρικό υπολογιστή, καθώς και τη δυναμική του με ένα διάστημα έως και 2 δευτερολέπτων, θα πρέπει να χρησιμοποιήσουμε το ESXTOP.

Η οθόνη ESXTOP από τη μνήμη καλείται με το πλήκτρο "m" και μοιάζει με αυτό (επιλέγονται τα πεδία B, D, H, J, K, L, O):

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Οι παρακάτω παράμετροι θα μας ενδιαφέρουν:

Μέσος όρος υπερδέσμευσης Mem - η μέση τιμή υπερσυνδρομής μνήμης στον κεντρικό υπολογιστή για 1, 5 και 15 λεπτά. Εάν είναι πάνω από το μηδέν, τότε αυτό είναι μια ευκαιρία να δούμε τι συμβαίνει, αλλά όχι πάντα ένας δείκτης προβλημάτων.

Σε γραμμές PMEM/MB и VMKMEM/MB - πληροφορίες σχετικά με τη φυσική μνήμη του διακομιστή και τη μνήμη που είναι διαθέσιμη στο VMkernel. Από το ενδιαφέρον εδώ μπορείτε να δείτε την τιμή του minfree (σε MB), την κατάσταση του κεντρικού υπολογιστή στη μνήμη (στην περίπτωσή μας, υψηλή).

Στη γραμμή NUMA/MB μπορείτε να δείτε την κατανομή της μνήμης RAM κατά NUMA κόμβους (πρίζες). Σε αυτό το παράδειγμα, η κατανομή είναι άνιση, η οποία, κατ' αρχήν, δεν είναι πολύ καλή.

Ακολουθούν γενικά στατιστικά στοιχεία διακομιστή σχετικά με τεχνικές ανάκτησης μνήμης:

PSHARE/MB είναι στατιστικά TPS?

SWAP/MB — Στατιστικά στοιχεία χρήσης swap.

ZIP/MB — στατιστικά στοιχεία συμπίεσης σελίδας μνήμης.

MEMCTL/MB — Στατιστικά στοιχεία χρήσης Balloon Driver.

Για μεμονωμένα VM, μπορεί να μας ενδιαφέρουν οι ακόλουθες πληροφορίες. Έκρυψα τα ονόματα των VM για να μην μπερδέψω το κοινό :). Εάν η μέτρηση ESXTOP είναι παρόμοια με τον μετρητή στο vSphere, δίνω τον αντίστοιχο μετρητή.

MEMSZ — η ποσότητα μνήμης που έχει διαμορφωθεί στο VM (MB).
MEMSZ = GRANT + MCTLSZ + SWCUR + άθικτο.

ΧΟΡΗΓΗΣΗ — Χορηγείται στο MB.

TCHD — Ενεργός σε MB.

MCTL; - εάν το Balloon Driver είναι εγκατεστημένο στο VM.

MCTLSZ — Μπαλόνι σε ΜΒ.

MCTLGT — το ποσό της μνήμης RAM (MB) που θέλει να πάρει το ESXi από το VM μέσω του Balloon Driver (Memctl Target).

MCTLMAX - το μέγιστο ποσό μνήμης RAM (MB) που μπορεί να πάρει το ESXi από το VM μέσω του προγράμματος οδήγησης Balloon.

SWCUR — η τρέχουσα ποσότητα μνήμης RAM (MB) που έχει εκχωρηθεί στο VM από το αρχείο Swap.

S.W.G.T. - το ποσό της μνήμης RAM (MB) που θέλει να δώσει το ESXi στο VM από το αρχείο Swap (Swap Target).

Επίσης, μέσω του ESXTOP, μπορείτε να δείτε πιο αναλυτικές πληροφορίες για την τοπολογία NUMA του VM. Για να το κάνετε αυτό, επιλέξτε τα πεδία D, G:

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

ΜΙΚΡΟ – NUMA κόμβοι στους οποίους βρίσκεται το VM. Εδώ μπορείτε να παρατηρήσετε αμέσως ευρεία vm, τα οποία δεν ταιριάζουν σε έναν κόμβο NUMA.

NRMEM - πόσα megabyte μνήμης παίρνει το VM από τον απομακρυσμένο κόμβο NUMA.

NLMEM - πόσα megabyte μνήμης παίρνει το VM από τον τοπικό κόμβο NUMA.

N%L – ποσοστό μνήμης VM στον τοπικό κόμβο NUMA (εάν είναι μικρότερο από 80%, ενδέχεται να προκύψουν προβλήματα απόδοσης).

Μνήμη στον hypervisor

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

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Κατάργηση ανταλλαγής

Εάν ένα VM βρίσκεται σε Swap, η απόδοσή του μειώνεται σημαντικά. Τα ίχνη Balooning και συμπίεσης εξαφανίζονται γρήγορα μετά την εμφάνιση της δωρεάν μνήμης RAM στον κεντρικό υπολογιστή, αλλά η εικονική μηχανή δεν βιάζεται να επιστρέψει από το Swap στη μνήμη RAM του διακομιστή.
Πριν από το ESXi 6.0, ο μόνος αξιόπιστος και γρήγορος τρόπος για να βγάλετε ένα VM από το Swap ήταν η επανεκκίνηση (για την ακρίβεια, απενεργοποιήστε/ενεργοποιήστε το κοντέινερ). Ξεκινώντας με το ESXi 6.0, αν και όχι αρκετά επίσημο, έχει εμφανιστεί ένας λειτουργικός και αξιόπιστος τρόπος για να αφαιρέσετε ένα VM από το Swap. Σε ένα από τα συνέδρια, μπόρεσα να μιλήσω με έναν από τους μηχανικούς της VMware που είναι υπεύθυνος για το CPU Scheduler. Επιβεβαίωσε ότι η μέθοδος είναι αρκετά λειτουργική και ασφαλής. Από την εμπειρία μας, δεν υπήρχαν προβλήματα ούτε με αυτό.

Οι πραγματικές εντολές για την αφαίρεση του VM από το Swap περιγράφεται Ντάνκαν Έπινγκ. Δεν θα επαναλάβω μια λεπτομερή περιγραφή, απλώς δώσω ένα παράδειγμα χρήσης του. Όπως μπορείτε να δείτε στο στιγμιότυπο οθόνης, λίγο καιρό μετά την εκτέλεση των καθορισμένων εντολών, το Swap εξαφανίζεται στο VM.

Ανάλυση απόδοσης VM στο VMware vSphere. Μέρος 2: Μνήμη

Συμβουλές διαχείρισης μνήμης ESXi

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

  • Αποφύγετε την υπερσυνδρομή μνήμης σε παραγωγικές ομάδες. Είναι επιθυμητό να έχετε πάντα ~20-30% ελεύθερη μνήμη στο σύμπλεγμα, έτσι ώστε το DRS (και ο διαχειριστής) να έχουν χώρο για ελιγμούς και τα VM να μην μπαίνουν στο Swap κατά τη μετεγκατάσταση. Επίσης, μην ξεχνάτε το περιθώριο ανοχής σφαλμάτων. Είναι δυσάρεστο όταν, όταν ένας διακομιστής αποτυγχάνει και το VM επανεκκινείται χρησιμοποιώντας HA, μερικά από τα μηχανήματα πηγαίνουν επίσης στο Swap.
  • Σε εξαιρετικά ενοποιημένες υποδομές, προσπαθήστε να ΜΗΝ δημιουργήσετε VM με περισσότερο από το ήμισυ της μνήμης κεντρικού υπολογιστή. Αυτό και πάλι θα βοηθήσει το DRS να διανέμει τις εικονικές μηχανές στους διακομιστές συμπλέγματος χωρίς κανένα πρόβλημα. Αυτός ο κανόνας, φυσικά, δεν είναι καθολικός :).
  • Παρακολουθήστε τον συναγερμό χρήσης μνήμης κεντρικού υπολογιστή.
  • Μην ξεχάσετε να εγκαταστήσετε το VMware Tools στο VM και μην απενεργοποιήσετε το Balooning.
  • Εξετάστε το ενδεχόμενο να ενεργοποιήσετε το Inter-VM TPS και να απενεργοποιήσετε το Large Pages σε VDI και δοκιμαστικά περιβάλλοντα.
  • Εάν το VM αντιμετωπίζει προβλήματα απόδοσης, ελέγξτε αν χρησιμοποιεί μνήμη από απομακρυσμένο κόμβο NUMA.
  • Βγάλτε το VM σας από το Swap όσο πιο γρήγορα γίνεται! Μεταξύ άλλων, εάν το VM είναι σε Swap, για ευνόητους λόγους, το σύστημα αποθήκευσης υποφέρει.

Αυτό είναι όλο για μένα σχετικά με τη μνήμη RAM. Παρακάτω είναι ένα σχετικό άρθρο για όσους θέλουν να εμβαθύνουν στις λεπτομέρειες. Το επόμενο άρθρο θα είναι αφιερωμένο στο storadzh.

χρήσιμοι σύνδεσμοιhttp://www.yellow-bricks.com/2015/03/02/what-happens-at-which-vsphere-memory-state/
http://www.yellow-bricks.com/2013/06/14/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up/
https://www.vladan.fr/vmware-transparent-page-sharing-tps-explained/
http://www.yellow-bricks.com/2016/06/02/memory-pages-swapped-can-unswap/
https://kb.vmware.com/s/article/1002586
https://www.vladan.fr/what-is-vmware-memory-ballooning/
https://kb.vmware.com/s/article/2080735
https://kb.vmware.com/s/article/2017642
https://labs.vmware.com/vmtj/vmware-esx-memory-resource-management-swap
https://blogs.vmware.com/vsphere/2013/10/understanding-vsphere-active-memory.html
https://www.vmware.com/support/developer/converter-sdk/conv51_apireference/memory_counters.html
https://docs.vmware.com/en/VMware-vSphere/6.5/vsphere-esxi-vcenter-server-65-monitoring-performance-guide.pdf

Πηγή: www.habr.com

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