Procesorius

Kaip apriboti procesoriaus naudojimą Linux sistemoje

Kaip apriboti procesoriaus naudojimą Linux sistemoje
Per visą savo „Linux“ gyvenimą turėjote matyti, kad kai kurie procesai užima visus procesoriaus ciklus (90–99% procesoriaus naudojimas), todėl jūsų kompiuteris beveik nereaguoja, kol jis baigsis. Tai gali būti gerai, jei procesas užtruks kelias sekundes. Bet ką daryti, jei tai užtruks ilgai? Tai nėra labai malonu sėdėti ir minutes ir valandas žiūrėti į nereaguojantį kompiuterį? Na, „Linux“ turi daugybę puikių įrankių šiems sukurti nėra labai malonu procesus į malonu procesus.

Galite nustatyti, kiek procesoriaus leidžiama turėti vienam procesui. Jei procesui iš tikrųjų reikia daug procesoriaus energijos, galite paleisti keletą komandų, kad suteiktų jam visus tuščiosios eigos procesoriaus ciklus (jums nereikalingus procesoriaus ciklus). Tokiu būdu niekada nereikės ilgai sėdėti ir žiūrėti į nereaguojantį kompiuterį.

Šiame straipsnyje aš jums parodysiu, kaip apriboti procesoriaus naudojimą procesoriuje „Linux“. Šiame straipsnyje naudosiu „CentOS 7“. Bet bet koks šiuolaikinis „Linux“ platinimas turėtų veikti. Taigi, pradėkime.

Procesoriaus naudojimo apribojimas su „nice and renice“:

„Linux“ sistemoje galima pakeisti kiekvieno vykdomo proceso prioritetus. Procesui galite nustatyti aukštesnius prioritetus, kurie yra svarbesni už procesą, kuris be priežasties užstoja jūsų procesorių.

Kiekvienas „Linux“ procesas turi gerą vertę. „Nice“ vertė lemia, kuris procesas turi aukštesnius prioritetus, o kuris - mažesnius. Graži vertė gali būti nuo -20 iki 19. Procesas, kurio vertė yra -20, turės aukščiausią prioritetą ir naudos daugiausiai procesoriaus ciklų. Procesas, kurio vertė yra 19, turės mažiausią prioritetą ir naudos procesorių, kai jokie kiti procesai jo nenaudos.

Yra du būdai nustatyti malonią proceso vertę. Galite pradėti procesą naudodami malonu komanda nustatyti gražią vertę paleidžiant procesą. Arba galite naudoti renice komanda, norėdama nustatyti gražią vertę po proceso pradžios.

Norėdami nustatyti gerą vertę, kai paleidžiate procesą, vykdykite procesą taip:

$ nice -n NICE_VALUE COMMAND_TO_RUN

PASTABA: Čia NICE_VALUE gali būti bet kas -20–19 ir COMMAND_TO_RUN yra bet kuri komanda, kurią norite paleisti su gražia verte NICE_VALUE.

Pavyzdžiui, tarkime, norite paleisti miegoti komanda su gražia verte 14. Vykdykite komandą taip:

$ nice -n 14 miego 40000 &

Dabar naudodamiesi viršutine komanda galite patikrinti, ar graži vertė nustatyta teisingai. Visus pradėtus procesus (kaip prisijungimo vartotoją) galite išvardyti šia komanda:

$ ps -fl

Kaip matote, graži proceso vertė yra 14.

Dabar, jei norite pakeisti esamų procesų vertę, jums tereikia to proceso ID (PID), kurio procesą norite pakeisti. Galite naudoti ps aux komandą arba viršuje komandą surasti proceso ID arba PID.

Tada galite bėgti renice komanda pakeis esamą proceso vertę:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Kaip matote, pakeista graži proceso su PID 6422 vertė.

Procesoriaus naudojimo su CGROUPS apribojimas:

Visa forma GRUPĖS yra Control Ggrupės. Tai yra „Linux“ branduolio ypatybės, naudojamos apriboti išteklius apdorojant tokias grupes kaip (procesorius, atmintis, leidimai ir dar daugiau) sistemoje „Linux“.

Viskas, ką jums reikia padaryti, tai sukurti naują procesų grupę ir prie tos grupės pridėti savo procesus, kuriems norite apriboti išteklius. Paprasta!

„CentOS 7“ pagal numatytuosius nustatymus nėra įdiegti „CGROUPS“ valdymo įrankiai. Bet tai galima rasti oficialioje „CentOS 7“ paketų saugykloje.

Pirmiausia atnaujinkite „YUM“ paketo saugyklos talpyklą naudodami šią komandą:

$ sudo yum makecache

Dabar įdiekite CGROUPS valdymo įrankius naudodami šią komandą:

$ sudo yum įdiekite libcgroup-tools

Dabar paspauskite y tada paspauskite .

Jis turėtų būti įdiegtas.

Galite apriboti vienos grupės procesoriaus naudojimą. Pvz., Galite naudoti CGROUPS, kad nurodytumėte procesą CGROUP, kad, tarkime, 100 ms iš kiekvienos 1000 ms (arba .1 iš 1 sekundės) procesoriaus laiko.

Pirmiausia sukurkite CGROUP naudodami šią komandą:

$ sudo cgcreate -g cpu: / cpulimit

PASTABA: Čia, cpulimit yra grupės pavadinimas, valdantis procesorius naudojimas.

Dabar jūs turite nustatyti procesorius.cfs_period_us ir procesorius.cfs_quota_us nuosavybė cpulimit grupė.

Šiame pavyzdyje turėtų būti nustatyta 1000 ms (milisekundės) arba 1000000 us (mikrosekundės) procesorius.cfs_period_us 100ms arba 100000us turėtų būti nustatytas į procesorius.cfs_quota_us nuosavybė.

Paleiskite šias komandas, kad nustatytumėte šias ypatybes cpulimit grupė:

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

Dabar galite paleisti šią komandą, kad patikrintumėte, ar visos ypatybės yra tinkamai nustatytos:

$ sudo cgget -g cpu: cpulimit

PASTABA: Čia, cpulimit yra CGROUP pavadinimas ir procesorius yra šaltinis, kurį riboju.

Kaip matai, procesorius.cfs_period_us ir procesorius.cfs_quota_us yra teisingai nustatyti.

Dabar bet kokį procesą pridėsite cpulimit CGROUP naudos 1/10tūkst (100000/1000000 = 1/10 = 0.1 = 10%) visų procesoriaus ciklų.

Dabar norėdami apriboti procesoriaus procesorių, paleiskite programą arba komandą naudodami cgexec taip:

$ sudo cgexec -g cpu: cpulimit YOUR_COMMAND

PASTABA: Čia, JŪSŲ_KOMANDAS gali būti bet kurios galiojančios „Linux“ komandos.

Norėdami įrodyti, kad tai tikrai veikia, pirmiausia paleisiu šią komandą be CGROUPS, tada naudosiu CGROUPS ir parodysiu jums rezultatus.

$ dd, jei = / dev / nulis = iš bs = 1M

Kaip matote, be CGROUPS komanda naudoja 90% viso procesoriaus.

Tada paleidau tą pačią komandą su CGROUPS taip:

$ sudo cgexec -g cpu: cpulimit dd, jei = / dev / nulis = iš bs = 1M

Kaip matote, procesoriaus naudojimas yra ne daugiau kaip 10%. Procesas nenaudoja daugiau.

Taigi, kaip jūs naudojate CGROUPS, norėdami apriboti procesoriaus naudojimą sistemoje „Linux“. Dėkojame, kad perskaitėte šį straipsnį.

Nuorodos:

[1] https: // prieiga.raudona KEPURĖ.com / dokumentacija / lt-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // Linux.mirti.tinklas / vyras / 1 / gražus

[3] https: // Linux.mirti.net / man / 8 / renice

„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...