procesor

Jak omezit využití procesoru v systému Linux

Jak omezit využití procesoru v systému Linux
Během svého života v systému Linux jste určitě viděli, že některé procesy zabírají všechny cykly CPU (využití CPU 90–99%), takže váš počítač téměř nereaguje, dokud nedokončí. To může být v pořádku, pokud dokončení procesu trvá několik sekund. Ale co když to trvá dlouho? Není moc hezké sedět a dívat se na počítač, který nereaguje, minuty a hodiny, že? Linux má k jejich výrobě mnoho úžasných nástrojů ne moc pěkné procesy na pěkný procesy.

Můžete nastavit, kolik CPU může mít jeden proces. Pokud proces opravdu potřebuje hodně výkonu CPU, můžete spustit několik příkazů a dát mu všechny nečinné cykly CPU (cykly CPU, které nepotřebujete). Takto nikdy nebudete muset dlouho sedět a dívat se na svůj počítač, který nereaguje.

V tomto článku vám ukážu, jak omezit využití CPU procesu v systému Linux. V tomto článku použiji CentOS 7. Ale jakákoli moderní distribuce Linuxu by měla fungovat. Pojďme tedy začít.

Omezení využití CPU s pěkným a renice:

V systému Linux lze změnit priority každého spuštěného procesu. Procesu můžete nastavit vyšší priority, což je pro vás důležitější než proces, který bezdůvodně hoguje váš procesor.

Každý proces v systému Linux má příjemnou hodnotu. Hodnota nice určuje, který proces má vyšší priority a který nižší. Pěkná hodnota může být mezi -20 až 19. Proces s pěknou hodnotou -20 bude mít nejvyšší prioritu a bude používat nejvíce cyklů CPU. Proces s pěknou hodnotou 19 bude mít nejnižší prioritu a bude používat CPU, pokud jej nepoužívají pouze jiné procesy.

Existují dva způsoby, jak nastavit příjemnou hodnotu procesu. Proces můžete zahájit pomocí pěkný příkaz pro nastavení příjemné hodnoty při spuštění procesu. Nebo můžete použít renice příkaz pro nastavení pěkné hodnoty po spuštění procesu.

Chcete-li při spuštění procesu nastavit příjemnou hodnotu, spusťte proces následujícím způsobem:

$ nice -n NICE_VALUE COMMAND_TO_RUN

POZNÁMKA: Tady NICE_VALUE může být cokoli od -20 až 19 a COMMAND_TO_RUN je jakýkoli příkaz, který chcete spustit s pěknou hodnotou NICE_VALUE.

Řekněme například, že chcete spustit spát příkaz s pěknou hodnotou 14. Spusťte příkaz následujícím způsobem:

$ pěkný -n 14 spánek 40000 &

Nyní můžete pomocí horního příkazu ověřit, zda je hezká hodnota nastavena správně. Všechny procesy, které jste zahájili (jako přihlašovací uživatel), můžete zobrazit pomocí následujícího příkazu:

$ ps -fl

Jak vidíte, příjemná hodnota procesu je nastavena na 14.

Nyní, pokud chcete změnit příjemnou hodnotu vašich stávajících procesů, potřebujete pouze ID procesu (PID) procesu, u kterého chcete změnit příjemnou hodnotu. Můžete použít ps aux příkaz nebo horní příkaz k vyhledání ID procesu nebo PID.

Pak můžete běžet renice následujícím způsobem změníte pěknou hodnotu existujícího procesu:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Jak vidíte, pěkná hodnota procesu s PID 6422 se změní.

Omezení využití CPU s CGROUPS:

Plná forma SKUPINY je Control Groups. Jedná se o funkce linuxového jádra používané k omezení zdrojů na zpracování skupin, jako je (CPU, paměť, oprávnění a mnoho dalších) v systému Linux.

Jediné, co musíte udělat, je vytvořit novou skupinu procesů a přidat do této skupiny procesy, na které chcete omezit prostředky. Jednoduchý!

Nástroje pro správu CGROUPS nejsou ve výchozím nastavení nainstalovány na CentOS 7. Je však k dispozici v oficiálním úložišti balíků CentOS 7.

Nejprve aktualizujte mezipaměť úložiště balíčků YUM pomocí následujícího příkazu:

$ sudo yum makecache

Nyní nainstalujte nástroje pro správu CGROUPS pomocí následujícího příkazu:

$ sudo yum nainstalujte libcgroup-tools

Nyní stiskněte y a poté stiskněte .

Mělo by být nainstalováno.

Můžete omezit využití CPU jedné skupiny. Například můžete použít CGROUPS k tomu, abyste řekli procesu v CGROUP, aby použil řekněme 100 ms z každých 1000 ms (nebo .1 s z každé 1 s) času CPU.

Nejprve vytvořte CGROUP pomocí následujícího příkazu:

$ sudo cgcreate -g cpu: / cpulimit

POZNÁMKA: Tady, cpulimit je název skupiny, která ovládá procesor používání.

Nyní musíte nastavit procesor.cfs_period_us a procesor.cfs_quota_us majetek na cpulimit skupina.

V tomto příkladu by mělo být nastaveno na 1000ms (milisekundy) nebo 1000000us (mikrosekundy) procesor.cfs_period_us vlastnost a 100ms nebo 100000us by měla být nastavena na procesor.cfs_quota_us vlastnictví.

Spuštěním následujících příkazů nastavte tyto vlastnosti na cpulimit skupina:

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

Nyní můžete spustit následující příkaz a zkontrolovat, zda jsou všechny vlastnosti správně nastaveny:

$ sudo cgget -g cpu: cpulimit

POZNÁMKA: Tady, cpulimit je název SKUPINY a procesor je zdroj, který omezuji.

Jak můžete vidět, procesor.cfs_period_us a procesor.cfs_quota_us jsou správně nastaveny.

Nyní jakýkoli proces, do kterého přidáte cpulimit CGROUP použije 1/10th (100000/1000000 = 1/10 = 0.1 = 10%) z celkového počtu cyklů CPU.

Chcete-li nyní omezit CPU procesu, spusťte program nebo příkaz pomocí cgexec jak následuje:

$ sudo cgexec -g cpu: cpulimit VAŠE_COMMAND

POZNÁMKA: Tady, YOUR_COMMAND mohou být jakékoli platné příkazy Linuxu.

Abych dokázal, že to skutečně funguje, nejdřív spustím následující příkaz bez CGROUPS a poté s CGROUPS a ukážu vám výsledky.

$ dd if = / dev / zero of = out bs = 1M

Jak vidíte, bez CGROUPS používá příkaz 90% z celkového CPU.

Poté jsem spustil stejný příkaz s CGROUPS takto:

$ sudo cgexec -g cpu: cpulimit dd if = / dev / zero of = out bs = 1M

Jak vidíte, využití CPU je maximálně 10%. Tento proces nepoužívá víc než to.

Takto tedy pomocí CGROUPS omezujete využití procesoru v systému Linux. Děkujeme za přečtení tohoto článku.

Reference:

[1] https: // přístup.červená čepice.com / dokumentace / en-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.zemřít.net / man / 1 / nice

[3] https: // linux.zemřít.net / man / 8 / renice

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...