Χρησιμοποιώντας εντολές "Nice" και "Renice" στο Linux

Είναι όλα σχετικά με τις προτεραιότητες.

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

Νίκαιας να πάρει τις προτεραιότητες ευθεία

Από προεπιλογή, όλες οι διαδικασίες θεωρούνται εξίσου επείγουσες και κατανέμονται το ίδιο ποσό χρόνου CPU. Για να επιτρέψει στον χρήστη να αλλάξει τη σχετική σημασία των διαδικασιών, το Linux συνδέει μια παράμετρο προτεραιότητας με κάθε εργασία που μπορεί να οριστεί ή να αλλάξει από το χρήστη. Στη συνέχεια, ο πυρήνας του Linux διατηρεί χρόνο CPU για κάθε διαδικασία με βάση τη σχετική τιμή προτεραιότητας.

Η ωραία παράμετρος χρησιμοποιείται για το σκοπό αυτό. Κυμαίνεται από το μείον 20 έως το 19 και μπορεί να πάρει μόνο ακέραιες τιμές. Μια τιμή μείον 20 αντιπροσωπεύει το υψηλότερο επίπεδο προτεραιότητας, ενώ το 19 αντιπροσωπεύει το χαμηλότερο επίπεδο. Το γεγονός ότι το υψηλότερο επίπεδο προτεραιότητας υποδεικνύεται από τον πιο αρνητικό αριθμό είναι κάπως αόριστο. Ωστόσο, η λειτουργία με χαμηλότερη προτεραιότητα θεωρείται "καλύτερο", επειδή επιτρέπει σε άλλες διαδικασίες να χρησιμοποιούν μεγαλύτερο μερίδιο χρόνου CPU.

Πώς να παίξετε ωραία

Χρησιμοποιώντας την εντολή nice ξεκινά μια νέα διαδικασία (εργασία) και την εκχωρεί μια προτεραιότητα (ωραία) αξία την ίδια στιγμή. Για να αλλάξετε την προτεραιότητα μιας διαδικασίας που εκτελείται ήδη, χρησιμοποιήστε την εντολή renice .

Για παράδειγμα, η ακόλουθη γραμμή εντολών ξεκινά τη διαδικασία "μεγάλης εργασίας", ορίζοντας την ωραία τιμή σε 12:

ωραία -12 μεγάλη εργασία

Σημειώστε ότι η παύλα μπροστά από τα 12 δεν αντιπροσωπεύει σημάδι μείον. Έχει τη συνήθη λειτουργία της σήμανσης μιας σημαίας που έχει περάσει ως επιχείρημα στην ωραία εντολή.

Για να ορίσετε την ωραία τιμή στο μείον 12, προσθέστε μια άλλη παύλα:

ωραία - 12 μεγάλη εργασία

Θυμηθείτε ότι οι χαμηλότερες ωραίες τιμές αντιστοιχούν σε υψηλότερη προτεραιότητα. Έτσι, -12 έχει υψηλότερη προτεραιότητα από 12. Η προεπιλεγμένη ωραία τιμή είναι 0. Οι τακτικοί χρήστες μπορούν να ορίσουν χαμηλότερες προτεραιότητες (θετικές ωραίες τιμές). Για να χρησιμοποιήσετε υψηλότερες προτεραιότητες (αρνητικές ωραίες τιμές), απαιτούνται προνόμια διαχειριστή.

Μπορείτε να αλλάξετε την προτεραιότητα μιας εργασίας που εκτελείται ήδη με τη χρήση renice:

renice 17-ρ 1134

Αυτό αλλάζει την ωραία τιμή της εργασίας με το αναγνωριστικό διαδικασίας 1134 έως 17. Στην περίπτωση αυτή, δεν χρησιμοποιείται παύλα για την επιλογή εντολής όταν καθορίζεται η ωραία τιμή. Η ακόλουθη εντολή αλλάζει την ωραία τιμή της διαδικασίας 1134 έως -3:

renice -3-ρ 1134

Για να εκτυπώσετε μια λίστα με τις τρέχουσες διαδικασίες , χρησιμοποιήστε την εντολή ps. Η προσθήκη της επιλογής "l" (όπως στην "λίστα") παραθέτει την ωραία τιμή κάτω από την επικεφαλίδα της στήλης "NI". Για παράδειγμα:

ps -al