Portail de l'AF

Nouvelles

Raid de printemps : Yafu et Einstein@home

Faites un don

Shoutbox

modesti:
2025-03-20, 22:55:26
Allez, les copains, on pousse encore un peu sur Einstein, SVP ! En unissant nos forces, la troisième place au FB est à notre portée d'ici à la fin du mois !  :bipbip:
Maeda:
2025-03-07, 21:53:11
C'parti !
[AF>Libristes] alain65:
2025-02-26, 02:26:05
Merci  :jap:
modesti:
2025-02-24, 11:27:41
Tout vient à point à qui sait attendre :siflotte:
ousermaatre:
2025-02-24, 10:47:28
patience  :D  Ca vient
[AF>Libristes] alain65:
2025-02-24, 08:43:55
l'annonce officielle, c'est pas la veille j'espère  :cpopossib:
Maeda:
2025-02-22, 09:58:51
On attend l'annonce officielle détaillée :D
[AF>Libristes] alain65:
2025-02-22, 08:25:50
Et c'est sur quoi ce raid ?
modesti:
2025-02-20, 23:06:46
A 18h28 par notre pharaon préféré, ici-même :D
[AF] Kalianthys:
2025-02-20, 20:50:52
Le raid a été annoncé ?
ousermaatre:
2025-02-20, 18:28:57
15 jours avant le Raid....  :D
modesti:
2025-02-01, 11:10:25
Bonne chasse aux nombres premiers !
modesti:
2025-01-31, 21:24:33
Spafo :D
Maeda:
2025-01-31, 20:11:40
Plutôt H-4h :)
modesti:
2025-01-31, 19:54:14
J-1  :banana:
[AF] Kalianthys:
2025-01-30, 18:53:31
modesti:
2025-01-30, 11:55:53
J-2 :gniak: :ange:
fzs600:
2025-01-02, 11:18:45
Bonne année a tous et bon crunch.
zelandonii:
2025-01-02, 11:08:45
Bonne année à tous et que vous soyez heureux.
Ironman:
2025-01-01, 15:55:54
Bonne année et bonne santé pour vous et vos proches !  :smak:
modesti:
2025-01-01, 07:53:37
Bonne et heureuse année à toutes et tous !
ousermaatre:
2024-12-25, 21:04:16
 :perenoel:
modesti:
2024-12-25, 10:03:06
Noyeux Joël !  :D
fzs600:
2024-12-02, 12:28:17
Tout pareil bon Raid a tous.
modesti:
2024-12-02, 11:29:50
Un peu à la bourre, mais quand même de tout cœur : bon raid à tous ! :hyperbon:
Sébastien:
2024-11-19, 21:42:51
 @Bertrand Fr, je n'ai pas beaucoup d'expérience sur mac, mais je n'ai pas de problème avec BOINC 8.0.4 sur un mac M1.
JeromeC:
2024-11-19, 15:53:46
Moi dès que j'ai su qu'Apple passait à ses propres CPU je me suis précipité pour prendre le dernier iMac Intel du marché (fin 2020) pour remplacer le précédent (après 10 ans de loyaux services) et j'en suis fort aise :)
ousermaatre:
2024-11-19, 15:39:53
 :hello: Bertrand, alors les amis, pas de réponse pour un p'tit nouveau?

Recent

[Linux] Script pour arrêter Boinc suivant la charge

Démarré par erdnaxeli, 01 Septembre 2011 à 19:47

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

erdnaxeli

Voici un petit script qui permet d'arrêter boinc si la charge de votre pc (sous linux) dépasse une certaine valeur.

Le script se base sur la charge de la dernière minute pour arrêter ou non boinc, afin d'être réactif; mais il se base sur la charge moyenne sur les 5 dernières minutes pour le relancer, afin d'être sur que la charge ait bien baissé et de ne pas faire clignoter boinc (la charge sur la dernière minute peut augmenter ou diminuer brusquement, la charge sur les 5 dernières minutes tempère ces pics).

Voici le script : http://pastebin.com/erLTJF7R
« sh boinc-loadavg.sh » pour le lancer. Il y a quelques réglages à spécifier dans le fichier. Pas besoin de tâche cron, le script fait une boucle infinie (la fréquence est réglable).

edit : mise à jour : http://pastebin.com/PS3XXUeC (bug fix).

jip

je ne comprends pas un truc dans ton script.

si c'est une boucle infinie, pourquoi l'état dans un fichier temp au lieu de le mettre dans une variable du script ??

car si il n'y a pas de sortie du script la variable sera maintenue, non ?

[AF>Libristes] Dudumomo

Et puis se baser sur le load ca ne sert pas a grand chose vu que de toute facon boinc a la plus petite priorite....
Niveau processeur ca ne gene pas.
Cote RAM okay, ca peut faire ralentir le PC.

Mais bon c'est en tout cas sympa de partager ton travail !!!
:jap:

npetix

cool comme script, ca donne des idées
voila un truc qui pourrai automatiser le réglage en fonction du cpu

charge=2
cores=`cat /proc/cpuinfo | grep 'cpu cores' -m 1| awk '{print$4}'`
loadavg_max= expr $cores + $charge
loadavg_min=$cores

:hello:
GNU/Linux Cruncher.

erdnaxeli

Jip : Heu oui, c'est stupide, je ne sais pas pourquoi j'ai fait ça   :pt1cable:

Dumono : J'ai remarqué que sur Gentoo quand je lance emerge qui fait gratter le disque dur la charge monte assez vite. Arrêter Boinc permet de modérer la montée. De façon générale, j'ai un disque dur un peu faible, et j'ai le sentiment que quand les i/o s'accumulent ils ne sont pas prioritaire sur Boinc, ce qui fait que la charge explose (en tout cas arrêter Boinc permet de revenir à une situation normale beaucoup plus rapidement).

npetix : Pas mal comme idée, mais chez moi (deux cores) la charge est toujours supérieur à 5. Je préfère laisser chacun régler la charge comme il le souhaite.


Voici une version sans fichier temporaire inutile : http://pastebin.com/hcnxH5Y5

jip

Citation de: erdnaxeli le 02 Septembre 2011 à 08:49
Jip : Heu oui, c'est stupide, je ne sais pas pourquoi j'ai fait ça   :pt1cable:

non pas stupide. j'ai juste eu l'impression que tu avais démarré en ne pensant pas faire une boucle infinie et que ça allait tourner avec un cron. et dans ce cas tu aurais eu besoin de stocker en moins "volatile" dans un fichier plutôt qu'une variable qui aurait été libéré en sortie de script.

donc j'ai d'abord pensé à un changement de stratégie en cours d'écriture.  ;) Non ?

jip

sur le lien que tu donne http://pastebin.com/hcnxH5Y5, j'ai : "Unknown Paste ID!" ....

ah aussi sinon, du coup, je ne sais pas comment tu as géré la variable d'état pour boinc, mais pour réduire l'empreinte mémoire de cette variable, au lieu de gérer une chaine (dont l'espace mémoire dépend du nombre de caractères), tu peux gérer une valeur numérique similaire à un booléen (donc un 0 ou 1 dans une variable), puisque tu n'as que 2 états (stoppé ou non).

erdnaxeli

Citation de: [AF>Libristes] Jip le 02 Septembre 2011 à 09:16donc j'ai d'abord pensé à un changement de stratégie en cours d'écriture.  ;) Non ?

Oui initialement c'était une tache cron toute moche que j'ai voulu améliorer, bien vu :P.

Voici le bon lien : http://pastebin.com/erLTJF7R

jip

J'aurais bien vu une petite modif sur une partie du code :


boinc_crunching=1

while true; do

    read -r loadavg1 loadavg5 loadavg15 ratio_taches_actives last_PID <<< `cat "/proc/loadavg"`

    if [ "${loadavg1//.*}" -ge "${loadavg_max}" -a $boinc_crunching -eq 1 ]; then
        ${boinccmd} --passwd ${password} --set_run_mode never
        boinc_crunching=false

    elif [ "${loadavg5//.*}" -lt $loadavg_min -a ! $boinc_crunching -eq 0 ]; then
        $boinccmd --passwd $password --set_run_mode $boinc_calcul_mode
        boinc_crunching=true
    fi

    sleep $wait
done


je n'ai pas vérifier le bon fonctionnement de ce changement, donc à vérifier coté syntaxe et valider par des tests.

erdnaxeli

Ça y est, Jip me refait mon script ! Je l'attendais  :lol:

Bon, par contre je comprends pas tout. Je suis allé voir un tuto bash mais quand même, ça veut dire quoi ça : ${loadavg1//.*} ?
De ce que j'ai compris ${var//motif/remplacement} équivaut à  s/motif/remplacement/g, ou s/motif//g pour ${var//motif}}. Je suppose qu'on peut mettre des regex, donc tu voudrais vider la variable ? Je pense que c'est pas ça, donc j'en déduis que je n'ai pas compris  :pt1cable:

jip

Citation de: erdnaxeli le 02 Septembre 2011 à 21:04
Ça y est, Jip me refait mon script ! Je l'attendais  :lol:

Bon, par contre je comprends pas tout. Je suis allé voir un tuto bash mais quand même, ça veut dire quoi ça : ${loadavg1//.*} ?
De ce que j'ai compris ${var//motif/remplacement} équivaut à  s/motif/remplacement/g, ou s/motif//g pour ${var//motif}}. Je suppose qu'on peut mettre des regex, donc tu voudrais vider la variable ? Je pense que c'est pas ça, donc j'en déduis que je n'ai pas compris  :pt1cable:

non, j'ai juste viré (comme toi) tout ce qui est à partir du point et tout ce qui est derrière. pour en faire un entier pour le test  ;)

la variable "boinc_crunching" pourrais aussi prendre les valeurs "true" et "false" pour les tester directement sans comparaison à 0 ou 1.

erdnaxeli

Ah bah oui, c'est pas une regex, c'est juste un bon vieux joker *. Ok, j'ai compris  :hyperbon:

jip

tu vois, en fait c'est assez simple mais pourtant puissant et efficace la substitution de variables ...

et pourtant je suis encore loin de tout maitriser et exploiter de ce coté là ...  ;)

donc tu peux en user et en abuser, et surement aller plus loin que moi. :origin:

SMF spam blocked by CleanTalk