Στο επόμενο άρθρο θα ρίξουμε μια ματιά στο CPULimit. Αυτό είναι ένα εργαλείο γραμμής εντολών που περιορίζει τη χρήση της CPU με μια διαδικασία (εκφραζόμενη σε ποσοστό, όχι σε χρόνο CPU). Αυτό θα είναι χρήσιμο για τον έλεγχο των παρτίδων, όταν δεν θέλουμε μια διαδικασία να καταναλώνει πάρα πολλούς κύκλους CPU.
Με τη χρήση αυτού του εργαλείου δεν πρόκειται να αλλάξουμε την τιμή ή άλλες ρυθμίσεις προτεραιότητας, αλλά την πραγματική χρήση της CPU. Επιπλέον, μπορεί να προσαρμοστεί στο γενικό φορτίο του συστήματος, δυναμικά και γρήγορα. Ο έλεγχος της ποσότητας της CPU που χρησιμοποιείται γίνεται μέσω αποστολής σήματα ΕΠΟΜΕΝΗ ΣΤΑΣΗ y ΣΗΜΕΙΟ POSIX στις διαδικασίες. Όλες οι θυγατρικές διεργασίες και τα νήματα της καθορισμένης διαδικασίας θα μοιράζονται το ίδιο ποσοστό CPU.
Εγκαταστήστε το CPULimit
Το CPULimit είναι διαθέσιμο στα περισσότερα από τα προεπιλεγμένα αποθετήρια διανομών τύπου Unix. Μπορούμε να το εγκαταστήσουμε χρησιμοποιώντας τους προεπιλεγμένους διαχειριστές πακέτων στην αντίστοιχη διανομή Gnu / Linux. Για παράδειγμα, θα δούμε πώς να το εγκαταστήσουμε σε Debian, Ubuntu και Linux Mint. Θα πρέπει να ανοίξουμε μόνο ένα τερματικό (Ctrl + Alt + T) και να γράψουμε την ακόλουθη εντολή σε αυτό:
sudo apt-get install cpulimit
Όποιος θέλει να συμβουλευτεί άλλους τύπους εγκαταστάσεων στο σελίδα έργου GitHub.
Χρησιμοποιώντας CPULimit
Μόλις εγκατασταθεί το εργαλείο, ήρθε η ώρα να δείτε πώς λειτουργεί. Για να γίνει αυτό, πρόκειται να εκτελέσουμε ένα πρόγραμμα που καταναλώνει πολλούς πόρους CPU. Οι ακόλουθες εντολές πρέπει να εκτελούνται ως χρήστης root.
Δημιουργία σεναρίου που καταναλώνει πόρους CPU
Πρώτα πρόκειται δημιουργήστε ένα αρχείο που ονομάζεται derrochecpu.sh. Θα χρησιμοποιήσω το Επεξεργαστής Vim, αλλά ότι ο καθένας χρησιμοποιεί αυτόν που προτιμούν. Από το τερματικό (Ctrl + Alt + T) θα πρέπει να γράψουμε:
vim derrochecpu.sh
Μόλις ανοίξει, θα πατήσουμε το πλήκτρο 'Esc' και μετά 'i". Τώρα πρόκειται να προσθέσουμε τις ακόλουθες γραμμές:
#!/bin/bash while :; do :; done;
Με αυτό, είναι ώρα να αποθηκεύσετε και να βγείτε. Για να το κάνουμε αυτό θα πατήσουμε το πλήκτρο 'Esc«και θα γράψουμε : wq για αποθήκευση και κλείσιμο του αρχείου. Αυτό το σύντομο σενάριο θα επαναληφθεί χωρίς να καταναλώνει τη μέγιστη χρήση CPU. Επομένως, συνιστάται να το δοκιμάσετε σε μια εικονική μηχανή.
Τώρα πρόκειται να κάνουμε αυτό το αρχείο εκτελέσιμο. Για να γίνει αυτό, από το ίδιο τερματικό (Ctrl + Alt + T) θα εκτελέσουμε:
chmod +x derrochecpu.sh
Εκκίνηση του σεναρίου
Τώρα θα ξεκινήσουμε τη διαδικασία στο παρασκήνιο. Θα το κάνουμε χρησιμοποιώντας την εντολή:
./derrochecpu.sh &
Θα διατηρήσουμε το PID της διαδικασίας. Σε αυτήν την περίπτωση, το 6472 είναι το PID της διαδικασίας που ξεκίνησε.
Έλεγχος της CPU που καταναλώνει
Μπορούμε να δούμε το ποσό της CPU που καταναλώνει η διαδικασία που μόλις ξεκινήσαμε, χρησιμοποιώντας το εντολή «κορυφή» στον ίδιο τερματικό:
top
Όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης, η διαδικασία wastecpu.sh καταναλώνει περισσότερο από 96% χρήση CPU. Δεδομένου ότι καταναλώνει πολλή χρήση CPU, είναι δύσκολο να εκτελεστούν άλλες εργασίες. Μετά από μερικά λεπτά, το σύστημα θα μπορούσε να καταρρεύσει ή να παγώσει. Εδώ έρχεται το CPULimt στη βοήθειά μας.
Περιορισμός χρήσης CPU από PID
Τώρα, ας περιορίσουμε τη χρήση της CPU αυτής της διαδικασίας χρησιμοποιώντας το εργαλείο CPULimit. Πρόκειται να περιορίστε τη χρήση της CPU στο 35% μέσω του αντίστοιχου PID (κατά προσέγγιση). Για να το κάνετε αυτό, εκτελέστε:
cpulimit -l 35 -p 6472 &
- Η επιλογή "-l 35»Περιορίζει τη διαδικασία σε περίπου 35%.
- «-p 6472»Είναι το PID του derrochecpu.sh που έχουμε δει στο παρελθόν.
Έλεγχος της επίδρασης του CPULimit
Μόλις ξεκινήσει η προηγούμενη εντολή, ας επανεξετάσουμε τη διαδικασία χρήσης της CPU ξανά. Για αυτό θα χρησιμοποιήσουμε ξανά την κορυφαία εντολή:
top
Όπως μπορείτε να δείτε στην παραπάνω εικόνα, η χρήση CPU του wastefulcpu.sh μειώθηκε στο 35,6%, που είναι πολύ κοντά στο 35%. Τώρα ναι μπορούμε να έχουμε περισσότερους πόρους CPU για να εκτελέσουμε άλλες διαδικασίες.
Περιορισμός χρήσης CPU με όνομα αρχείου
Έχουμε δει πώς να περιορίσουμε μια διαδικασία χρησιμοποιώντας το PID. Επισης μπορούμε να εκτελέσουμε την εντολή CPULimit καθορίζοντας το όνομα του εκτελέσιμου αρχείου προγράμματος.
Για παράδειγμα, το ίδιο παράδειγμα παραπάνω θα ήταν:
cpulimit -l 30 ./derrochecpu.sh &
Το CPULimit μπορεί να είναι χρήσιμο κατά την εκτέλεση μιας διαδικασίας που καταναλώνει υπερβολική χρήση CPU. Την επόμενη φορά που θα παρατηρήσουμε ότι ένα πρόγραμμα καταναλώνει πάρα πολύ CPU, απλά θα πρέπει να βρούμε το PID της διαδικασίας χρησιμοποιώντας την εντολή «κορυφή«. Όταν το έχετε, απλά πρέπει να περιορίσετε τη χρήση της CPU σας σε μια ελάχιστη τιμή χρησιμοποιώντας την εντολή CPULimit όπως περιγράφεται σε αυτό το άρθρο.
Απεγκαταστήστε το CPULimit
Η κατάργηση αυτού του εργαλείου από το σύστημά μας είναι τόσο απλή όσο το άνοιγμα ενός τερματικού (Ctrl + Alt + T) και η πληκτρολόγηση σε αυτό:
sudo apt remove cpulimit
Τι περιέγραψε αυτό το άρθρο είναι απλώς ένα παράδειγμα. Προφανώς, κανείς στο μυαλό του δεν θα ξεκινήσει ένα σενάριο όπως αυτό που περιγράφεται εδώ στον δικό του υπολογιστή.
Γεια σας:
Είναι ιδανικό για έναν παλιό υπολογιστή που έχω με ένα amd64 x2 που φαίνεται να έχει πρόβλημα ψύξης και όταν μια διαδικασία καταναλώνει πολλά cpu για αρκετά λεπτά, θερμαίνει έως και 100º C και τερματίζεται.
Έτσι, όταν βλέπω ότι μια διαδικασία (γενικά μερικοί ιστότοποι ή προγράμματα απόδοσης βίντεο) με κάνει να αυξήσω τη θερμοκρασία του cpu, θα χρησιμοποιήσω το cpulimit για να αφαιρέσω το "power" από αυτήν τη διαδικασία.
Ευχαριστίες