Est-il possible de limiter la puissance CPU d'un processus?

16

Je me demande, est-il possible de dire à un processus combien de puissance processeur il peut prendre?

Le problème est que je convertis la vidéo avec Arista (convertisseur vidéo) et que le ventilateur fonctionne comme un fou, quand je regarde le moniteur de tâches, il occupe plus de 92% du processeur.

Puis-je (en quelque sorte) lui dire que cela peut prendre seulement 20%?

Merci

équivalent8
la source

Réponses:

20

Il y a l' outil cpulimit (est également présent dans le dépôt debian et devrait être dans d'autres distributions).

Son utilisation est assez simple:

cpulimit -p PID -l MAX_CPU_LEVEL

Vous pouvez également utiliser le nom du processus ou le chemin d'accès complet au binaire. Détails que vous pouvez trouver sur la page de manuel .

se ruer
la source
1
ha-ha :), fonctionne parfaitement, merci +1
équivalent8
3
Le code à l'URL notée n'a pas été mis à jour depuis un certain temps. Un autre groupe l'a repris et a poursuivi son développement sur limitcpu.sf.net .
James Sneeringer
7

Une autre façon est d'utiliser la (relativement) nouvelle interface du noyau appelée cgroups (article wikipedia ici ). Il permet un contrôle plus fin de la quantité de CPU / mémoire / io / etc qu'un processus / utilisateur / groupe est autorisé à consommer.

Tommy
la source
0

Bien que ce ne soit pas exactement ce que vous recherchez, vous pouvez utiliser le reniceprogramme pour modifier la priorité du programme afin de l'empêcher de ralentir d'autres applications sur le système. renice -n 20 -p [pid], où [pid] est remplacé par l'ID de processus d'Arista réduirait probablement sa consommation de ressources et diminuerait certainement le ralentissement du système.

re-cursion
la source
1
L'OP ne se plaint pas du ralentissement du processus d'autres applications mais du fait que le ventilateur fonctionne comme un fou, renicene peut rien faire contre ce dernier. Au mieux, cela ralentira le convertisseur vidéo, mais les processus concurrents (le cas échéant) maintiendront la charge du processeur comme auparavant.
jlliagre