CPULimit, beperkt het gebruik dat een proces van de CPU maakt

over CPULimit

In het volgende artikel gaan we CPULimit bekijken. Dit is een opdrachtregelprogramma dat beperkt het CPU-gebruik door een proces (uitgedrukt in percentage, niet in CPU-tijd)​ Dit is handig voor het beheren van batchtaken, wanneer we niet willen dat een proces te veel CPU-cycli verbruikt.

Met het gebruik van deze tool gaan we niet de waarde of andere prioriteitsinstellingen veranderen, maar het daadwerkelijke gebruik van de CPU. Bovendien kan het zich dynamisch en snel aanpassen aan de algemene belasting van het systeem. De controle over de hoeveelheid gebruikte CPU wordt gedaan door te verzenden Señales VOLGENDE HALTE y VOLGENDE POSIX naar processen. Alle onderliggende processen en threads van het opgegeven proces zullen hetzelfde CPU-percentage delen.

Installeer CPULimit

CPULimit is beschikbaar in de meeste standaard opslagplaatsen van Unix-achtige distributies​ We kunnen het installeren met behulp van de standaard pakketbeheerders in de respectievelijke Gnu / Linux-distributie. Voor het voorliggende voorbeeld zullen we zien hoe u het op Debian, Ubuntu en Linux Mint kunt installeren. We hoeven alleen een terminal te openen (Ctrl + Alt + T) en het volgende commando erin te schrijven:

sudo apt-get install cpulimit

Wie wil kan andere soorten voorzieningen raadplegen in de project GitHub-pagina.

CPULimit gebruiken

Nadat de tool is geïnstalleerd, is het tijd om te zien hoe het werkt. Om dit te doen, gaan we een programma uitvoeren dat veel CPU-bronnen verbruikt. De volgende opdrachten moeten worden uitgevoerd als de rootgebruiker.

Een script maken dat CPU-bronnen verbruikt

Eerst gaan we maak een bestand aan met de naam derrochecpu.sh​ Ik ga de Vim-redacteur, maar dat iedereen degene gebruikt die ze verkiezen. Vanaf de terminal (Ctrl + Alt + T) zullen we moeten schrijven:

vim derrochecpu.sh

Eenmaal geopend, drukken we op de '-toetsEsc' en toen 'i​ Nu gaan we de volgende regels toevoegen:

vim script splurgecpu

#!/bin/bash
while :; do :; done;

Als dit klaar is, is het tijd om op te slaan en af ​​te sluiten. Om dit te doen zullen we op de 'toets drukkenEsc'en we zullen schrijven : wq om het bestand op te slaan en te sluiten. Dit korte script wordt zonder onderbreking herhaald en verbruikt maximaal CPU-gebruik. Daarom is het raadzaam om het op een virtuele machine te testen.

Nu gaan we dit bestand uitvoerbaar maken. Om dit te doen, zullen we vanaf dezelfde terminal (Ctrl + Alt + T) uitvoeren:

chmod +x derrochecpu.sh

Het script starten

Nu starten we het proces op de achtergrond. We zullen dit doen met behulp van het commando:

./derrochecpu.sh &

PID-script splurgeCPU

We gaan de PID van het proces behouden​ In dit geval is 6472 de PID van het gestarte proces.

Controleren hoeveel CPU het verbruikt

We kunnen zien hoeveel CPU het proces dat we zojuist hebben gestart verbruikt, met behulp van de commando «top» in dezelfde terminal:

top script splurgeCPU

top

Zoals te zien is in de bovenstaande schermafbeelding, verbruikt het wastecpu.sh-proces meer dan 96% CPU-gebruik. Omdat het behoorlijk veel CPU-gebruik verbruikt, is het moeilijk om andere taken uit te voeren. Na een paar minuten, het systeem kan vastlopen of vastlopen​ Dit is waar CPULimt ons te hulp schiet.

CPU-gebruik beperken door PID

Laten we nu het CPU-gebruik van dit proces beperken met behulp van de CPULimit-tool. Wij gaan beperk het CPU-gebruik tot 35% door middel van de bijbehorende PID (ongeveer). Voer hiervoor het volgende uit:

cpulimit -l 35 -p 6472 &
  • De optie "-l 35»Beperkt het proces tot ongeveer 35%.
  • «-p 6472»Is de PID van derrochecpu.sh die we eerder hebben gezien.

Het effect van CPULimit controleren

Nadat de vorige opdracht is gestart, gaan we het CPU-gebruik van het proces opnieuw controleren. Hiervoor zullen we het bovenste commando opnieuw gebruiken:

top script CPULimit verkwisting

top

Zoals je kunt zien in de afbeelding hierboven, is het CPU-gebruik van wastefulcpu.sh gedaald tot 35,6%, wat bijna 35% is. Nu ja we kunnen meer CPU-bronnen hebben om andere processen uit te voeren.

CPU-gebruik beperken door bestandsnaam

We hebben gezien hoe we een proces kunnen beperken met behulp van de PID. Ook we kunnen het CPULimit-commando uitvoeren en de naam van het uitvoerbare programmabestand specificeren.

Hetzelfde voorbeeld hierboven zou bijvoorbeeld zijn:

cpulimit -l 30 ./derrochecpu.sh &

CPULimit kan handig zijn tijdens het uitvoeren van een proces dat te veel CPU-gebruik verbruikt. De volgende keer dat we merken dat een programma te veel CPU verbruikt, zullen we simpelweg de PID van het proces moeten vinden met het commando «top​ Als je het hebt, hoef je alleen maar je CPU-gebruik te beperken tot een minimumwaarde met behulp van de opdracht CPULimit, zoals beschreven in dit artikel.

Verwijder CPULimit

Het verwijderen van deze tool van ons systeem is net zo eenvoudig als het openen van een terminal (Ctrl + Alt + T) en het typen ervan:

sudo apt remove cpulimit

Wat dit artikel heeft beschreven het is maar een voorbeeld​ Het is duidelijk dat niemand bij zijn volle verstand een script zoals het hier beschreven script op zijn eigen computer zal starten.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   javp zei

    Hi
    Het is perfect voor een oude pc die ik heb met een amd64 x2 die een koelprobleem lijkt te hebben en wanneer een proces gedurende enkele minuten veel cpu verbruikt, wordt het verwarmd tot 100º C en wordt het uitgeschakeld.
    Dus als ik zie dat een proces (meestal sommige websites of videoweergaveprogramma's) me de temperatuur van de cpu laat verhogen, zal ik cpulimit gebruiken om "stroom" uit dat proces te halen.
    bedankt