Ograničite upotrebu CPU-a procesa u Linuxu pomoću CPULimit alata


U ranijem postu smo objasnili CPUTool za ograničavanje i kontrolu korištenja CPU-a bilo kojeg procesa u Linuxu. Omogućava administratoru sistema da prekine izvršenje procesa (ili grupe procesa) ako opterećenje CPU/sistema prijeđe definisani 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 opcija upotrebe u poređenju sa svojim kolegom. Jedna bitna razlika je u tome što cpulimit ne upravlja opterećenjem sistema za razliku od cputool-a.

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

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

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

sudo apt install cpulimit

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

# yum instaliraj epel-release
# yum install cpulimit

Ograničavanje upotrebe procesora procesa sa CUPLimitom

U ovom pododjeljku ćemo objasniti kako cpulimit funkcionira. Prvo, pokrenimo naredbu (ista dd naredba koju smo gledali dok smo pokrivali cputool) koja bi trebala rezultirati visokim procentom CPU-a, 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 alate za vrh ili poglede koji daju stvarno često ažurirano stanje pokrenutog Linux sistema, da bismo gledali korištenje CPU-a gornje naredbe.

top

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

Ali ovo možemo ograničiti koristeći cputlimit na sljedeći način. Opcija --pid ili -p se koristi za specificiranje PID-a i --limit ili -l je koristi se za postavljanje postotka korištenja za proces.

Naredba u nastavku će ograničiti dd komandu (PID 17918) na 50% korištenje jednog CPU jezgra.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

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

Možemo smanjiti njegovu upotrebu CPU-a po drugi put na sljedeći način, ovaj put dalje snižavajući postotak na sljedeći način:

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Kao što smo radili i ranije, možemo pokrenuti vrh ili poglede da vidimo novu upotrebu CPU-a za proces, koja će se kretati od 20%-25,0% ili nešto više od ovoga.

top

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

Da pokrenete cpulimit kao pozadinski proces, koristite prekidač --background ili -b, oslobađajući terminal.

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

Da navedete broj CPU jezgara prisutnih na sistemu, koristite oznaku --cpu ili -c (ovo se obično detektuje automatski).

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

Umjesto da ograničimo korištenje procesora procesa, možemo ga ubiti opcijom --kill ili -k. Podrazumevano je da je signal koji se šalje procesu SIGCONT, ali da pošaljete drugačiji signal, koristite oznaku --signal ili -s.

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

Da biste izašli 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

Za dodatne informacije i opcije upotrebe, pogledajte cpulimit man stranicu.

man cpulimit

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

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

Poređenja radi, nakon testiranja CPUTool-a i CPULimita, primijetili smo da prvi nudi efikasniju i pouzdaniju funkciju “ograničenja upotrebe CPU-a u procesu”.

Ovo je u skladu sa procentualnim opsegom upotrebe CPU-a koji se posmatra nakon pokretanja oba alata protiv datog procesa. Isprobajte oba alata i dodajte svoje mišljenje u ovaj članak koristeći obrazac za povratne informacije u nastavku.