Procesors

Kā ierobežot procesora lietošanu Linux operētājsistēmā

Kā ierobežot procesora lietošanu Linux operētājsistēmā
Jūsu Linux dzīves laikā jums ir jāredz, ka daži procesi aizņem visus CPU ciklus (90–99% CPU izmantošana), padarot jūsu datoru gandrīz nereaģējošu, līdz tas ir pabeigts. Tas var būt labi, ja procesa pabeigšana prasa dažas sekundes. Bet ko tad, ja tas prasa daudz laika? Tas nav pārāk jauki sēdēt un minūtes un stundas skatīties uz nereaģējošu datoru? Nu, Linux ir daudz lielisku rīku, lai tos izveidotu nav ļoti jauki procesi uz jauki procesi.

Jūs varat iestatīt, cik CPU ir atļauts būt vienam procesam. Ja procesam patiešām ir vajadzīga liela procesora jauda, ​​varat palaist dažas komandas, lai tam piešķirtu visus tukšgaitas procesora ciklus (CPU ciklus, kas jums nav vajadzīgi). Tādā veidā jums nekad nevajadzēs ilgi sēdēt un blenzt uz nereaģējošu datoru.

Šajā rakstā es jums parādīšu, kā ierobežot procesora izmantošanu procesorā Linux. Šajā rakstā es izmantoju CentOS 7. Bet jebkuram modernam Linux izplatījumam vajadzētu darboties. Tātad, sāksim darbu.

Procesora izmantošanas ierobežošana, jauki un atjaunoti:

Operētājsistēmā Linux katra maināmā procesa prioritātes var mainīt. Jūs varat noteikt augstākas prioritātes procesam, kas jums ir svarīgāks nekā process, kas bez iemesla piesaista jūsu procesoru.

Katram Linux procesam ir jauka vērtība. Jaukā vērtība nosaka, kuram procesam ir augstākas prioritātes un kuram zemākas. Jauka vērtība var būt no -20 līdz 19. Procesam ar jauku vērtību -20 būs visaugstākā prioritāte un tas izmantos visvairāk CPU ciklu. Procesam ar jauku vērtību 19 būs viszemākā prioritāte, un tas izmantos CPU, ja neviens cits process to neizmanto.

Ir divi veidi, kā iestatīt procesa jauko vērtību. Jūs varat vai nu sākt procesu ar jauki komandu, lai iestatītu jauku vērtību, uzsākot procesu. Vai arī jūs varat izmantot renice komandu, lai iestatītu jauku vērtību pēc procesa sākšanas.

Lai iestatītu jauku vērtību, uzsākot procesu, palaidiet procesu šādi:

$ jauki-n NICE_VALUE COMMAND_TO_RUN

PIEZĪME: Šeit NICE_VALUE var būt jebkas no -20 līdz 19 un COMMAND_TO_RUN ir jebkura komanda, kuru vēlaties izpildīt ar jauku vērtību NICE_VALUE.

Piemēram, pieņemsim, ka vēlaties palaist Gulēt komandu ar jauku vērtību 14. Palaidiet komandu šādi:

$ jauki -n 14 gulēt 40000 &

Tagad jūs varat pārbaudīt, vai jaukā vērtība ir iestatīta pareizi, izmantojot komandu top. Visus sāktos procesus (kā pieteikšanās lietotāju) varat uzskaitīt ar šādu komandu:

$ ps -fl

Kā redzat, procesa jaukā vērtība ir iestatīta uz 14.

Tagad, ja vēlaties mainīt esošo procesu jauko vērtību, viss, kas jums nepieciešams, ir tā procesa ID (PID), kuram vēlaties mainīt jauko vērtību. Jūs varat izmantot ps aux komandu vai tops komandu, lai atrastu procesa ID vai PID.

Tad jūs varat palaist renice komandu, lai mainītu esošā procesa jauko vērtību:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Kā redzat, tiek mainīta procesa jaukā vērtība ar PID 6422.

CPU izmantošanas ierobežošana ar CGROUPS:

Pilna GRUPAS ir Control Ggrupas. Tas ir Linux kodola funkcijas, ko izmanto, lai ierobežotu resursus, lai Linux apstrādātu tādas grupas kā (CPU, atmiņa, atļaujas un daudz ko citu).

Viss, kas jums jādara, ir izveidot jaunu procesu grupu un pievienot šai grupai savus procesus, kuru resursus vēlaties ierobežot. Vienkārši!

CentGOS 7 pēc noklusējuma nav instalēti CGROUPS pārvaldības rīki. Bet tas ir pieejams CentOS 7 oficiālajā pakotņu krātuvē.

Vispirms atjauniniet YUM pakotnes krātuves kešatmiņu ar šādu komandu:

$ sudo yum makecache

Tagad instalējiet CGROUPS pārvaldības rīkus ar šādu komandu:

$ sudo yum instalējiet libcgroup-tools

Tagad nospiediet y un pēc tam nospiediet .

Tas būtu jāuzstāda.

Jūs varat ierobežot vienas grupas CPU izmantošanu. Piemēram, jūs varat izmantot CGROUPS, lai norādītu procesam CGROUP izmantot, teiksim, 100ms no katriem 1000ms (vai .1 no katriem 1) no CPU laika.

Vispirms izveidojiet CGROUP ar šādu komandu:

$ sudo cgcreate -g cpu: / cpulimit

PIEZĪME: Šeit, cpulimit ir grupas nosaukums, kas kontrolē Procesors izmantošana.

Tagad jums ir jāiestata Procesors.cfs_period_us un Procesors.cfs_quota_us īpašums cpulimit grupa.

Šajā piemērā ir jāiestata vērtība 1000 ms (milisekundes) vai 1000000us (mikrosekundes) Procesors.cfs_period_us rekvizīts un 100ms vai 100000us ir jāiestata uz Procesors.cfs_quota_us īpašums.

Palaidiet šīs komandas, lai iestatītu šīm īpašībām cpulimit grupa:

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

Tagad varat palaist šo komandu, lai pārbaudītu, vai visi rekvizīti ir pareizi iestatīti:

$ sudo cgget -g cpu: cpulimit

PIEZĪME: Šeit, cpulimit ir CGROUP nosaukums un Procesors ir resurss, kuru es ierobežoju.

Kā jūs redzat, Procesors.cfs_period_us un Procesors.cfs_quota_us ir pareizi iestatīti.

Tagad jebkuram procesam, kuru pievienojat cpulimit CGROUP izmantos 1/10th (100000/1000000 = 1/10 = 0.1 = 10%) no visiem CPU cikliem.

Tagad, lai ierobežotu procesa CPU, sāciet programmu vai komandu ar cgexec sekojoši:

$ sudo cgexec -g cpu: cpulimit YOUR_COMMAND

PIEZĪME: Šeit, JŪSU_PASŪTĪJUMS var būt jebkuras derīgas Linux komandas.

Lai pierādītu, ka tas patiešām darbojas, vispirms es izpildīšu šādu komandu bez CGROUPS un pēc tam ar CGROUPS un parādīšu jums rezultātus.

$ dd, ja = / dev / nulle no = out bs = 1M

Kā redzat, bez CGROUPS komanda izmanto 90% no visa CPU.

Tad es palaidu to pašu komandu ar CGROUPS šādi:

$ sudo cgexec -g cpu: cpulimit dd, ja = / dev / nulle no = out bs = 1M

Kā redzat, CPU izmantošana ir maksimāli 10%. Šajā procesā netiek izmantots vairāk.

Tātad, kā jūs izmantojat CGROUPS, lai ierobežotu procesora izmantošanu procesorā Linux. Paldies, ka izlasījāt šo rakstu.

Atsauces:

[1] https: // piekļuve.sarkana cepure.com / dokumentācija / lv-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.nomirt.net / man / 1 / jauks

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

Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...
Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...