Без значение колко бързо е вашата машина на Linux, винаги ще има някои задачи, които консумират много време на процесора. Всичко от видео кодиране до математически модели може да доведе до процесорът да работи на 100%. Това е добре, ако машината не прави нищо друго. Но ако това е вашият основен работен плот или той се използва като сървър, тогава изпълняването на задача, която максимално ви помага да направите машината бавна и трудна за използване. Красотата на мултитаскинг операционна система е, че машината няма да замръзне, тъй като винаги ще планира CPU време за други задачи и неща като работния плот ще продължат да работят, но много по-бавно. Програмата няма начин да знае, че искате интензивната задача на процесора да работи с по-нисък приоритет или да ограничи времето на CPU. Има обаче някои инструменти, които могат да бъдат използвани за контролиране на използването на CPU на процесите за тези гладни задачи.

За да подражаваме на интензивна задача на CPU, можем да използваме инструмент, наречен matho-prime който генерира списък с първокачествени числа. Ако поискате от него да генерира достатъчно голям списък, то ще работи максимално на процесора. За да инсталирате matho-prime на Ubuntu или на Raspberry Pi използвайте:

 sudo apt-get инсталирате математически примеси 

Нека просто да започнем задачата и да видим използването на процесора:

 matho-primes 0 9999999999> p.txt & 

Това казва на matho-primes да генерират списък на примеси от нула до девет милиарда деветстотин деветдесет и девет милиона деветстотин деветдесет и девет хиляди деветстотин деветдесет и девет! Изходът се пренасочва към файла p.txt . Амперсандът в края казва на черупката да стартира програмата във фонов режим, което означава, че се връщате в командния ред веднага след стартирането на задачата.

Сега изпълнете top команда и забележете количеството CPU, което се използва от генератора на първични номера.

Сега нека да убием тази задача и да видим как можем да я стартираме с по-нисък приоритет. Излезте top като натиснете q, след това въведете fg да донесете matho-primes на преден план и след това натиснете "Ctrl + C", за да накарате програмата да излезе.

Сега стартирайте отново програмата, но в началото на командата добавете думата nice :

 nice matho-primes 0 9999999999> p.txt & 

nice е инструмент, който казва на Linux да насрочи тази задача с по-нисък приоритет. Нищото варира от -20 (най-благоприятния график) до 19 (най-неблагоприятно). По подразбиране, nice ще насрочи задачата с чистота 10. По подразбиране нормалните задачи се стартират с нула нула. Това означава, че една задача с чистота от 10 ще се разглежда като с по-нисък приоритет и ще получава по-рядко ресурсите на процесора.

Вече можем да стартираме втория от тези генератори на премиум номера, за да подражаваме на други задачи, които искате да правите на вашата машина (като уеб браузване или писане на документ). Това ще има нормална прилика, тъй като използването на работния плот трябва да бъде по-голям приоритет от управлението на генератора на първични номера.

 matho-primes 0 9999999999> p2.txt & 

Обърнете внимание, че изходът от този файл се пренасочва към p2.txt . Изходът top ще изглежда по следния начин:

Както можете да видите, процесът с по-голяма прилика получава по-малко време на процесора. Това означава, че ако стартирате интензивна задача на CPU с nice, тя няма да направи вашата машина да се чувства бавна или да я накара да реагира бавно.

cpulimit

Има друга команда, наречена "cpulimit", която, вместо да променя приоритета на планирането, временно спира процес, за да се увери, че не надвишава желаното използване на процесора.

За да го инсталирате, въведете:

 sudo apt-get инсталирате cpulimit 

Сега отново стартирайте генератора за интензивно генериране на CPU и отбележете номера му PID, като използвате тази команда:

 ps | grep matho-prime 

Първата колона на изхода е PID. Сега ограничавайте използването на процесора на този процес така:

 sudo cpulimit -b-1 50 -р 16299 

Където 16299 е PID на процеса matho-primes . Погледът с top ще покаже нещо подобно:

По-нататък

Съществува друга команда, наречена " renice която ще промени приликата на съществуващ процес. Опитайте се да използвате top или ps с grep да получите PID на процес и използвайте renice +19 16299 да зададете приоритета на възможно най-ниското (където 16299 е PID на процеса).

Чувствайте се свободни да добавите в дискусията в коментара по-долу.