Αναφέρετε τη νέα έκδοση του Earlyoom 1.4, ένα βοηθητικό πρόγραμμα για την αποφυγή διακοπών λόγω έλλειψης μνήμης

νωρίς

Στις αρχές του έτους μιλάμε εδώ στο blog για το βοηθητικό πρόγραμμα Earlyoom, η οποία, μετά από μια συζήτηση από τους προγραμματιστές του Fedora, έγινε αποδεκτή για τη χρήση αυτού του βοηθητικού προγράμματος στο Fedora 32 ως διαδικασία παρασκηνίου, με την οποία σκοπεύουν να βελτιώσουν την απόκριση του συστήματος στην έλλειψη μνήμης και έτσι να αποφύγουν τις διακοπές.

Τώρα αρκετές εβδομάδες αργότερα και Μετά από οκτώ μήνες ανάπτυξης, ανακοινώθηκε η κυκλοφορία της νέας έκδοσης του Earlyoom 1.4.

Για όσους δεν είναι εξοικειωμένοι με το έργο, πρέπει να το γνωρίζουν Αυτό είναι ένα νήμα φόντου που ελέγχει περιοδικά την διαθέσιμη μνήμη (MemAvailable, SwapFree) και προσπαθεί να ανταποκριθεί σε κατάσταση εκτός μνήμης σε πρώιμο στάδιο. Ο κωδικός του έργου γράφεται σε C και διανέμεται με άδεια MIT.

Νωρίς
σχετικό άρθρο:
Κάντε νωρίς το νήμα για να το συμπεριλάβετε στο Fedora 32 για να αποφύγετε τη διακοπή της μνήμης

Εάν η διαθέσιμη μνήμη είναι μικρότερη από την καθορισμένη τιμή, το πρόωρο θα τελειώσει με τη βία (στέλνοντας SIGTERM ή SIGKILL) η διαδικασία της διαδικασίας που καταναλώνει τη μεγαλύτερη μνήμη (η οποία έχει την υψηλότερη τιμή / proc / * / oom_score), χωρίς κατάσταση κατάργησης buffer συστήματος και παρεμβολή στην εργασία ανταλλαγής (OOM (από μνήμη) πρόγραμμα οδήγησης σε πυρκαγιά πυρκαγιάς όταν χαμηλή κατάσταση η μνήμη έχει ήδη φτάσει σε κρίσιμες τιμές, και γενικά σε αυτό το σημείο το σύστημα δεν ανταποκρίνεται πλέον στις ενέργειες των χρηστών).

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

Τι νέο υπάρχει στο Earlyoom 1.4;

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

Εκτός αυτού επίσης Η επαναφορά προνομίων root εφαρμόστηκε στο αρχείο δίσκου "systemd Earlyoom.service". Αυτή η αλλαγή διακόπτει τη δυνατότητα λήψης ειδοποιήσεων GUI.

Για να ενεργοποιήσετε ξανά τις ειδοποιήσεις GUI, προτείνεται να επιστρέψετε τα δικαιώματα ρίζας αποσυσκευάζοντας τη γραμμή «DynamicUser = true".

Αν και η απενεργοποίηση του root καθιστά επίσης αδύνατη τη λήψη πληροφοριών σχετικά με την κατανάλωση μνήμης κατά την τοποθέτηση / proc σε κατάσταση λειτουργίας hidepid = 1 ή hidepid = 2.

Από τις άλλες αλλαγές που ξεχωρίζουν:

  • Το UID της ολοκληρωμένης διαδικασίας αντικατοπτρίζεται στο μητρώο, εκτός από το PID και το όνομα της διαδικασίας.
  • Προστέθηκε ανοιχτό γκρι επισήμανση καταγραφής εντοπισμού σφαλμάτων.
  • Εάν ήταν δυνατόν, χρησιμοποιήθηκε η δήλωση μεταβλητών τοπικών στα μπλοκ.
  • Προστέθηκε διαμόρφωση PATH_LEN για να παρακάμψετε την τιμή του ενσωματωμένου μεγέθους buffer στον κώδικα.
  • Δυνατότητα εκκίνησης cppcheck εάν είναι διαθέσιμο.
  • Προστέθηκε δοκιμή απόδοσης "make bench".
  • Εκτεταμένη δοκιμαστική σουίτα (κάντε δοκιμή).

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

Πώς να εγκαταστήσετε το Earlyoom στο Linux;

Για όσους ενδιαφέρονται να δοκιμάσουν αυτό το βοηθητικό πρόγραμμα, μπορούν να το κάνουν ακολουθώντας τις οδηγίες που κοινοποιούμε παρακάτω.

Το Earlyoom βρίσκεται στα αποθετήρια ορισμένων από τις διανομές του δημοφιλούς Linux, έτσι, στην περίπτωση του Debian, του Ubuntu και οποιωνδήποτε παραγώγων από αυτά, η εγκατάσταση μπορεί να γίνει με την ακόλουθη εντολή:

sudo apt install earlyoom

Μόλις γίνει αυτό, η υπηρεσία πρέπει τώρα να ενεργοποιηθεί με την εντολή:

sudo systemctl enable earlyoom

Και ξεκινά με:

sudo systemctl start earlyoom

Στην περίπτωση του Fedora και RHEL 8 με EPEL, μπορεί να εγκατασταθεί με την ακόλουθη εντολή:

sudo dnf install earlyoom

Και η υπηρεσία ενεργοποιείται με:

sudo systemctl enable --now earlyoom

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

sudo pacman -S earlyoom

Και η υπηρεσία ενεργοποιείται με:

sudo systemctl enable --now earlyoom

Για όλες τις άλλες διανομές Linux, μπορούν να εκτελέσουν την εγκατάσταση με τη σύνταξη του κωδικού χρησιμότητας.

Για να λάβουμε τον κωδικό μπορούμε να το κάνουμε με την ακόλουθη εντολή:

git clone https://github.com/rfjakob/earlyoom.git

cd earlyoom

Προχωρούμε στη μεταγλώττιση με:

make

Και εγκαθιστούμε (εάν έχετε Systemd):

sudo make install

Ή για όσους δεν έχουν Systemd:

sudo make install-initscript

Και για να χρησιμοποιήσετε την υπηρεσία που το κάνετε με:

./earlyoom


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   infogon dijo

    Μια λεπτομέρεια του τίτλου: «απώλεια μνήμης»

    1.    Ντέιβιντ Νάραντζο dijo

      Ευχαριστώ για την παρατήρηση. Χαιρετισμοί! 🙂

  2.   linuxmanr4 dijo

    Νομίζω ότι υπάρχει μια λεπτομέρεια με την εγκατάσταση στο Manjaro (προέρχεται από το Arch). Δεν βρήκα το πακέτο στα κανονικά αποθετήρια.

    Επομένως, η εγκατάσταση θα πρέπει να γίνει μέσω του yaourt.

    yaourt earlyoom

    Χαιρετισμούς!

    1.    Ντέιβιντ Νάραντζο dijo

      Στο Arch, βρίσκεται μέσα στο αποθετήριο της κοινότητας που πρέπει να ενεργοποιηθεί στο pacman.conf. Με τον ίδιο τρόπο που αναφέρατε είναι επίσης στο AUR.

      Ευχαριστώ για την παρατήρηση 😀

  3.   Φραν Πάβον dijo

    Γεια σας, θέλω αυτή η υπηρεσία να ξεκινά στο MXLinux κάθε φορά που ενεργοποιώ τον υπολογιστή χωρίς να χρειάζεται να θέσω την εντολή στο τερματικό, πώς μπορώ να το κάνω;