Vyhledávání na webu

Omezte využití CPU procesu v Linuxu pomocí nástroje CPULimit


V dřívějším příspěvku jsme vysvětlili CPUTool pro omezení a řízení využití CPU jakéhokoli procesu v Linuxu. Umožňuje správci systému přerušit provádění procesu (nebo skupiny procesů), pokud zatížení CPU/systému překročí definovanou prahovou hodnotu. Zde se naučíme, jak používat podobný nástroj s názvem cpulimit.

Cpulimit se používá k omezení využití procesoru procesem stejným způsobem jako CPUTool, ale nabízí více možností využití než jeho protějšek. Jedním z důležitých rozdílů je, že cpulimit na rozdíl od cputool nespravuje zatížení systému.

Doporučená četba: 9 užitečných příkazů pro získání informací o CPU v systému Linux

Nainstalujte CPULimit, abyste omezili využití CPU procesu v Linuxu

CPULimit je k dispozici pro instalaci z výchozích softwarových úložišť Debian/Ubuntu a jeho derivátů pomocí nástroje pro správu balíčků.

sudo apt install cpulimit

V RHEL/CentOS a Fedoře musíte nejprve povolit úložiště EPEL a poté nainstalovat cpulimit podle obrázku.

# yum install epel-release
# yum install cpulimit

Omezení využití procesoru pomocí CUPLimit

V této podsekci vysvětlíme, jak cpulimit funguje. Nejprve spusťte příkaz (stejný příkaz dd, na který jsme se dívali, když jsme pokrývali cputool), který by měl mít za následek vysoké procento CPU na pozadí (všimněte si, že PID procesu se vytiskne po spuštění příkazu) .

dd if=/dev/zero of=/dev/null &

[1] 17918

Dále můžeme použít nástroje top nebo pohledy, které vydávají aktuální často aktualizovaný stav běžícího systému Linux, abychom mohli sledovat využití procesoru výše uvedeného příkazu.

top

Při pohledu na výše uvedený výstup vidíme, že proces dd využívá nejvyšší procento CPU času 100,0 %.

Ale můžeme to omezit pomocí cputlimit následovně. Možnost --pid nebo -p se používá k určení PID a --limit nebo -l je slouží k nastavení procenta využití pro proces.

Níže uvedený příkaz omezí příkaz dd (PID 17918) na 50 % využití jednoho jádra CPU.

sudo cpulimit --pid 17918 --limit 50  

Process 17918 detected

Jakmile spustíme cpulimit, můžeme zobrazit aktuální využití CPU pro příkaz dd pomocí horní části nebo pohledů. Z výstupu se hodnota pohybuje od (51,5 %–55,0 % nebo mírně dále).

Můžeme snížit jeho využití CPU podruhé následovně, tentokrát dále snížit procento následovně:

sudo cpulimit --pid 17918 --limit 20 

Process 17918 detected

Stejně jako dříve můžeme spustit top nebo pohledy a zobrazit nové využití procesoru pro proces, které se bude pohybovat v rozmezí 20 % až 25,0 % nebo o něco více.

top

Poznámka: Shell se stane neinteraktivní – neočekává žádný uživatelský vstup, když je spuštěn cpulimit. Chcete-li jej ukončit (což by mělo zastavit operaci omezení využití procesoru), stiskněte [Ctrl + C].

Chcete-li spustit cpulimit jako proces na pozadí, použijte přepínač --background nebo -b, čímž uvolníte terminál.

sudo cpulimit --pid 17918 --limit 20 --background

Chcete-li zadat počet jader CPU přítomných v systému, použijte příznak --cpu nebo -c (toto je obvykle detekováno automaticky).

sudo cpulimit --pid 17918 --limit 20 --cpu 4

Místo abychom omezovali využití procesoru procesu, můžeme jej zabít pomocí volby --kill nebo -k. Výchozí signál odeslaný do procesu je SIGCONT, ale pro odeslání jiného signálu použijte příznak --signal nebo -s.

sudo cpulimit --pid 17918 --limit 20 --kill 

Pro ukončení, pokud neexistuje vhodný cílový proces, nebo v případě, že zanikne, zahrňte -z nebo --lazy, jako je tento.

sudo cpulimit --pid 17918 --limit 20 --kill --lazy

Další informace a možnosti použití naleznete na manuálové stránce cpulimit.

man cpulimit

Podívejte se na následující užitečné průvodce pro vyhledání informací o CPU a sledování výkonu CPU/systému.

  1. Najděte nejběžnější procesy podle nejvyššího využití paměti a CPU v Linuxu
  2. Cpustat – Monitoruje využití CPU spuštěnými procesy v Linuxu
  3. CoreFreq – výkonný nástroj pro monitorování CPU pro systémy Linux
  4. Najděte nejběžnější procesy podle nejvyššího využití paměti a CPU v Linuxu
  5. 20 nástrojů příkazového řádku pro sledování výkonu Linuxu
  6. 13 Nástroje pro sledování výkonu systému Linux – část 2

Pro srovnání, po testování CPUTool a CPULimit jsme si všimli, že první z nich nabízí efektivnější a spolehlivější funkci „omezení využití procesoru procesem“.

To je podle procentuálního rozsahu využití CPU pozorovaného po spuštění obou nástrojů proti danému procesu. Vyzkoušejte oba nástroje a přidejte své myšlenky do tohoto článku pomocí formuláře pro zpětnou vazbu níže.