processzor

Hogyan korlátozhatjuk a processzorok használatát egy Linux rendszeren

Hogyan korlátozhatjuk a processzorok használatát egy Linux rendszeren
Linuxos életében látnia kellett, hogy egyes folyamatok lefoglalják az összes CPU-ciklust (90-99% -os CPU-felhasználás), így a számítógép szinte nem reagál, amíg be nem fejeződik. Ez rendben lehet, ha a folyamat néhány másodpercet igénybe vesz. De mi van, ha sokáig tart? Nem túl jó ülni és percekig és órákig nézegetni a nem reagáló számítógépét, ugye? Nos, a Linuxnak sok fantasztikus eszköze van ezek elkészítéséhez nem valami kedves folyamatok nak nek szép folyamatok.

Beállíthatja, hogy egy folyamatnak mekkora CPU-ja legyen. Ha a folyamatnak valóban sok CPU-energiára van szüksége, futtathat néhány parancsot, hogy megkapja az összes üresjárati CPU-ciklust (CPU-ciklusok, amelyekre nincs szüksége). Így soha nem kell sokáig ülnie és bámulnia a nem reagáló számítógépét.

Ebben a cikkben megmutatom, hogyan lehet korlátozni egy folyamat processzor-használatát Linuxon. Ebben a cikkben a CentOS 7-et fogom használni. De minden modern Linux disztribúciónak működnie kell. Tehát, kezdjük.

A CPU használatának korlátozása a nice and renice segítségével:

Linuxon az egyes futó folyamatok prioritásai megváltoztathatók. Magasabb prioritásokat állíthat be a folyamat számára, amely fontosabb az Ön számára, mint egy olyan folyamat, amely minden ok nélkül áthidalja a CPU-t.

A Linux minden folyamatának van egy szép értéke. A nice értéke meghatározza, hogy melyik folyamatnak van magasabb prioritása és melyiknek alacsonyabb. A jó érték -20 és 19 között lehet. A jó -20 értékű folyamatnak lesz a legnagyobb prioritása, és a legtöbb CPU-ciklust fogja használni. A szép 19 értékű folyamatnak lesz a legalacsonyabb prioritása, és akkor használja a CPU-t, ha más folyamatok nem csak ezt használják.

Kétféleképpen állíthatja be a folyamat szép értékét. Vagy elindíthat egy folyamatot a szép parancsot egy szép érték beállításához a folyamat indítása közben. Vagy használhatja a renice parancs egy szép érték beállításához a folyamat megkezdése után.

Ha szép értéket szeretne beállítani a folyamat indításakor, futtassa a folyamatot az alábbiak szerint:

$ szép -n NICE_VALUE COMMAND_TO_RUN

JEGYZET: Itt NICE_VALUE bármi lehet belőle -20–19 és COMMAND_TO_RUN bármely olyan parancs, amelyet szép értékkel akarsz futtatni NICE_VALUE.

Tegyük fel például, hogy a alvás parancsot a szép értékével 14. Futtassa a parancsot az alábbiak szerint:

$ szép -n 14 alvás 40000 &

Most a top paranccsal ellenőrizheti, hogy a szép érték helyesen van-e beállítva. Az összes elindított folyamatot (bejelentkezési felhasználóként) a következő paranccsal sorolhatja fel:

$ ps -fl

Mint látható, a folyamat szép értékét 14-re állítjuk.

Most, ha meg akarja változtatni a meglévő folyamatok szép értékét, akkor csak a folyamat azonosítójára (PID) van szüksége, amelynek a szép értékét meg akarja változtatni. Használhatja a ps aux parancs vagy a tetejére parancsot a folyamatazonosító vagy a PID megtalálásához.

Akkor futhatsz renice parancsot a következőképpen módosíthatja egy meglévő folyamat szép értékét:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Amint láthatja, a PID 6422 használatával a folyamat szép értéke megváltozik.

A CPU használatának korlátozása a CGROUPS használatával:

A teljes formája CSOPORTOK van Control Gcsoportok. Ez egy Linux kernel, amelyet az erőforrások korlátozására használnak olyan csoportok feldolgozására, mint például (CPU, memória, engedélyek és még sok más) Linuxon.

Csak annyit kell tennie, hogy létrehoz egy új folyamatcsoportot, és hozzáadja azokat a folyamatokat, amelyekhez korlátozni kívánja az erőforrásokat. Egyszerű!

A CGROUPS felügyeleti eszközök alapértelmezés szerint nincsenek telepítve a CentOS 7 rendszerre. De elérhető a CentOS 7 hivatalos csomagtárában.

Először frissítse a YUM csomagtárház gyorsítótárát a következő paranccsal:

$ sudo yum makecache

Most telepítse a CGROUPS felügyeleti eszközöket a következő paranccsal:

$ sudo yum telepítse a libcgroup-tools programot

Most nyomja meg y majd nyomja meg .

Telepíteni kell.

Korlátozhatja egyetlen csoport CPU-használatát. Például a CGROUPS segítségével megmondhatja egy CGROUP-on belüli folyamatnak, hogy mondjuk 100 ms-ot használjon minden 1000 ms-ból (vagy .CPU-idő minden 1-ből 1-es.

Először hozzon létre egy CGROUP-ot a következő paranccsal:

$ sudo cgcreate -g cpu: / cpulimit

JEGYZET: Itt, cpulimit a csoport neve, amely a processzor használat.

Most be kell állítania processzor.cfs_period_us és processzor.cfs_quota_us ingatlan a cpulimit csoport.

Ebben a példában 1000 ms (ezredmásodperc) vagy 1000000us (mikroszekundum) értéket kell beállítani processzor.cfs_period_us tulajdonságot és 100ms vagy 100000us értéket a processzor.cfs_quota_us ingatlan.

Futtassa a következő parancsokat ezeknek a tulajdonságoknak a cpulimit csoport:

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

Most a következő paranccsal futtathatja az összes tulajdonság helyes beállítását:

$ sudo cgget -g cpu: cpulimit

JEGYZET: Itt, cpulimit a CGROUP neve és processzor az az erőforrás, amelyet korlátozok.

Amint látod, processzor.cfs_period_us és processzor.cfs_quota_us helyesen vannak beállítva.

Most bármilyen folyamatot ad hozzá cpulimit A CGROUP 1/10-et fog használnith (100000/1000000 = 1/10 = 0.1 = 10%) az összes CPU-ciklusból.

Most egy folyamat CPU-jának korlátozásához indítsa el a programot vagy a parancsot a -val cgexec alábbiak szerint:

$ sudo cgexec -g cpu: cpulimit YOUR_COMMAND

JEGYZET: Itt, AZ ÖNÖK bármilyen érvényes Linux parancs lehet.

Annak bizonyítására, hogy valóban működik, először a következő parancsot fogom futtatni a CGROUPS nélkül, majd a CGROUPS segítségével, és megmutatom az eredményeket.

$ dd, ha = / dev / nulla = ki bs = 1M

Mint látható, a CGROUPS nélkül a parancs a teljes CPU 90% -át használja.

Ezután ugyanazt a parancsot futtattam a CGROUPS-szal az alábbiak szerint:

$ sudo cgexec -g cpu: cpulimit dd, ha = / dev / nulla = ki bs = 1M

Amint láthatja, a CPU-használat maximum 10%. A folyamat ennél többet nem használ.

Tehát a CGROUPS segítségével korlátozhatja egy folyamat processzor-használatát Linuxon. Köszönjük, hogy elolvasta ezt a cikket.

Referenciák:

[1] https: // hozzáférés.piros kalap.com / dokumentáció / hu-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.meghal.net / man / 1 / kedves

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

Kereskedelmi játékmotorok nyílt forráskódú portjai
Ingyenes, nyílt forráskódú és platformokon átívelő játékmotorok szabadidős programjai felhasználhatók a régi, valamint a meglehetősen friss játékcímek...
A legjobb parancssori játékok Linuxhoz
A parancssor nem csak a legnagyobb szövetséges a Linux használatakor, hanem a szórakozás forrása is lehet, mert sok olyan szórakoztató játék lejátszás...
A legjobb Gamepad Mapping alkalmazások Linuxhoz
Ha egy tipikus billentyűzet és egér beviteli rendszer helyett szeretnél játékokat játszani Linuxon egy játékvezérlővel, van néhány hasznos alkalmazás ...