Indiferent cât de rapidă este mașina dvs. Linux, vor exista întotdeauna unele sarcini care consumă mult timp în procesor. Totul, de la codificarea video până la rularea modelelor matematice, poate face ca CPU să ruleze la 100%. Este bine dacă aparatul nu face altceva. Dar dacă este desktopul principal sau este utilizat ca server, atunci executarea unei sarcini care maximizează CPU-ul dvs. va face mașina lentă și dificil de utilizat. Frumusețea unui sistem de operare multitasking este că aparatul nu va îngheța, deoarece va programa întotdeauna timpul procesorului pentru alte sarcini și lucruri precum desktopul vor funcționa în continuare, dar mult mai lent. Planificatorul nu are cum să știe că doriți ca sarcina intensivă a procesorului să ruleze cu o prioritate mai mică sau să-și limiteze timpul de procesare. Cu toate acestea, există unele instrumente care pot fi utilizate pentru a controla utilizarea procesorului procesului pentru aceste sarcini înfometate de resurse.
Pentru a emula o sarcină intensivă în procesor, putem folosi un instrument numit
matho-prime
care generează o listă de numere prime. Dacă îi cereți să genereze o listă suficient de mare, acesta va maximiza CPU în timp ce funcționează. A instala matho-prime
pe Ubuntu sau pe o utilizare Raspberry Pi:
sudoapt-get install matomatic-primii
Să începem sarcina și să vedem utilizarea procesorului:
matho-primii 09999999999> p.txt &
Acest lucru spune matho-primii
pentru a genera o listă de numere prime de la zero la nouă miliarde nouă sute nouăzeci și nouă milioane nouă sute nouăzeci și nouă mii nouă sute nouăzeci și nouă! Ieșirea este redirecționată către fișier p.txt
. Ampersand-ul de la sfârșit îi spune shell-ului să ruleze programul în fundal, ceea ce înseamnă că sunteți returnat la promptul de comandă imediat după începerea sarcinii.
Acum rulați top
comandați și observați cantitatea de CPU utilizată de generatorul de numere prime.
Acum, să ucidem această sarcină și să vedem cum o putem lansa cu o prioritate mai mică. Ieșire top
prin apăsarea q
, apoi tastați fg
a aduce matho-primii
în prim-plan și apoi apăsați „Ctrl + C” pentru a forța programul să iasă.
Acum porniți din nou programul, dar la începutul comenzii adăugați cuvântul Grozav
:
Grozav matho-primii 09999999999> p.txt &
Grozav
este un instrument care îi spune Linux să programeze această sarcină cu o prioritate mai mică. Simpatia variază de la -20 (programarea cea mai favorabilă) la 19 (cea mai puțin favorabilă). În mod implicit Grozav
va programa sarcina cu o frumusețe de 10. În mod implicit, sarcinile normale sunt pornite cu o similitudine zero. Aceasta înseamnă că o sarcină cu o frumusețe de 10 va fi văzută ca având o prioritate mai mică și va primi resurse CPU mai rar.
Acum putem începe un al doilea generator de numere prime pentru a imita alte sarcini pe care doriți să le efectuați pe computer (cum ar fi navigarea pe web sau scrierea unui document). Aceasta va avea o frumusețe normală, deoarece utilizarea desktopului ar trebui să fie o prioritate mai mare decât rularea generatorului de numere prime.
matho-primii 09999999999> p2.txt &
Rețineți că ieșirea din acest fișier este redirecționată către p2.txt
. Ieșirea din top
va arăta cam așa:
După cum puteți vedea, procesul cu o simpatie mai mare primește mai puțin timp de procesor. Acest lucru înseamnă că, dacă lansați o sarcină intensivă cu CPU Grozav
, nu va face mașina să se simtă lentă sau să provoace un răspuns lent.
cpulimit
Există o altă comandă numită „cpulimit” care, mai degrabă decât schimbarea priorității de programare, întrerupe temporar un proces pentru a se asigura că nu depășește utilizarea dorită a procesorului.
Pentru a-l instala, tastați:
sudoapt-get install cpulimit
Acum executați din nou generatorul intensiv de numere prime CPU și notați numărul PID al acestuia folosind această comandă:
ps|grep matho-prime
Prima coloană a ieșirii este PID. Acum limitați utilizarea procesorului în acest proces astfel:
sudo cpulimit -b-l50-p16299
În cazul în care 16299 este PID al matho-primii
proces. O privire cu top
va arăta așa ceva:
Mergând mai departe
Există o comandă însoțitoare pentru Grozav
numit renice
ceea ce va schimba frumusețea unui proces existent. Încercarea de utilizare top
sau ps
cu grep
pentru a obține PID-ul unui proces și utilizare renice +19 16299
pentru a seta prioritatea la cea mai mică valoare posibilă (unde 16299 este PID-ul procesului).
Simțiți-vă liber să adăugați în discuția din comentariul de mai jos.
Divulgarea afiliatului: Make Tech Easier poate câștiga comision pentru produsele achiziționate prin linkurile noastre, ceea ce susține munca pe care o facem pentru cititorii noștri.