Exécuter le process linux à très très faible priorité?

J'ai un process régulier qui n'est pas si important mais qui consum énormément de puissance CPU et j'ai un autre process qui est vraiment important mais qui passe la plupart du time au ralenti mais quand il a un travail,

J'ai essayé d'exécuter avec nice -20 ./low_priority_process et nice --20 ./high_priority_process mais la priorité la plus basse consum une quantité significative de CPU quand le process de haute priorité est dans le besoin, comment puis-je lancer un process qui va vraiment produire ou même auto- suspendre lorsqu'un autre process utilisant la puissance du processeur

Jetez un oeil à cgroups , il devrait fournir exactement ce dont vous avez besoin – les réservations CPU (et plus). Je suggère de lire la priorité de contrôle des applications en utilisant cgroups .

Cela dit, mettez les process importants mais souvent inactifs dans le groupe avec alloué 95% de CPU et vos autres applications dans un autre avec alloué 5% – vous obtiendrez (presque) toute la puissance pour vos travaux en cas de besoin, tandis que le constamment le process affamé de pouvoir n'obtiendra que 5% au maximum à ces moments-là. Lorsque les surtensions de calcul disparaissent, toutes les performances du processeur seront rejetées sur les process restants. Si vous créez un cgroup spécial (avec des exigences de performances minimales) pour des process comme sshd , vous pourrez vous connecter, peu importe ce qui est en train d'essayer d'get tout le CPU possible – un peu de time CPU sera réservé pour sshd .

Si la priorité du process (valeur intéressante) est faible, cela n'interrompt pas un process de priorité plus élevée. La raison pour laquelle vous voyez le process de faible priorité consum toujours une quantité importante de CPU lorsque le process de priorité supérieure s'exécute parce que le process de priorité plus élevée n'est pas occupé. Probablement en attente sur IO. Utilisez chrt -p -i 0 $PID pour exécuter le process avec une priorité encore plus faible que le nice 19 -p $PID (en supposant que nous parlons de Linux ici).

chrt -p -i 0 $PID place le process dans le "vrai" programmateur inactif.

http://linux.die.net/man/1/chrt

Essayez cet exemple pour exécuter un process en tant que process bas.

Si vous êtes le travail est bien tar xvf asets.zip

Utilisation

nice tar xvf assets.zip

Après cela, problème

top pour surveiller le process décompressez avec

ps aux | grep "goudron"

Essayez quelque chose de spécifique avec cpulimit

 wget -O cpulimit.zip https://github.com/opsengine/cpulimit/archive/master.zip unzip cpulimit.zip cd cpulimit-master make sudo cp src/cpulimit /usr/bin 

cpulimit -l 50 python 0 9999999999> / dev / null &