Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 16-05-2019 18:42:27

LaFouine
Membre
Distrib. : Debian testing
Noyau : 4.19.0-4-amd64
(G)UI : Xfce
Inscription : 10-04-2017

Assigniation des core et de la prioriter

Bonjours,

j'essaye de me faire un petit script pour assigner les valeur voulues a certaine application.

Cela marche bien ou presque.
pidof semble ne pas vouloir prendre en compte,un processus qui contiens des espaces sad


function SetTaskName () {
VPID=`pidof $1`
Found="0"
for V in $VPID ; do
  Found="1"
  taskset -pc $2 $V
  renice -n $3 -p $V
done

if [ $Found == 0 ] ;then
   echo "Processus non trouver: "$1
fi
}

#l'appelle ce fait donc de cette manière
SetTaskName "clementine-tagreader"  $core $nice

#rappelle
#le changement peux parfois demander les droit root,
[b]!!! il est préférable de ne pas changer ceux du système !!![/b]
 




Vu que le nom du processus varie fréquemment je ne vois pas trop comment gérer cette situation ??

Merci d'avance


Debian testing, nvidia 980 gtx sli, cm asurock 16 gb ram cpu i7 4,2 ghz

Hors ligne

#2 16-05-2019 20:04:16

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 12-08-2015

Re : Assigniation des core et de la prioriter

Éventuellement avec les cgroups en créant un slice avec systemd ?

Voir un exemple ici: https://samthursfield.wordpress.com/201 … g-systemd/

Regarde aussi ceci: https://access.redhat.com/documentation … rol_groups

Dernière modification par Beta-Pictoris (16-05-2019 20:07:57)

Hors ligne

#3 16-05-2019 21:04:55

LaFouine
Membre
Distrib. : Debian testing
Noyau : 4.19.0-4-amd64
(G)UI : Xfce
Inscription : 10-04-2017

Re : Assigniation des core et de la prioriter

Merci pour ta réponse,

Je ne connais pas cette méthode, ça me parait quand même lourd pour faire cela sur chaque processus ....

Debian testing, nvidia 980 gtx sli, cm asurock 16 gb ram cpu i7 4,2 ghz

Hors ligne

#4 16-05-2019 23:59:59

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 12-08-2015

Re : Assigniation des core et de la prioriter

Si les processus appartiennent au même slice, on pourra y appliquer la même propriété (ici CPUWeight, voir le man systemd.resource-control) à tous ces processus :

systemctl --user set-property mon-unit.slice CPUWeight=10


Tous les programmes que l'on lance peuvent, bien-sûr, être placés dans un même slice (ici mon-unit) :

systemd-run --user --scope --slice=mon-unit /bin/bash

Dernière modification par Beta-Pictoris (17-05-2019 00:03:31)

Hors ligne

#5 17-05-2019 05:27:45

LaFouine
Membre
Distrib. : Debian testing
Noyau : 4.19.0-4-amd64
(G)UI : Xfce
Inscription : 10-04-2017

Re : Assigniation des core et de la prioriter

Merci pour ta réponse
très intéressant , le souci c'est que c'est pas un programme que systemd gère, il faudrait donc que je me penche sur le sujet de manière plus approfondie.

Donc entre temps, j'ai chercher du coter de ps , le script est plus lent, Peut être que sa marcherai mieux avec sed


function SetTaskName () {
ps -Ao pid,comm= | while read res
do
  ID=0
  foundproc=0
  ID=`echo $res |cut -d" " -f1`
  foundproc=`echo $res |cut -d" " -f2 | grep -c $1`
  if [ $foundproc != 0 ] ;then
    #echo "trouver: "$ID" nom: "$1" PID: " $ID
    taskset -pc $2 $ID
    renice -n $3 -p $ID
  fi
done
}
 



En espérant que sa aide d'autre personne.
Je laisse le topic ouvert car je pense qu'on pourrai mieux faire. pour mon cas cela est suffisant.


Debian testing, nvidia 980 gtx sli, cm asurock 16 gb ram cpu i7 4,2 ghz

Hors ligne

#6 18-05-2019 13:02:57

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 12-08-2015

Re : Assigniation des core et de la prioriter

LaFouine a écrit :

Merci pour ta réponse
très intéressant , le souci c'est que c'est pas un programme que systemd gère, il faudrait donc que je me penche sur le sujet de manière plus approfondie.


Systemd n'a pas besoin de gérer ton programme. Grace à l'option "--scope", il va associer, dynamiquement, une unit de type scope  à ton programme.

Si tu n'utilises pas l'option scope, il va associer une unit de type service à ton programme et le lancer de façon asynchrone (via systemd init ?).

Les units de type scope sont associés des processus enfants synchrones, par opposition aux units de type service.

Dernière modification par Beta-Pictoris (18-05-2019 13:03:59)

Hors ligne

Pied de page des forums