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_RUNJEGYZET: 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: / cpulimitJEGYZET: 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: cpulimitJEGYZET: 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_COMMANDJEGYZET: 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