процесор

Как да ограничим използването на процесора на процеса в Linux

Как да ограничим използването на процесора на процеса в Linux
По време на живота на Linux трябва да сте виждали някои процеси да поемат всички цикли на процесора (90-99% използване на процесора), което прави компютъра ви почти не реагира, докато завърши. Това може да е наред, ако процесът отнеме няколко секунди, за да завърши. Но какво, ако отнеме много време? Това не е много приятно да седите и да гледате вашия компютър, който не реагира, за минути и часове, нали? Е, Linux има много страхотни инструменти, за да ги направи не много добре процеси да се хубаво процеси.

Можете да зададете колко процесора е разрешено да има един процес. Ако процесът наистина се нуждае от много мощност на процесора, можете да изпълните няколко команди, за да му придадете всички неактивни процесорни цикли (CPU цикли, които не са ви необходими). По този начин никога няма да се наложи да седите и да се взирате дълго в неотзивчивия си компютър.

В тази статия ще ви покажа как да ограничите използването на процесора на процеса в Linux. Ще използвам CentOS 7 в тази статия. Но всяка модерна дистрибуция на Linux трябва да работи. И така, нека започнем.

Ограничаване на използването на процесора с nice и renice:

В Linux, приоритетите на всеки работещ процес могат да бъдат променени. Можете да зададете по-високи приоритети на процеса, който е по-важен за вас, отколкото процес, който прекъсва процесора ви без основателна причина.

Всеки процес в Linux има добра стойност. Стойността на nice определя кой процес има по-високи приоритети и кой има по-ниски. Ниската стойност може да бъде между -20 и 19. Процес с приятна стойност -20 ще има най-висок приоритет и ще използва най-много цикли на процесора. Процес с хубавата стойност 19 ще има най-нисък приоритет и ще използва процесора, когато никой друг процес не го използва само.

Има два начина да зададете приятната стойност на даден процес. Можете или да започнете процес с хубаво команда за задаване на приятна стойност при стартиране на процеса. Или можете да използвате renice команда за задаване на приятна стойност след стартиране на процес.

За да зададете приятна стойност, когато стартирате процес, стартирайте процеса, както следва:

$ nice -n NICE_VALUE COMMAND_TO_RUN

ЗАБЕЛЕЖКА: Тук NICE_VALUE може да бъде всичко от -20 до 19 и COMMAND_TO_RUN е всяка команда, която искате да изпълните с приятната стойност NICE_VALUE.

Например, да речем, че искате да стартирате сън команда с хубавата стойност на 14. Изпълнете командата, както следва:

$ nice -n 14 сън 40000 &

Сега можете да проверите дали хубавата стойност е зададена правилно, като използвате командата top. Можете да изброите всички процеси, които сте стартирали (като потребител за вход) със следната команда:

$ ps -fl

Както можете да видите, приятната стойност на процеса е настроена на 14.

Сега, ако искате да промените приятната стойност на вашите съществуващи процеси, тогава всичко, от което се нуждаете, е идентификатор на процеса (PID) на процеса, за който искате да промените хубавата стойност. Можете да използвате ps aux команда или Горна част команда за намиране на идентификатора на процеса или PID.

Тогава можете да бягате renice команда, както следва, за да промените приятната стойност на съществуващ процес:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Както можете да видите, хубавата стойност на процеса с PID 6422 се променя.

Ограничаване на използването на процесора с CGROUPS:

Пълната форма на ГРУПИ е ° Сontrol Gрупове. Това е функции на ядрото на Linux, използвани за ограничаване на ресурси за обработка на групи като (CPU, памет, разрешения и много други) на Linux.

Всичко, което трябва да направите, е да създадете нова група процеси и да добавите своите процеси, до които искате да ограничите ресурсите, към тази група. Просто!

Инструментите за управление на CGROUPS не са инсталирани на CentOS 7 по подразбиране. Но той е достъпен в официалното хранилище на пакети на CentOS 7.

Първо актуализирайте кеша на хранилището на YUM със следната команда:

$ sudo yum makecache

Сега инсталирайте инструментите за управление на CGROUPS със следната команда:

$ sudo yum инсталира libcgroup-tools

Сега натиснете у и след това натиснете .

Трябва да се инсталира.

Можете да ограничите използването на процесора на една група. Например можете да използвате CGROUPS, за да кажете на процеса в CGROUP да използва, да речем, 100ms от всеки 1000ms (или .1s на всеки 1s) от времето на процесора.

Първо създайте CGROUP със следната команда:

$ sudo cgcreate -g cpu: / cpulimit

ЗАБЕЛЕЖКА: Тук, cpulimit е името на групата, която контролира процесор използване.

Сега трябва да настроите процесор.cfs_period_us и процесор.cfs_quota_us имот върху cpulimit група.

В този пример трябва да бъде зададено 1000ms (милисекунди) или 1000000us (микросекунди) процесор.cfs_period_us и 100ms или 100000us трябва да бъдат зададени на процесор.cfs_quota_us Имот.

Изпълнете следните команди, за да зададете тези свойства на cpulimit група:

$ sudo cgset -r процесор.cfs_period_us = 1000000 cpulimit
$ sudo cgset -r процесор.cfs_quota_us = 100000 cpulimit

Сега можете да изпълните следната команда, за да проверите дали всички свойства са зададени правилно:

$ sudo cgget -g cpu: cpulimit

ЗАБЕЛЕЖКА: Тук, cpulimit е името на CGROUP и процесор е ресурсът, който ограничавам.

Както виждаш, процесор.cfs_period_us и процесор.cfs_quota_us са правилно зададени.

Сега какъвто и процес да добавите cpulimit CGROUP ще използва 1/10ти (100000/1000000 = 1/10 = 0.1 = 10%) от общия цикъл на процесора.

Сега, за да ограничите процесора на даден процес, стартирайте програмата или командата с cgexec както следва:

$ sudo cgexec -g процесор: cpulimit ВАШАТА_КОМАНДА

ЗАБЕЛЕЖКА: Тук, ВАШАТА_КОМАНДА могат да бъдат всякакви валидни команди на Linux.

За да докажа, че всъщност работи, първо ще изпълня следната команда без CGROUPS и след това с CGROUPS и ще ви покажа резултатите.

$ dd, ако = / dev / нула от = out bs = 1M

Както можете да видите, без CGROUPS, командата използва 90% от общия процесор.

След това изпълних същата команда с CGROUPS, както следва:

$ sudo cgexec -g cpu: cpulimit dd, ако = / dev / нула от = out bs = 1M

Както можете да видите, използването на процесора е максимум 10%. Процесът не използва повече от това.

Така че по този начин използвате CGROUPS, за да ограничите използването на процесора от процеса в Linux. Благодаря, че прочетохте тази статия.

Препратки:

[1] https: // достъп.червена шапка.com / documentation / en-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.умре.net / man / 1 / nice

[3] https: // linux.умре.net / man / 8 / renice

Бутонът на левия бутон на мишката не работи в Windows 10
Ако използвате специална мишка с вашия лаптоп или настолен компютър, но бутонът на левия бутон на мишката не работи на Windows 10/8/7 по някаква причи...
Курсорът скача или се движи произволно, докато пишете в Windows 10
Ако установите, че курсорът на вашата мишка скача или се движи самостоятелно, автоматично, произволно, докато пишете в лаптоп или компютър на Windows,...
Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...