Wyszukiwanie w witrynie

Ogranicz użycie procesora przez proces w systemie Linux za pomocą narzędzia CPULimit


We wcześniejszym poście wyjaśniliśmy CPUTool do ograniczania i kontrolowania wykorzystania procesora dowolnego procesu w systemie Linux. Umożliwia administratorowi systemu przerwanie wykonywania procesu (lub grupy procesów), jeśli obciążenie procesora/systemu przekroczy zdefiniowany próg. Tutaj dowiemy się, jak korzystać z podobnego narzędzia o nazwie cpulimit.

Cpulimit służy do ograniczania użycia procesora przez proces w taki sam sposób jak CPUTool, jednak oferuje więcej opcji użycia w porównaniu do swojego odpowiednika. Ważną różnicą jest to, że cpulimit nie zarządza obciążeniem systemu w przeciwieństwie do cputool.

Sugerowana lektura: 9 przydatnych poleceń pozwalających uzyskać informacje o procesorze w systemie Linux

Zainstaluj CPULimit, aby ograniczyć użycie procesora przez proces w systemie Linux

CPULimit można zainstalować z domyślnych repozytoriów oprogramowania Debian/Ubuntu i jego pochodnych za pomocą narzędzia do zarządzania pakietami.

sudo apt install cpulimit

W RHEL/CentOS i Fedora musisz najpierw włączyć repozytorium EPEL, a następnie zainstalować cpulimit, jak pokazano.

# mniam, zainstaluj epel-release
# mniam, zainstaluj cpulimit

Ograniczanie wykorzystania procesora procesu za pomocą CUPLimit

W tej podsekcji wyjaśnimy, jak działa cpulimit. Najpierw uruchommy polecenie (to samo polecenie dd, które sprawdziliśmy przy omawianiu cputool), które powinno skutkować wysokim procentem procesora w tle (zwróć uwagę, że PID procesu jest drukowany po uruchomieniu polecenia) .

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

[1] 17918

Następnie możemy użyć narzędzi top lub lookings, które wyświetlają rzeczywisty, często aktualizowany stan działającego systemu Linux, aby sprawdzić użycie procesora przez powyższe polecenie.

top

Patrząc na powyższe dane wyjściowe, widzimy, że proces dd wykorzystuje najwyższy procent czasu procesora 100,0%.

Ale możemy to ograniczyć za pomocą cputlimit w następujący sposób. Opcja --pid lub -p służy do określenia PID, a opcja --limit lub -l jest używana służy do ustawiania procentu wykorzystania procesu.

Poniższe polecenie ograniczy użycie dd (PID 17918) do 50% jednego rdzenia procesora.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

Po uruchomieniu cpulimit możemy wyświetlić bieżące użycie procesora dla polecenie dd za pomocą górnych lub rzutów oka. Z danych wyjściowych wynika, że wartość waha się od (51,5%-55,0% lub nieco powyżej).

Możemy ograniczyć użycie procesora po raz drugi w następujący sposób, tym razem jeszcze bardziej obniżając wartość procentową w następujący sposób:

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Tak jak to zrobiliśmy wcześniej, możemy uruchomić top lub rzuty oka, aby zobaczyć nowe użycie procesora przez proces, które będzie wynosić od 20%-25,0% lub nieco więcej.

top

Uwaga: Powłoka staje się nieinteraktywna – nie oczekuje żadnych działań użytkownika, gdy uruchomiony jest cpulimit. Aby go zabić (co powinno zatrzymać operację ograniczania użycia procesora), naciśnij [Ctrl + C].

Aby uruchomić cpulimit jako proces w tle, użyj przełącznika --background lub -b, zwalniając terminal.

sudo cpulimit --pid 17918 --limit 20 --background

Aby określić liczbę rdzeni procesora obecnych w systemie, użyj flagi --cpu lub -c (zwykle jest to wykrywane automatycznie).

sudo cpulimit --pid 17918 --limit 20 --cpu 4

Zamiast ograniczać użycie procesora przez proces, możemy go zabić opcją --kill lub -k. Domyślnym sygnałem wysyłanym do procesu jest SIGCONT, ale aby wysłać inny sygnał, użyj flagi --signal lub -s.

sudo cpulimit --pid 17918 --limit 20 --kill 

Aby zakończyć, jeśli nie ma odpowiedniego procesu docelowego lub w przypadku jego śmierci, dołącz -z lub --lazy w ten sposób.

sudo cpulimit --pid 17918 --limit 20 --kill --lazy

Dodatkowe informacje i opcje użycia można znaleźć na stronie podręcznika cpulimit.

man cpulimit

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

  1. Znajdź najczęściej działające procesy według najwyższego użycia pamięci i procesora 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
  5. 20 narzędzi wiersza poleceń do monitorowania wydajności systemu Linux
  6. 13 Narzędzia do monitorowania wydajności systemu Linux – część 2

Dla porównania, po przetestowaniu CPUTool i CPULimit, zauważyliśmy, że ten pierwszy oferuje bardziej efektywną i niezawodną funkcję „ograniczenia użycia procesora procesu”.

Jest to zgodne z procentowym zakresem wykorzystania procesora zaobserwowanym po uruchomieniu obu narzędzi w danym procesie. Wypróbuj oba narzędzia i dodaj swoje przemyślenia do tego artykułu, korzystając z poniższego formularza opinii.