J'ai un processus régulier qui n'est pas si important, mais je consomme autant de pouvoir de la CPU, et j'ai un autre processus vraiment important, mais cela passe la majeure partie du temps inactif, mais quand il a eu un travail, il a vraiment besoin d'une puissance informatique élevée.
J'ai essayé de courir avec Nice -20 ./low_priority_process
et Nice --20 ./high_priority_process
Mais toujours la priorité inférieure consomme une quantité importante de CPU lorsque le processus de priorité élevée est dans le besoin, comment puis-je exécuter un processus qui donnera réellement ou même une suspension automatique lorsqu'un autre processus utilisant la puissance de la CPU
Jetez un coup d'œil à cgroups , il devrait fournir exactement ce dont vous avez besoin - réservations de la CPU (et plus). Je suggérerais de lire contrôler la priorité des applications à l'aide de cgroups .
Cela dit, mettait les processus importants et souvent inactifs en groupe avec 95% alloués à 95% de la CPU et de vos autres applications dans une autre avec une autre avec 5% alloué - vous obtiendrez (presque) tout le pouvoir de votre travail en cas de besoin, tandis que le besoin Le processus d'affamation de puissance ne fera que 5% au maximum à ces moments. Lorsque les surtensions de calcul disparaissent, toutes les performances de la CPU seront jetées aux processus restants. En tant que prestation, si vous créez un cgroup spécial (avec des exigences de performance minimales) pour les processus tels que sshd
, vous pourrez vous connecter, peu importe ce qui tente d'obtenir tout CPU, cela peut - certains tiers du processeur être réservé pour sshd
.
Si la priorité de processus (valeur agréable) est faible, elle n'interrompt pas un processus de priorité plus élevé. La raison pour laquelle vous voyez le processus de priorité faible consommant toujours une quantité importante de CPU lorsque le processus de priorité plus élevé est en cours d'exécution, car le processus de priorité plus élevé n'est pas que occupé. Probablement attendre sur io. Utilisation chrt -p -i 0 $PID
Pour exécuter le processus à une priorité encore plus faible que Nice 19 -p $PID
(en supposant que nous parlons de Linux ici).
chrt -p -i 0 $PID
met le processus dans le planificateur "vrai".
Essayez cet exemple pour exécuter un processus comme un processus bas.
Si vous êtes prêt, c'est bien tar xvf asets.zip
Utilisation
Après cela, problème
haut pour surveiller le processus décompressez avec
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