Ograničite korištenje CPU-a procesa u Linuxu pomoću alata CPULimit


U ranijem smo postu objasnili CPUTool za ograničavanje i kontrolu korištenja CPU-a bilo kojeg procesa u Linuxu. Omogućuje administratoru sustava da prekine izvršenje procesa (ili grupe procesa) ako opterećenje procesora/sustava prijeđe definirani prag. Ovdje ćemo naučiti kako koristiti sličan alat pod nazivom cpulimit.

Cpulimit se koristi za ograničavanje upotrebe CPU-a procesa na isti način kao CPUTool, međutim, nudi više mogućnosti upotrebe u usporedbi sa svojim parnjakom. Jedna važna razlika je ta što cpulimit ne upravlja opterećenjem sustava za razliku od cputoola.

Predloženo za čitanje: 9 korisnih naredbi za dobivanje informacija o procesoru na Linuxu

Instalirajte CPULimit da ograničite korištenje CPU-a procesa u Linuxu

CPULimit dostupan je za instalaciju iz zadanih softverskih repozitorija Debian/Ubuntu i njegovih derivata pomoću alata za upravljanje paketima.

sudo apt install cpulimit

U RHEL/CentOS i Fedora prvo trebate omogućiti EPEL repozitorij, a zatim instalirati cpulimit kao što je prikazano.

# yum instalirajte epel-release
# yum instalirajte cpulimit

Ograničavanje upotrebe procesora procesa s CUPLimit

U ovom pododjeljku objasnit ćemo kako cpulimit radi. Prvo, pokrenimo naredbu (ista dd naredba koju smo gledali dok smo pokrivali cputool) koja bi trebala rezultirati visokim CPU postotkom, u pozadini (imajte na umu da se PID procesa ispisuje nakon pokretanja naredbe) .

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

[1] 17918

Zatim, možemo koristiti top ili glances alate koji izlaze stvarno često ažurirano stanje pokrenutog Linux sustava, kako bismo pratili korištenje CPU-a gornje naredbe.

top

Gledajući gornji rezultat, možemo vidjeti da proces dd koristi najveći postotak CPU vremena 100,0%.

Ali to možemo ograničiti pomoću cputlimit na sljedeći način. Opcija --pid ili -p koristi se za određivanje PID-a, a --limit ili -l je koristi se za postavljanje postotka upotrebe za proces.

Naredba u nastavku ograničit će dd naredbu (PID 17918) na 50% korištenje jedne CPU jezgre.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

Nakon što pokrenemo cpulimit, možemo vidjeti trenutnu upotrebu CPU-a za dd naredbu s vrha ili pogledom. Iz izlaza, vrijednost se kreće od (51,5%-55,0% ili malo više).

Možemo prigušiti njegovu upotrebu CPU-a po drugi put na sljedeći način, ovaj put dalje smanjujući postotak na sljedeći način:

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Kao što smo radili prije, možemo pregledati vrh ili pogled kako bismo vidjeli novu upotrebu CPU-a za proces, koja će se kretati od 20%-25,0% ili malo više.

top

Napomena: ljuska postaje neinteraktivna – ne očekuje nikakav korisnički unos kada se izvodi cpulimit. Da ga ubijete (što bi trebalo zaustaviti operaciju ograničenja upotrebe CPU-a), pritisnite [Ctrl + C].

Da biste pokrenuli cpulimit kao pozadinski proces, upotrijebite prekidač --background ili -b, čime ćete osloboditi terminal.

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

Da biste odredili broj CPU jezgri prisutnih u sustavu, koristite oznaku --cpu ili -c (ovo se obično detektira automatski).

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

Umjesto da ograničimo upotrebu CPU-a procesa, možemo ga zaustaviti s opcijom --kill ili -k. Zadani signal koji se šalje procesu je SIGCONT, ali za slanje drugačijeg signala koristite oznaku --signal ili -s.

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

Za izlaz ako ne postoji odgovarajući ciljni proces ili u slučaju da umre, uključite -z ili --lazy ovako.

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

Dodatne informacije i mogućnosti korištenja potražite na cpulimit man stranici.

man cpulimit

Provjerite sljedeće korisne vodiče za pronalaženje informacija o procesoru i praćenje performansi procesora/sustava.

  1. Pronađite najbolje pokrenute procese prema najvećoj upotrebi memorije i CPU-a u Linuxu
  2. Cpustat – Prati korištenje CPU-a pokretanjem procesa u Linuxu
  3. CoreFreq – Snažan alat za praćenje procesora za Linux sustave
  4. Pronađite najbolje pokrenute procese prema najvećoj upotrebi memorije i CPU-a u Linuxu
  5. 20 alata naredbenog retka za praćenje performansi Linuxa
  6. 13 alata za praćenje performansi Linuxa – 2. dio

Za usporedbu, nakon testiranja CPUToola i CPULimit, primijetili smo da prvi nudi učinkovitiju i pouzdaniju funkciju „ograničenja upotrebe CPU-a procesa“.

Ovo je prema rasponu postotaka upotrebe CPU-a uočenog nakon pokretanja oba alata u određenom procesu. Isprobajte oba alata i dodajte svoje mišljenje ovom članku koristeći obrazac za povratne informacije u nastavku.