CPU

Ako obmedziť využitie procesora na systéme Linux

Ako obmedziť využitie procesora na systéme Linux
Počas svojho života v systéme Linux ste už určite videli, že niektoré procesy zaberajú všetky cykly procesora (90 - 99% využitie procesora), vďaka čomu váš počítač takmer nereaguje, kým nedokončí. To môže byť v poriadku, ak dokončenie procesu trvá niekoľko sekúnd. Ale čo Ak to trvá dlho? Nie je príliš príjemné sedieť a pozerať sa na svoj počítač, ktorý nereaguje, minúty a hodiny, že? Linux má na ich výrobu mnoho úžasných nástrojov nie veľmi pekné procesy do pekný procesy.

Môžete nastaviť, koľko CPU môže mať jeden proces. Ak proces skutočne vyžaduje veľa energie procesora, môžete spustiť niekoľko príkazov a dať mu všetky nečinné cykly CPU (cykly CPU, ktoré nepotrebujete). Takto už nikdy nebudete musieť dlho sedieť a pozerať sa na svoj počítač, ktorý nereaguje.

V tomto článku vám ukážem, ako obmedziť využitie procesora v systéme Linux. V tomto článku použijem systém CentOS 7. Každá moderná distribúcia Linuxu by však mala fungovať. Takže poďme na to.

Obmedzenie využitia procesora s pekným a renice:

V systéme Linux je možné zmeniť priority každého bežiaceho procesu. Môžete nastaviť vyššie priority pre proces, ktorý je pre vás dôležitejší ako proces, ktorý bezdôvodne obťažuje váš procesor.

Každý proces v systéme Linux má príjemnú hodnotu. Hodnota nice určuje, ktorý proces má vyššie priority a ktorý naopak. Príjemná hodnota môže byť medzi -20 až 19. Proces s peknou hodnotou -20 bude mať najvyššiu prioritu a bude využívať najviac cyklov CPU. Proces s peknou hodnotou 19 bude mať najnižšiu prioritu a bude používať CPU, keď ho nepoužívajú iba iné procesy.

Existujú dva spôsoby, ako nastaviť peknú hodnotu procesu. Môžete buď začať proces pomocou pekný príkaz na nastavenie príjemnej hodnoty pri spustení procesu. Alebo môžete použiť renice príkaz na nastavenie príjemnej hodnoty po spustení procesu.

Ak chcete pri spustení procesu nastaviť príjemnú hodnotu, spustite proces nasledovne:

$ nice -n NICE_VALUE COMMAND_TO_RUN

POZNÁMKA: Tu NICE_VALUE môže byť čokoľvek z -20 až 19 a COMMAND_TO_RUN je akýkoľvek príkaz, ktorý chcete spustiť s peknou hodnotou NICE_VALUE.

Povedzme napríklad, že chcete spustiť program spať príkaz s peknou hodnotou 14. Spustite príkaz nasledovne:

$ pekné -n 14 spať 40000 &

Teraz môžete pomocou horného príkazu overiť, či je pekná hodnota nastavená správne. Zoznam všetkých procesov, ktoré ste začali (ako používateľ prihlásenia), môžete uviesť pomocou nasledujúceho príkazu:

$ ps -fl

Ako vidíte, príjemná hodnota procesu je nastavená na 14.

Ak teraz chcete zmeniť príjemnú hodnotu vašich existujúcich procesov, potrebujete iba ID procesu (PID) procesu, ktorého príjemnú hodnotu chcete zmeniť. Môžete použiť ps aux príkaz alebo hore príkaz na vyhľadanie ID procesu alebo PID.

Potom môžete bežať renice nasledujúcim príkazom zmeníte peknú hodnotu existujúceho procesu:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Ako vidíte, príjemná hodnota procesu s PID 6422 sa zmenila.

Obmedzenie využitia procesora pomocou CGROUPS:

Plná forma KROUŽKY je Control Groups. Jedná sa o funkcie jadra Linuxu, ktoré sa používajú na obmedzenie zdrojov na spracovanie skupín, ako napríklad (CPU, pamäť, povolenia a mnoho ďalších) v systéme Linux.

Musíte len vytvoriť novú skupinu procesov a do tejto skupiny pridať svoje procesy, na ktoré chcete obmedziť zdroje. Jednoduché!

Nástroje na správu CGROUPS nie sú v systéme CentOS 7 predvolene nainštalované. Je ale k dispozícii v oficiálnom úložisku balíkov CentOS 7.

Najskôr aktualizujte medzipamäť úložiska balíkov YUM pomocou nasledujúceho príkazu:

$ sudo yum makecache

Teraz nainštalujte nástroje na správu CGROUPS pomocou nasledujúceho príkazu:

$ sudo yum nainštalujte libcgroup-tools

Teraz stlačte r a potom stlačte .

Mal by byť nainštalovaný.

Môžete obmedziť využitie procesora jednej skupiny. Napríklad môžete pomocou CGROUPS povedať procesu v rámci CGROUP, aby použil povedzme 100ms z každých 1000ms (alebo .1 s z každej 1 s) času CPU.

Najskôr vytvorte CGROUP pomocou nasledujúceho príkazu:

$ sudo cgcreate -g cpu: / cpulimit

POZNÁMKA: Tu, cpulimit je názov skupiny, ktorá ovláda CPU použitie.

Teraz musíte nastaviť CPU.cfs_period_us a CPU.cfs_quota_us majetok na cpulimit skupina.

V tomto príklade by mala byť nastavená hodnota 1000ms (milisekundy) alebo 10 00000us (mikrosekundy) CPU.cfs_period_us a 100ms alebo 100000us by mali byť nastavené na CPU.cfs_quota_us nehnuteľnosť.

Spustením nasledujúcich príkazov nastavte tieto vlastnosti na cpulimit skupina:

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

Teraz môžete spustiť nasledujúci príkaz a skontrolovať, či sú všetky vlastnosti správne nastavené:

$ sudo cgget -g cpu: cpulimit

POZNÁMKA: Tu, cpulimit je názov SKUPINY a CPU je zdroj, ktorý obmedzujem.

Ako môžeš vidieť, CPU.cfs_period_us a CPU.cfs_quota_us sú správne nastavené.

Teraz akýkoľvek proces, do ktorého pridáte cpulimit CGROUP použije 1/10th (100000/1000000 = 1/10 = 0.1 = 10%) z celkových cyklov CPU.

Teraz, aby ste obmedzili CPU procesu, spustite program alebo príkaz pomocou cgexec nasledovne:

$ sudo cgexec -g cpu: cpulimit VAŠE_COMMAND

POZNÁMKA: Tu, YOUR_COMMAND môžu byť akékoľvek platné príkazy systému Linux.

Aby som dokázal, že to skutočne funguje, najskôr spustím nasledujúci príkaz bez CGROUPS a potom s CGROUPS a ukážem vám výsledky.

$ dd if = / dev / zero of = out bs = 1M

Ako vidíte, bez CGROUPS používa príkaz 90% z celkového CPU.

Potom som spustil rovnaký príkaz s CGROUPS nasledovne:

$ sudo cgexec -g cpu: cpulimit dd if = / dev / zero of = out bs = 1M

Ako vidíte, využitie procesora je maximálne 10%. Tento proces nepoužíva viac ako to.

Takto teda používate CGROUPS na obmedzenie využitia procesora v systéme Linux. Ďakujeme, že ste si prečítali tento článok.

Referencie:

[1] https: // prístup.červený klobúk.com / documentation / en-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.zomrieť.sieť / muž / 1 / pekná

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

Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...
Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...