CPU

Kako ograničiti upotrebu procesora na Linuxu

Kako ograničiti upotrebu procesora na Linuxu
U svom životnom vijeku Linuxa morali ste vidjeti kako neki procesi zauzimaju sve cikluse procesora (90-99% upotrebe CPU-a), čineći da vaše računalo gotovo ne reagira dok se ne završi. To bi moglo biti u redu ako postupak traje nekoliko sekundi. Ali što ako treba dugo? To nije baš lijepo sjediti i gledati svoje računalo koje ne reagira nekoliko minuta i sati, zar ne? Pa, Linux ima mnogo izvrsnih alata za njihovo stvaranje nije baš lijepo procesi do Lijepo procesi.

Možete postaviti koliko CPU smije imati jedan proces. Ako procesu stvarno treba puno procesorske snage, možete pokrenuti nekoliko naredbi da biste mu dali sve neaktivne procesorske cikluse (CPU ciklusi koji vam nisu potrebni). Na taj način nikada nećete morati dugo sjediti i buljiti u svoje računalo koje ne reagira.

U ovom članku pokazat ću vam kako ograničiti upotrebu procesora na Linuxu. U ovom ću članku koristiti CentOS 7. Ali bilo koja moderna Linux distribucija trebala bi raditi. Pa, krenimo.

Ograničavanje upotrebe CPU-a s nice i renice:

Na Linuxu se mogu promijeniti prioriteti svakog pokrenutog procesa. Procesu možete postaviti veće prioritete koji su vam važniji od procesa koji bez opravdanog razloga zaustavlja vaš CPU.

Svaki proces na Linuxu ima lijepu vrijednost. Vrijednost nice određuje koji postupak ima veće prioritete, a koji manji. Lijepa vrijednost može biti između -20 i 19. Proces s lijepom vrijednošću od -20 imat će najveći prioritet i koristit će najviše CPU ciklusa. Proces s lijepom vrijednošću 19 imat će najmanji prioritet i upotrebljavat će CPU kad ga niti jedan drugi proces ne koristi.

Postoje dva načina za postavljanje lijepe vrijednosti postupka. Možete započeti postupak s Lijepo naredba za postavljanje lijepe vrijednosti tijekom pokretanja postupka. Ili možete koristiti renice naredba za postavljanje lijepe vrijednosti nakon započinjanja procesa.

Da biste postavili lijepu vrijednost prilikom pokretanja postupka, pokrenite ga na sljedeći način:

$ nice -n NICE_VALUE COMMAND_TO_RUN

BILJEŠKA: Ovdje NICE_VALUE može biti bilo što od -20 do 19 i COMMAND_TO_RUN je bilo koja naredba koju želite pokrenuti s lijepom vrijednošću NICE_VALUE.

Na primjer, recimo, želite pokrenuti spavati naredba s lijepom vrijednošću 14. Izvedite naredbu na sljedeći način:

ugodno -n 14 spavanja 40000 &

Sada možete provjeriti je li lijepa vrijednost ispravno postavljena pomoću naredbe top. Svu naredbu možete navesti sve pokrenute procese (kao vaš korisnik za prijavu):

$ ps -fl

Kao što vidite, lijepa vrijednost postupka postavljena je na 14.

Sada ako želite promijeniti lijepu vrijednost vaših postojećih procesa, tada vam je potreban samo ID procesa (PID) procesa za koji želite promijeniti lijepu vrijednost. Možete koristiti ps pomoćni zapovjedništvo ili vrh naredba za pronalaženje ID-a ili PID-a procesa.

Tada možeš trčati renice naredba kako bi se promijenila lijepa vrijednost postojećeg procesa:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Kao što vidite, lijepa vrijednost postupka s PID 6422 se mijenja.

Ograničavanje upotrebe CPU-a s CGROUPS:

Puni oblik GRUPE je Cnadzor Groups. Riječ je o značajkama Linux jezgre koje se koriste za ograničavanje resursa za obradu grupa kao što su (CPU, memorija, dozvole i još mnogo toga) na Linuxu.

Sve što morate učiniti je stvoriti novu grupu procesa i toj svojoj grupi dodati svoje procese na koje želite ograničiti resurse. Jednostavan!

Alati za upravljanje CGROUPS po defaultu nisu instalirani na CentOS 7. Ali dostupan je u službenom spremištu paketa CentOS 7.

Prvo ažurirajte predmemoriju spremišta YUM paketa sljedećom naredbom:

$ sudo yum makecache

Sada instalirajte CGROUPS alate za upravljanje sa sljedećom naredbom:

$ sudo yum instalirajte libcgroup-tools

Sada pritisnite g a zatim pritisnite .

Trebao bi biti instaliran.

Možete ograničiti upotrebu CPU-a jedne grupe. Na primjer, možete upotrijebiti CGROUPS da biste rekli procesu unutar CGROUP-a da koristi, recimo, 100 ms od svakih 1000 ms (ili .1 od svakog 1s) CPU vremena.

Prvo stvorite CGROUP sa sljedećom naredbom:

$ sudo cgcreate -g procesor: / cpulimit

BILJEŠKA: Ovdje, cpulimit je naziv grupe koja kontrolira procesor upotreba.

Sada morate postaviti procesor.cfs_period_us i procesor.cfs_quota_us nekretnina na cpulimit skupina.

U ovom primjeru 1000 ms (milisekunde) ili 1000000us (mikrosekunde) trebaju biti postavljene na procesor.cfs_period_us svojstvo i 100ms ili 100000us treba postaviti na procesor.cfs_quota_us imovine.

Izvedite sljedeće naredbe da biste postavili ova svojstva na cpulimit skupina:

$ sudo cgset -r cpu.cfs_period_us = 1000000 cpulimit
$ sudo cgset -r cpu.cfs_quota_us = 100000 cpulimit

Sada možete pokrenuti sljedeću naredbu kako biste provjerili jesu li sva svojstva ispravno postavljena:

$ sudo cgget -g procesor: cpulimit

BILJEŠKA: Ovdje, cpulimit je naziv GRUPE i procesor je resurs koji ograničavam.

Kao što vidiš, procesor.cfs_period_us i procesor.cfs_quota_us su ispravno postavljeni.

Sad u koji god proces da dodate cpulimit CGROUP će koristiti 1/10th (100000/1000000 = 1/10 = 0.1 = 10%) ukupnih ciklusa procesora.

Sada da biste ograničili CPU procesa, pokrenite program ili naredbu sa cgexec kako slijedi:

$ sudo cgexec -g procesor: cpulimit VAŠE_KOMANDE

BILJEŠKA: Ovdje, VAŠ_ZAPOVIJED mogu biti bilo koje valjane Linux naredbe.

Da bih dokazao da to stvarno radi, prvo ću pokrenuti sljedeću naredbu bez CGROUPS, a zatim s CGROUPS i pokazati vam rezultate.

$ dd ako = / dev / nula od = out bs = 1M

Kao što vidite, bez CGROUPS naredba koristi 90% ukupnog CPU-a.

Zatim sam pokrenuo istu naredbu s CGROUPS kako slijedi:

$ sudo cgexec -g procesor: cpulimit dd ako = / dev / nula od = out bs = 1M

Kao što vidite, potrošnja procesora je maksimalno 10%. Proces se ne koristi više od toga.

Dakle, na taj način koristite CGROUPS kako biste ograničili CPU upotrebu procesa na Linuxu. Hvala što ste pročitali ovaj članak.

Reference:

[1] https: // pristup.crveni šešir.com / documentation / en-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.umrijeti.net / man / 1 / nice

[3] https: // linux.umrijeti.net / man / 8 / renice

Kako koristiti AutoKey za automatizaciju Linux igara
AutoKey je uslužni program za automatizaciju radne površine za Linux i X11, programiran na Python 3, GTK i Qt. Koristeći njegovu skriptiranje i MACRO ...
Kako prikazati brojač FPS-a u Linux igrama
Linux gaming dobio je velik poticaj kada je Valve najavio Linux podršku za Steam klijent i njihove igre 2012. godine. Od tada su mnoge AAA i indie igr...
Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...