Twitter RSS

Daca aveti nevoie de un proces care in mod normal necesita multa putere de calcul, in mod deosebit in cazul serverelor puse in productie, probabil ar fi bine sa va ganditi la o solutie care sa interzica procesului lansat sa monopolizeze ciclurile procesorului. Pe sistemele Linux, si in general pe sistemele din familia UNIX sau derivate, exista doua comenzi care ne permit sa setam o prioritate pe un proces din punct de vedere al cererilor de acces la procesor. Cele doua comenzi sunt “nice” si “renice“.

Cu “nice” putem lansa o comanda cu o anumita prioritate. De exemplu, luam urmatoarea comanda:

[root@localhost ~]# nice -n 19 /scripturi/backup

In exemplul de mai sus, sistemul va lansa in executie comanda “/scripturi/backup” cu prioritate 19.

Similar, daca avem un proces care a fost deja lansat in executie, ii putem schimba prioritatea folosind comanda “renice“. Pentru a folosi “renice” avem nevoie de PID-ul procesului care il putem gasi folosind comanda “ps“.

[root@localhost ~]# ps x | awk '/rsync/{print $1}'
12496
[root@localhost ~]#

In exemplul de mai sus am cautat PID-ul procesului creat de comanda rsync folosind comenzile “ps x” si “awk“. Pentru a-i schimba prioritatea, vom folosi comanda renice specificand si PID-ul procesului in cauza:

[root@localhost ~]# renice 19 -p 12496
12496: old priority 0, new priority 19
[root@localhost ~]#

Ca regula generala un proces este pornit cu prioritate 0, care inseamna prioritate medie. Prioritatile pot lua valori intre -20 si 19, unde -20 e cea mai mare prioritate care o poate avea un proces iar 19 e cea mai mica prioritate. Daca dorim ca un proces sa aiba o prioritate mai mica ii dam ca prioritate un numar pozitiv. Pentru o prioritate mai mare ii dam un numar negativ. In exemplele de mai sus procesele au primit prioritate 19, ceea ce inseamna ca accesul la procesor va fi mai rar decat in cazul unui proces cu prioritate 0 (medie) sau cu prioritate -20 (maxima).

Popularity: 1% [?]

Comentarii pentru “Controlul consumului de procesor cu nice”

  • Procesor spune:

    Interesant, nu stiam ca poti da anumite prioritati proceselor. Daca daca este vorba de un proces care e destul de lung si ai nevoie sa fie prioritar doar pentru o anumita perioada de timp, cum il readuci la prioritatea standard? Pui 0 la renice?

  • Sergiu spune:

    Da, ii dai “renice 0 -p PID” si are din nou prioritate medie :)

Ai intrebari?

* Te rog sa postezi pe NetHelp orice intrebare care nu are legatura cu articolul.

Retele sociale
Reclamã
Sharing makes you cool!
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Retele
Tutoriale despre retele de calculatoare, configurarea interfetelor de retea si rutarea IP-urilor.
/retele-networking/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Web hosting
Articole despre serviciile de gazduire web, dedicate sau in regim shared.
/web-hosting/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
cpadmin.ro
ABCDomenii