J'ai installé BOINC et il fait du calcul en basse priorité. Depuis un
moment il ne semble plus fonctionner en "tâche de fond". D'après top,
les processus de calcul qu'il lance sont bien en priorité 19 (nice
19) mais si je lance un traitement en priorité 0 ("normale") les deux se
partagent le processus équitablement (la moitié chacun), alors que le
calcul BOINC devrait ne rien faire (ou presque ?) quand un autre
processus a besoin du processeur.
Précisons qu'il s'agit bien d'un processeur mono-coeur.
Le fait que boinc soit lancé avec son propre utilisateur m'a fait
penser à une histoire de quotas, bien que je n'aie rien touché de ce
côté a priori, mais le problème se produit aussi avec des logiciels que
je lance en priorité 18 avec mon utilisateur.
Des ides sur ce que ça pourrait être ? Ou des choses à regarder pour
avoir plus d'informations ?
Tout ce que j'ai pour l'instant c'est le résultat de top, qui affiche
quelque chose dans ce genre (simplifié ici) :
USER PR NI %CPU COMMAND
moi 20 0 32.2 progtest
boinc 39 19 31.9 garli-2.0
moi 38 18 15.5 truc
...
* progtest est un programme qui effectue une boucle sans intérêt, pour
utiliser le processeur. Juste pour les essais, mais ça marche avec
n'importe quel programme (par exemple firefox).
* garli-2.0 est un des programmes de calcul de BOINC, lancé en basse
priorité donc.
* truc est un autre programme qui ne consomme pas tout le processeur
mais en basse priorité, donc qui devrait laisser sa place à progtest
aussi.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On Sat, 18 Feb 2012 22:08:25 +0100, Yliur :
* progtest est un programme qui effectue une boucle sans intérêt, pour utiliser le processeur.
Modifie ce programme pour qu'il affiche, toutes les secondes par exemple, le nombre de calculs effecués. Lance-le tout seul, et note les résultats. Puis, lance BOINC en priorité faible, et regarde si la vitesse de ton premier programme baisse effectivement.
On Sat, 18 Feb 2012 22:08:25 +0100, Yliur <yliur@free.fr>:
* progtest est un programme qui effectue une boucle sans intérêt, pour
utiliser le processeur.
Modifie ce programme pour qu'il affiche, toutes les secondes par
exemple, le nombre de calculs effecués. Lance-le tout seul, et note
les résultats. Puis, lance BOINC en priorité faible, et regarde si la
vitesse de ton premier programme baisse effectivement.
* progtest est un programme qui effectue une boucle sans intérêt, pour utiliser le processeur.
Modifie ce programme pour qu'il affiche, toutes les secondes par exemple, le nombre de calculs effecués. Lance-le tout seul, et note les résultats. Puis, lance BOINC en priorité faible, et regarde si la vitesse de ton premier programme baisse effectivement.
Yliur
Le Sun, 19 Feb 2012 01:32:49 +0100 Fabien LE LEZ a écrit :
On Sat, 18 Feb 2012 22:08:25 +0100, Yliur :
>* progtest est un programme qui effectue une boucle sans intérêt, >pour utiliser le processeur.
Modifie ce programme pour qu'il affiche, toutes les secondes par exemple, le nombre de calculs effecués. Lance-le tout seul, et note les résultats. Puis, lance BOINC en priorité faible, et regarde si la vitesse de ton premier programme baisse effectivement.
J'ai fait un programme qui incrémente un compteur pendant 10 secondes. Quand le calcul de BOINC est lancé en même temps (en basse priorité, vérifié avec top comme dans mon message précédent), il fait en gros deux fois moins d'additions (sur plusieurs essais, pour être sûr).
De manière plus analogique, quand je lance Firefox et que BOINC fait des calculs, il met nettement plus de temps à se lancer et à réagir, on sent bien la différence.
Le Sun, 19 Feb 2012 01:32:49 +0100
Fabien LE LEZ <gramster@gramster.com> a écrit :
On Sat, 18 Feb 2012 22:08:25 +0100, Yliur <yliur@free.fr>:
>* progtest est un programme qui effectue une boucle sans intérêt,
>pour utiliser le processeur.
Modifie ce programme pour qu'il affiche, toutes les secondes par
exemple, le nombre de calculs effecués. Lance-le tout seul, et note
les résultats. Puis, lance BOINC en priorité faible, et regarde si la
vitesse de ton premier programme baisse effectivement.
J'ai fait un programme qui incrémente un compteur pendant 10 secondes.
Quand le calcul de BOINC est lancé en même temps (en basse priorité,
vérifié avec top comme dans mon message précédent), il fait en gros
deux fois moins d'additions (sur plusieurs essais, pour être sûr).
De manière plus analogique, quand je lance Firefox et que BOINC fait
des calculs, il met nettement plus de temps à se lancer et à réagir, on
sent bien la différence.
Le Sun, 19 Feb 2012 01:32:49 +0100 Fabien LE LEZ a écrit :
On Sat, 18 Feb 2012 22:08:25 +0100, Yliur :
>* progtest est un programme qui effectue une boucle sans intérêt, >pour utiliser le processeur.
Modifie ce programme pour qu'il affiche, toutes les secondes par exemple, le nombre de calculs effecués. Lance-le tout seul, et note les résultats. Puis, lance BOINC en priorité faible, et regarde si la vitesse de ton premier programme baisse effectivement.
J'ai fait un programme qui incrémente un compteur pendant 10 secondes. Quand le calcul de BOINC est lancé en même temps (en basse priorité, vérifié avec top comme dans mon message précédent), il fait en gros deux fois moins d'additions (sur plusieurs essais, pour être sûr).
De manière plus analogique, quand je lance Firefox et que BOINC fait des calculs, il met nettement plus de temps à se lancer et à réagir, on sent bien la différence.
Le Sat, 18 Feb 2012 22:08:25 +0100 Yliur a écrit :
Bonjour
J'ai installé BOINC et il fait du calcul en basse priorité. Depuis un moment il ne semble plus fonctionner en "tâche de fond". D'après top, les processus de calcul qu'il lance sont bien en priorité 19 (nice 19) mais si je lance un traitement en priorité 0 ("normale") les deux se partagent le processus équitablement (la moitié chacun), alors que le calcul BOINC devrait ne rien faire (ou presque ?) quand un autre processus a besoin du processeur.
Précisons qu'il s'agit bien d'un processeur mono-coeur.
Le fait que boinc soit lancé avec son propre utilisateur m'a fait penser à une histoire de quotas, bien que je n'aie rien touché de ce côté a priori, mais le problème se produit aussi avec des logiciels que je lance en priorité 18 avec mon utilisateur.
Des ides sur ce que ça pourrait être ? Ou des choses à regarder pour avoir plus d'informations ?
Tout ce que j'ai pour l'instant c'est le résultat de top, qui affiche quelque chose dans ce genre (simplifié ici) : USER PR NI %CPU COMMAND moi 20 0 32.2 progtest boinc 39 19 31.9 garli-2.0 moi 38 18 15.5 truc ...
* progtest est un programme qui effectue une boucle sans intérêt, pour utiliser le processeur. Juste pour les essais, mais ça marche avec n'importe quel programme (par exemple firefox).
* garli-2.0 est un des programmes de calcul de BOINC, lancé en basse priorité donc.
* truc est un autre programme qui ne consomme pas tout le processeur mais en basse priorité, donc qui devrait laisser sa place à progtest aussi.
Je viens de refaire des essais avec une idée trouvée sur des forums.
Si je lance deux processus à goinfrer le processeur avec le même utilisateur, un avec nice -n19 et l'autre normalement, les deux processus utilisent chacun la moitié du processeur.
Si je tape cette commande (avec root) et qu'ensuite je relance mes deux processus, ils se comportent normalement (celui qui a la très faible priorité n'utilise que très peu le processeur) : echo 0 > /proc/sys/kernel/sched_autogroup_enabled (ce fichier contenait la valeur 1 avant)
Bon, ça met le doigt sur la source du problème mais je ne comprends toujours pas : sur une autre machine semblable le problème se pose aussi, mais sur une machine plus récente (i7 quadricoeurs avec hyperthreading) je n'arrive pas à la même chose : les 8 processus lancés par BOINC laissent effectivement de la place quand un processus est lancé avec une priorité normale et utilise le processeur (ce processus peut alors utiliser un coeur entier). Le fichier nommé plus haut contient bien la valeur 1, j'ai vérifié.
Est-ce que quelqu'un a une idée, une piste, ... ?
Comment le noyau crée-t-il les groupes ? Comment décide-t-il que tel processus ne mérite pas de prendre une plus grande part qu'un autre du processeur ?
Et donc pourquoi sur certaines machines le découpage est "pourri" (en tout cas ne me convient pas) ? Je suppose que la création de groupes ne consiste pas simplement à mettre chaque processus dans un groupe pour ignorer leur priorité tant qu'on n'a pas explicitement mis plusieurs processus dans le même groupe, si ?
Le Sat, 18 Feb 2012 22:08:25 +0100
Yliur <yliur@free.fr> a écrit :
Bonjour
J'ai installé BOINC et il fait du calcul en basse priorité. Depuis un
moment il ne semble plus fonctionner en "tâche de fond". D'après top,
les processus de calcul qu'il lance sont bien en priorité 19 (nice
19) mais si je lance un traitement en priorité 0 ("normale") les deux
se partagent le processus équitablement (la moitié chacun), alors que
le calcul BOINC devrait ne rien faire (ou presque ?) quand un autre
processus a besoin du processeur.
Précisons qu'il s'agit bien d'un processeur mono-coeur.
Le fait que boinc soit lancé avec son propre utilisateur m'a fait
penser à une histoire de quotas, bien que je n'aie rien touché de ce
côté a priori, mais le problème se produit aussi avec des logiciels
que je lance en priorité 18 avec mon utilisateur.
Des ides sur ce que ça pourrait être ? Ou des choses à regarder pour
avoir plus d'informations ?
Tout ce que j'ai pour l'instant c'est le résultat de top, qui affiche
quelque chose dans ce genre (simplifié ici) :
USER PR NI %CPU COMMAND
moi 20 0 32.2 progtest
boinc 39 19 31.9 garli-2.0
moi 38 18 15.5 truc
...
* progtest est un programme qui effectue une boucle sans intérêt, pour
utiliser le processeur. Juste pour les essais, mais ça marche avec
n'importe quel programme (par exemple firefox).
* garli-2.0 est un des programmes de calcul de BOINC, lancé en basse
priorité donc.
* truc est un autre programme qui ne consomme pas tout le processeur
mais en basse priorité, donc qui devrait laisser sa place à progtest
aussi.
Je viens de refaire des essais avec une idée trouvée sur des forums.
Si je lance deux processus à goinfrer le processeur avec le même
utilisateur, un avec nice -n19 et l'autre normalement, les deux
processus utilisent chacun la moitié du processeur.
Si je tape cette commande (avec root) et qu'ensuite je relance mes deux
processus, ils se comportent normalement (celui qui a la très faible
priorité n'utilise que très peu le processeur) :
echo 0 > /proc/sys/kernel/sched_autogroup_enabled
(ce fichier contenait la valeur 1 avant)
Bon, ça met le doigt sur la source du problème mais je ne comprends
toujours pas : sur une autre machine semblable le problème se pose
aussi, mais sur une machine plus récente (i7 quadricoeurs avec
hyperthreading) je n'arrive pas à la même chose : les 8 processus lancés
par BOINC laissent effectivement de la place quand un processus est
lancé avec une priorité normale et utilise le processeur (ce processus
peut alors utiliser un coeur entier). Le fichier nommé plus haut
contient bien la valeur 1, j'ai vérifié.
Est-ce que quelqu'un a une idée, une piste, ... ?
Comment le noyau crée-t-il les groupes ? Comment décide-t-il que tel
processus ne mérite pas de prendre une plus grande part qu'un autre du
processeur ?
Et donc pourquoi sur certaines machines le découpage est "pourri" (en
tout cas ne me convient pas) ? Je suppose que la création de groupes ne
consiste pas simplement à mettre chaque processus dans un groupe pour
ignorer leur priorité tant qu'on n'a pas explicitement mis plusieurs
processus dans le même groupe, si ?
Le Sat, 18 Feb 2012 22:08:25 +0100 Yliur a écrit :
Bonjour
J'ai installé BOINC et il fait du calcul en basse priorité. Depuis un moment il ne semble plus fonctionner en "tâche de fond". D'après top, les processus de calcul qu'il lance sont bien en priorité 19 (nice 19) mais si je lance un traitement en priorité 0 ("normale") les deux se partagent le processus équitablement (la moitié chacun), alors que le calcul BOINC devrait ne rien faire (ou presque ?) quand un autre processus a besoin du processeur.
Précisons qu'il s'agit bien d'un processeur mono-coeur.
Le fait que boinc soit lancé avec son propre utilisateur m'a fait penser à une histoire de quotas, bien que je n'aie rien touché de ce côté a priori, mais le problème se produit aussi avec des logiciels que je lance en priorité 18 avec mon utilisateur.
Des ides sur ce que ça pourrait être ? Ou des choses à regarder pour avoir plus d'informations ?
Tout ce que j'ai pour l'instant c'est le résultat de top, qui affiche quelque chose dans ce genre (simplifié ici) : USER PR NI %CPU COMMAND moi 20 0 32.2 progtest boinc 39 19 31.9 garli-2.0 moi 38 18 15.5 truc ...
* progtest est un programme qui effectue une boucle sans intérêt, pour utiliser le processeur. Juste pour les essais, mais ça marche avec n'importe quel programme (par exemple firefox).
* garli-2.0 est un des programmes de calcul de BOINC, lancé en basse priorité donc.
* truc est un autre programme qui ne consomme pas tout le processeur mais en basse priorité, donc qui devrait laisser sa place à progtest aussi.
Je viens de refaire des essais avec une idée trouvée sur des forums.
Si je lance deux processus à goinfrer le processeur avec le même utilisateur, un avec nice -n19 et l'autre normalement, les deux processus utilisent chacun la moitié du processeur.
Si je tape cette commande (avec root) et qu'ensuite je relance mes deux processus, ils se comportent normalement (celui qui a la très faible priorité n'utilise que très peu le processeur) : echo 0 > /proc/sys/kernel/sched_autogroup_enabled (ce fichier contenait la valeur 1 avant)
Bon, ça met le doigt sur la source du problème mais je ne comprends toujours pas : sur une autre machine semblable le problème se pose aussi, mais sur une machine plus récente (i7 quadricoeurs avec hyperthreading) je n'arrive pas à la même chose : les 8 processus lancés par BOINC laissent effectivement de la place quand un processus est lancé avec une priorité normale et utilise le processeur (ce processus peut alors utiliser un coeur entier). Le fichier nommé plus haut contient bien la valeur 1, j'ai vérifié.
Est-ce que quelqu'un a une idée, une piste, ... ?
Comment le noyau crée-t-il les groupes ? Comment décide-t-il que tel processus ne mérite pas de prendre une plus grande part qu'un autre du processeur ?
Et donc pourquoi sur certaines machines le découpage est "pourri" (en tout cas ne me convient pas) ? Je suppose que la création de groupes ne consiste pas simplement à mettre chaque processus dans un groupe pour ignorer leur priorité tant qu'on n'a pas explicitement mis plusieurs processus dans le même groupe, si ?