Μέγιστο μέγεθος μνήμης σετ Elasticsearch

Megisto Megethos Mnemes Set Elasticsearch



«Η μνήμη είναι ένας ουσιαστικός αλλά περιορισμένος πόρος όταν εργάζεστε με το Elasticsearch. Αυτό συμβαίνει επειδή το Lucene θα χρησιμοποιήσει κάθε διαθέσιμη μνήμη. Ωστόσο, όταν δεν ρυθμιστούν σωστά, οι ρυθμίσεις μνήμης μπορεί να οδηγήσουν σε χαμηλή απόδοση και αναποτελεσματική χρήση της μνήμης.

Σε αυτό το σεμινάριο, θα σας δείξουμε τη μέγιστη και την ελάχιστη διαμόρφωση μεγέθους σωρού JVM όταν εργάζεστε με το Elasticsearch.







Ας αρχίσουμε.



Τι είναι η μνήμη Heap;

Στο πλαίσιο του Elasticsearch, η μνήμη Heap αναφέρεται στη συνολική ποσότητα μνήμης που εκχωρείται στην εικονική μηχανή Java σε έναν κόμβο Elasticsearch.



Το Elasticsearch θα ορίσει από προεπιλογή το μέγεθος του σωρού JVM με βάση τη συνολική μνήμη του βασικού συστήματος και τον ρόλο του κόμβου. Αυτό σημαίνει ότι η κατανομή μεγέθους μνήμης σωρού μπορεί να διαφέρει ανάλογα με το αν πρόκειται για κύριο κόμβο, δεδομένα, απορρόφηση, data_cold κ.λπ.





Για τα περισσότερα περιβάλλοντα παραγωγής, συνιστάται και υπεραρκετό να επιτρέπεται στο Elasticsearch να διαχειρίζεται το μέγεθος του σωρού.

ΣΗΜΕΙΩΣΗ : Εάν εκτελείτε το Elasticsearch στο Docker, η συνολική μνήμη σωρού βασίζεται στο συνολικό μέγεθος του κοντέινερ docker και όχι στον κεντρικό υπολογιστή του Docker.



Διαμόρφωση ελάχιστου και μέγιστου μεγέθους σωρού

Για να διαμορφώσουμε το ελάχιστο και το μέγιστο μέγεθος σωρού, μπορούμε να χρησιμοποιήσουμε τις παραμέτρους Xms και Xmx. Τα probit Elasticsearch ορίζουν τη μέγιστη μνήμη σε όχι περισσότερο από το 50% της συνολικής μνήμης. Αυτό συμβαίνει επειδή εκτός από το JVM Heap, το Elasticsearch απαιτεί περισσότερη μνήμη για άλλες λειτουργίες, όπως η προσωρινή μνήμη συστήματος αρχείων, η επικοινωνία δικτύου κ.λπ. Ομοίως, το JVM θα χρησιμοποιήσει ένα τμήμα της υπόλοιπης μνήμης 50%.

Δεύτερον, μην ορίσετε τις τιμές xms και xmx σε περισσότερο από το όριο του oops. Για ασφαλή διαμόρφωση, περιορίστε τα 26 GB ή 30 GB σε ορισμένα συστήματα.

Μπορείτε να ελέγξετε το όριο στο αρχείο καταγραφής Elasticsearch.

cat elasticsearch.log | grep 'δείκτες αντικειμένων'

Θα πρέπει να δείτε μια καταχώρηση όπως φαίνεται:

[2022-08-19T20:01:50,275][INFO ][o.e.e.NodeEnvironment    ] [debian11] μέγεθος σωρού [1,9 gb], συμπιεσμένοι δείκτες συνηθισμένου αντικειμένου [true]
[2022-08-19T20:08:07,207][INFO ][o.e.e.NodeEnvironment    ] [debian11] μέγεθος σωρού [1,9 gb], συμπιεσμένοι δείκτες συνηθισμένου αντικειμένου [true]
[2022-08-19T20:36:47,244][INFO ][o.e.e.NodeEnvironment    ] [debian11] μέγεθος σωρού [1,9 gb], συμπιεσμένοι δείκτες συνηθισμένου αντικειμένου [true]

Μπορείτε επίσης να ρωτήσετε το API πληροφοριών κόμβων για τις τιμές xms και xmx:

curl -X GET localhost:9200/_nodes/_all/jvm?pretty

Θα πρέπει να δείτε μια έξοδο όπως φαίνεται:

Ορίστε το ελάχιστο και το μέγιστο μέγεθος σωρού

Για να τροποποιήσετε τις τιμές του JVM Heap Size, πρέπει να προσθέσετε ένα αρχείο διαμόρφωσης στον κατάλογο /etc/elasticsearch/jvm.options.d. Αυτό το αρχείο θα πρέπει να τελειώνει με την επέκταση .options.

Για παράδειγμα:

$ sudo touch /etc/elasticsearch/jvm.options.d/heap.options

Επεξεργαστείτε το αρχείο

$ sudo nano /etc/elasticsearch/jvm.options.d/heap.options

Προσθέστε το επιθυμητό ελάχιστο και μέγιστο μέγεθος μνήμης σωρού.

Για παράδειγμα, η παρακάτω καταχώρηση διαμορφώνει το ελάχιστο και το μέγιστο μέγεθος σωρού σε 4 GB.

Αποθηκεύστε το αρχείο και επανεκκινήστε την υπηρεσία Elasticsearch.

συμπέρασμα

Σε αυτό το σεμινάριο, μάθατε το JVM Heap στο πλαίσιο του Elasticsearch, πώς το Elasticsearch διαμορφώνει το JVM Heap και πώς μπορείτε να τροποποιήσετε το μέγεθος του σωρού.

Ευχαριστώ για την ανάγνωση!!