Wyszukiwanie w witrynie

CPUTool - ograniczaj i kontroluj wykorzystanie procesora przez dowolny proces w systemie Linux


Jednym z kluczowych obszarów monitorowania wydajności Linuksa musi być użycie procesora i obciążenie systemu. Istnieje kilka narzędzi do monitorowania wydajności systemu Linux, które umożliwiają śledzenie rozwoju sytuacji w systemie.

Wiele z tych narzędzi po prostu wyświetla stan/statystyki systemu, podczas gdy kilka innych umożliwia zarządzanie wydajnością systemu. Jedno z takich narzędzi nazywa się CPUTool.

CPUTool to proste, ale potężne narzędzie wiersza poleceń służące do ograniczania i kontrolowania wykorzystania procesora dowolnego procesu do określonego limitu i umożliwia przerwanie wykonywania procesu, jeśli obciążenie systemu przekroczy zdefiniowany próg.

Jak działa CPUTool?

Aby ograniczyć użycie procesora, cputool wysyła do procesów sygnały SIGSTOP i SIGCONT, co jest określane na podstawie obciążenia systemu. Opiera się na pseudosystemie plików /proc do odczytu PID i miar wykorzystania procesora.

Można go użyć do ograniczenia użycia procesora lub obciążenia systemu, na które wpływa pojedynczy proces lub grupa procesów, do określonego limitu i/lub zawieszenia procesów, jeśli obciążenie systemu przekroczy określony próg.

Sugerowana lektura: Poznaj średnie obciążenie Linuksa i monitoruj wydajność Linuksa

Zainstaluj CPUTool, aby ograniczyć użycie procesora i średnie obciążenie

CPUTool można zainstalować wyłącznie na Debianie/Ubuntu i jego pochodnych z domyślnych repozytoriów systemowych przy użyciu narzędzia do zarządzania pakietami.

sudo apt install cputool

Ograniczanie wykorzystania procesora procesu za pomocą CUPTool

Przyjrzyjmy się teraz, jak naprawdę działa cputool. Aby to wszystko zademonstrować, uruchomimy polecenie dd, które powinno spowodować wysoki procent procesora w tle i wyświetlić jego PID.

dd if=/dev/zero of=/dev/null &

Aby monitorować wykorzystanie procesora, możemy skorzystać z narzędzi topowych lub przeglądów, które pozwalają nam przeglądać w czasie rzeczywistym regularnie aktualizowany stan uruchomionych procesów systemu Linux:

top

Z powyższych danych wynika, że polecenie dd ma najwyższy procent czasu procesora 99,7%. Teraz możemy to ograniczyć za pomocą cputool, jak pokazano poniżej.

Flaga --cpu-limit lub -c służy do ustawiania procentu wykorzystania procesu lub grupy procesów, a flaga -p służy do określania PID. Poniższe polecenie ograniczy użycie polecenia dd (PID 8275) do 50% jednego rdzenia procesora:

cputool --cpu-limit 50 -p 8275 

Po uruchomieniu cputool możemy jeszcze raz sprawdzić nowe użycie procesora dla procesu (PID 8275). Teraz użycie procesora dla procesu dd powinno mieścić się w zakresie (49,0%-52,0%).

top

Aby jeszcze bardziej ograniczyć użycie procesora dd do 20%, możemy uruchomić cputool po raz drugi:

cputool --cpu-limit 20 -p 8275 

Następnie natychmiast sprawdź, używając narzędzi takich jak top lub podobnych do tego (użycie procesora dla dd powinno teraz wynosić od 19,0% do 22,0% lub nieco więcej):

top

Zauważ, że powłoka nie oczekuje żadnych działań użytkownika podczas działania cputool; dlatego przestaje reagować. Aby go zabić (zakończy to operację ograniczania użycia procesora), naciśnij Ctrl + C.

Co ważne, aby określić grupę procesów (jeden program z kilkoma działającymi instancjami, każda z odrębnym PID), na przykład serwer WWW HTTP:

pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Użyj flagi -P w ten sposób:

cputool --cpu-limit 20 -P 1780

Ograniczanie obciążenia systemu za pomocą CUPTool

Opcja -l służy do określenia maksymalnego obciążenia, jakie może wytrzymać system, aby proces lub grupa procesów mogła kontynuować działanie. Możemy użyć wartości ułamkowej (np. 2,5).

Poniższy przykład oznacza uruchomienie rsync dla lokalnej kopii zapasowej tylko wtedy, gdy obciążenie systemu nie przekracza 3,5:

cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Aby uzyskać więcej informacji i zastosowań, wyświetl stronę podręcznika CPUTool:

man cputool

Zapoznaj się z poniższymi przydatnymi przewodnikami dotyczącymi wyszukiwania informacji o procesorze i monitorowania wydajności procesora:

  1. 9 przydatnych poleceń do uzyskania informacji o procesorze w systemie Linux
  2. Cpustat – monitoruje wykorzystanie procesora poprzez uruchamianie procesów w systemie Linux
  3. CoreFreq – potężne narzędzie do monitorowania procesora dla systemów Linux
  4. Znajdź najczęściej działające procesy według najwyższego użycia pamięci i procesora w systemie Linux

Podsumowując, CPUTool naprawdę przydaje się do zarządzania wydajnością Linuksa. Podziel się swoimi przemyśleniami na temat tego artykułu za pomocą poniższego formularza opinii.