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.
- Znajdź najczęściej działające procesy według najwyższego użycia pamięci i procesora w systemie Linux
- Cpustat – monitoruje wykorzystanie procesora poprzez uruchamianie procesów w systemie Linux
- CoreFreq – potężne narzędzie do monitorowania procesora dla systemów Linux
- Znajdź najczęściej działające procesy według najwyższego użycia pamięci i procesora w systemie Linux
- 20 narzędzi wiersza poleceń do monitorowania wydajności systemu Linux
- 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.