Πώς λειτουργεί;
Προαπαιτούμενα
Εγκατάσταση CPULimit
Διαμόρφωση CPULimit με μια εφαρμογή
Απεγκατάσταση του CPULimit
Το CPULimit είναι ένα βοηθητικό πρόγραμμα Linux που προσφέρεται για τον περιορισμό της χρήσης πόρων μιας εφαρμογής. Είναι χρήσιμο όταν θέλετε να αποτρέψετε μια μεμονωμένη εφαρμογή να επιβραδύνει άλλες εφαρμογές. ή να σταματήσει μια εφαρμογή από τη χρήση ολόκληρου πυρήνα ή πυρήνων για μεγάλο χρονικό διάστημα.
Τούτου λεχθέντος, το CPULimit ενδέχεται να μην λειτουργεί με όλες τις εφαρμογές καθώς (ουσιαστικά) ξεκινά/σταματά τις διεργασίες κατά διαστήματα για να μειώσει τη χρήση της CPU (εκφρασμένη ως μέσο όρο). Αυτό θα εξηγηθεί στην επόμενη ενότητα.
Πώς λειτουργεί;
Το CPULimit δεν έχει σχεδιαστεί για να λειτουργεί με εφαρμογές που, για παράδειγμα, χρησιμοποιούν έλεγχο εργασιών. καθώς μπορεί να σκοτωθούν όταν το CPULimit στέλνει SIGSTOPσήμα διακοπής ( ). Ουσιαστικά, οι εφαρμογές θα ενεργοποιούνται/απενεργοποιούνται γρήγορα προκειμένου να περιοριστεί ένα πρόγραμμα στον επιθυμητό αριθμό κύκλων.
Μην ανησυχείτε όμως - οι περισσότερες εφαρμογές θα λειτουργήσουν. Ορισμένες εφαρμογές που μπορούν να περιοριστούν περιλαμβάνουν PHP, Java και Nginx.
Προαπαιτούμενα
Για να εγκαταστήσετε με επιτυχία το CPULimit, θα χρειαστείτε:
- Διακομιστής που εκτελεί CentOS 7 (μόνο συστήματα 64 bit).
make, screenκαι wget.
- Πρόσβαση ρίζας ή
sudoπρονόμια.
Εγκατάσταση CPULimit
Υποθέτοντας ότι έχετε εγκαταστήσει όλες τις προϋποθέσεις, θα πρέπει να είστε σε θέση να ολοκληρώσετε τη διαδικασία εγκατάστασης. Για να ξεκινήσετε, θα χρειαστεί να κάνετε λήψη του CPULimit και να εξαγάγετε το tarball:
cd ~
wget https://astuteinternet.dl.sourceforge.net/project/limitcpu/limitcpu/cpulimit-2.5.tar.gz
tar -xvf cpulimit-2.5.tar.gz
Μόλις ολοκληρωθεί η εξαγωγή του tarball, μπορούμε να μπούμε στον νέο κατάλογο και να ξεκινήσουμε τη μεταγλώττιση του CPULimit:
cd cpulimit-2.5
Τώρα, τρέξτε makeγια να ξεκινήσετε τη μεταγλώττιση του CPULimit σε ένα δυαδικό:
make
Μόλις ολοκληρωθεί αυτή η διαδικασία, θα έχετε ένα δυαδικό αρχείο στον cpulimit-2.5κατάλογο. Για να το κάνουμε διαθέσιμο σε όλο το σύστημα, θα χρειαστεί να εκτελέσουμε την παρακάτω εντολή:
make install
Μπορεί να χρειαστεί λίγος χρόνος για να ολοκληρωθεί.
Διαμόρφωση CPULimit με μια εφαρμογή
Για να χρησιμοποιήσουμε το CPULimit, θα πρέπει να γνωρίζουμε το αναγνωριστικό της διαδικασίας. Αυτό είναι γνωστό ως το PID. Χρησιμοποιώντας topμπορούμε να δούμε μια λίστα με τις διαδικασίες μας:
top -c
Θα δείτε μια λίστα διαδικασιών και θα πρέπει να μοιάζει με το εξής:
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881740 total, 191952 free, 413472 used, 3276316 buff/cache
KiB Swap: 4063228 total, 4062912 free, 316 used. 2881364 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1336 plex 35 15 1368172 67464 6668 S 0.3 1.7 155:41.58 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-995f1dead+
31345 root 20 0 326572 21844 12784 S 0.3 0.6 86:45.32 docker-containerd --config /var/run/docker/containerd/containerd.toml
1 root 20 0 193704 6744 4088 S 0.0 0.2 6:49.22 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
2 root 20 0 0 0 0 S 0.0 0.0 0:01.45 [kthreadd]
3 root 20 0 0 0 0 S 0.0 0.0 0:12.77 [ksoftirqd/0]
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/0:0H]
7 root rt 0 0 0 0 S 0.0 0.0 0:13.95 [migration/0]
Αν θέλαμε να περιορίσουμε plex, για παράδειγμα, θα έπρεπε να λάβουμε υπόψη το PID. Σε αυτή την περίπτωση, είναι 1336. Αν θέλουμε να περιορίσουμε plexστο 15% της CPU, πρέπει να δημιουργήσουμε ένα screenκαι να εκτελέσουμε cpulimit:
screen -S limitcpu
cpulimit -p 1336 -l 15
Για έξοδο από την οθόνη, χρησιμοποιήστε τον ακόλουθο συνδυασμό: CTRL+ A+ D. Για να μπείτε στην οθόνη μόλις βγείτε, απλώς εκτελέστε τα εξής:
screen -r limitcpu
Η γενική μορφή που θα εκτελεστεί cpulimitθα είναι η παρακάτω:
cpulimit -p (PROCESS PID) -l (CPU %)
Σημείωση : PROCESS PIDείναι το αναγνωριστικό διεργασίας και CPU %είναι το όριο της CPU.
Απεγκατάσταση του CPULimit
Η κατάργηση του CPULimit είναι απλή. Εκτελέστε τις παρακάτω εντολές:
cd ~/cpulimit-2.5
make deinstall