# Duniter powCluster.js utilise mes 8 cœurs à 100%

**URL:** https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608
**Category:** Duniter-v1
**Tags:** pow
**Created:** [13 November 2017 09:09 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608 "2017-11-13T09:09:16Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:09 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/1 "2017-11-13T09:09:17Z")

</div>

![](https://forum.duniter.org/uploads/default/original/2X/5/59018f00d1d86e35651597d3fc306069c4fcee4d.png)

J’avais ce problème avec la 1.6.10, et il persiste en 1.6.13. Maintenant dès que je le lance l’utilisation processeur est à 100% sur tous les cœurs. Quand j’avais installé la 1.6.10 il y a quelques jours, pas d’utilisation intensive. Je vais refaire la synchro et re-télécharger la blockchain, mais dans tous les cas ce n’est pas normal qu’il utilise tous mes cœurs, mais avec une desynchro.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:13 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/2 "2017-11-13T09:13:21Z")

</div>

Il aurait fallu regarder les logs à ce moment là, voir notamment si la conf CPU était indiquée à 100% ou pas.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:15 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/3 "2017-11-13T09:15:28Z")

</div>

Je n’ai pas changé la conf CPU, elle à donc sa valeur par défaut. Pendant plus d’une semaine tous les cœurs étaient à la limite de l’idle, et je minais des blocs sur g1-test. Aucune autre action sur le serveur entre cette vérification et aujourd’hui.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:16 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/4 "2017-11-13T09:16:40Z")

</div>

Je ne dis pas que tu l’as mise à 100%, mais peut-être qu’un bug aurait fait changer sa valeur et alors les logs auraient montré cela.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:17 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/5 "2017-11-13T09:17:09Z")

</div>

J’ai fait un `reset data`, est-ce que les logs ont été effacés ? Sinon, où sont-ils ?

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:18 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/6 "2017-11-13T09:18:34Z")

</div>

Ils sont dans le dossier `~/.config/duniter/duniter_default/`, fichier “duniter.log”.

Mais le reset supprime ce fichier.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:19 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/7 "2017-11-13T09:19:39Z")

</div>

Je viens de finir la sync de `g1-test`, et au lancement je retourne à 100% sur tous les cœurs. Qu’est ce que je dois chercher dans les logs ?

EDIT : Les 100% sont restés pendant une 10ène de secondes, et maintenant j’ai en moyenne 100% d’un cœur (qui est reparti sur plusieurs cœurs, genre cœur 1 à 40% + cœur 2 à 60%, et qui change à chaque rafraîchissement de `htop`)

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:33 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/8 "2017-11-13T09:33:48Z")

</div>

> [@nanocryk](#):
>
> Qu’est ce que je dois chercher dans les logs ?

Cherche “zeros”, et affiche tous les logs correspondants ici dans l’ordre.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:35 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/9 "2017-11-13T09:35:49Z")

</div>

```auto
cat ~/.config/duniter/gt/duniter.log| grep "zeros" 1 ↵
2017-11-13T10:18:50+01:00 - info: Generating proof-of-work with 4 leading zeros followed by [0-6]... (CPU usage set to 60%) for block#85725 HbTqJ1
2017-11-13T10:18:53+01:00 - info: Matched 3 zeros 000D3579722A66DD252D171222572CBA3DBE83FC49E257C1C34D8524FFB418BD with Nonce = 10700000000234 for block#85725 by HbTqJ1
2017-11-13T10:18:59+01:00 - info: Matched 3 zeros 00087B5765A1FAB353C45F5D2396C5CD0E693C277D0E971EAAD5CBCAA7C0A00E with Nonce = 10300000000766 for block#85725 by HbTqJ1
2017-11-13T10:19:02+01:00 - info: Matched 3 zeros 000A7289AFC1D5C66B521A6417874D30E2651F8986D2FD64B9163311B80E8304 with Nonce = 10100000001047 for block#85725 by HbTqJ1
2017-11-13T10:19:06+01:00 - info: Matched 3 zeros 000B86921D945645EDA3CE73E8635E204DC6AE34E36EB0F86C22277BFB07297E with Nonce = 10200000001452 for block#85725 by HbTqJ1
2017-11-13T10:19:09+01:00 - info: Matched 3 zeros 0002EBA92F363D29EDB06C5A830A89C031CD9CBD94344C3163136FFAC3E548D4 with Nonce = 10300000001708 for block#85725 by HbTqJ1
2017-11-13T10:19:10+01:00 - info: Matched 5 zeros 000008E3E6EAAC9C955EFC5C97CD4BD5A64269CEEA369BA9DA955AFC6FF2F687 with Nonce = 10500000001864 for block#85725 by HbTqJ1
2017-11-13T10:19:10+01:00 - info: FOUND proof-of-work with 4 leading zeros followed by [0-6]!

```

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:45 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/10 "2017-11-13T09:45:22Z")

</div>

Ces logs paraissent tout à fait normaux, il te suffira de répéter l’opération quand tu estimeras qu’il y a un bug.

À noter quand même que durant la 1ère seconde de PoW il y a un essai pour déterminer où se trouve le 100%, afin d’ajuster le calcul pour atteindre la valeur de consigne (60% ici).

Toutefois c’est assez approximatif, et vu que tu as un octocores tu peux diminuer la PoW à 50% ou moins, ce qui te permettra largement de calculer des blocs, afin de faire quelques essais comparatifs et éviter l’utilisation de 100%.

Car il faut aussi voir l’utilisation CPU quand Duniter est en phase d’attente, je suppose que tu as d’autres programmes qui tournent sur ce serveur et qui viennent « fausser » le résultat de la mesure.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:51 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/11 "2017-11-13T09:51:19Z")

</div>

D’accord, il y a bien un moment où Duniter utilise le processeur à 100%, justement pour déterminer où se trouve ce 100%. Est-ce qu’il n’y a pas une situation ou le logiciel resterait bloqué dans cet état ?

EDIT : Okay donc j’ai quelque chose de beaucoup plus étrange. Mon noeud `g1-test` fonctionnait normalement, puis j’ai lancé mon noeud `g1`, et là c’est `g1-test` qui monte à 800%. Et il y reste même si je stoppe le noeud `g1`. Dans les logs le CPU usage est toujours à 60%.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:55 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/12 "2017-11-13T09:55:57Z")

</div>

Si j’avais découvert une telle situation, je l’aurais corrigée, c’est bien trop critique. Personnellement, je dirais que non, tu peux vérifier cela toi-même : [https://github.com/duniter/duniter/blob/da85e4c3ba8e18a66b0c216335454473e1c205ae/app/modules/prover/lib/proof.ts#L114-L229](https://github.com/duniter/duniter/blob/da85e4c3ba8e18a66b0c216335454473e1c205ae/app/modules/prover/lib/proof.ts#L114-L229)

D’ailleurs il serait intéressant de sortir cet algo (finalement assez simple et relativement court) afin de le triturer dans un test unitaire.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 09:59 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/13 "2017-11-13T09:59:28Z")

</div>

Tu peux aussi suivre d’autres pistes, il y a déjà eu des cas d’utilisation à 100% du CPU sur ARM : [Livrables ARM en attente : Raspberry PI 3 HS](https://forum.duniter.org/t/livrables-arm-en-attente-raspberry-pi-3-hs/3249/38)

Le problème dans ce cas était ailleurs, dans le gestionnaire de preuve. Une boucle infinie, il me semble.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 09:59 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/14 "2017-11-13T09:59:39Z")

</div>

Du coup maintenant je n’ai que `g1-test` (profil `gt`) qui tourne, et il reste à 800%. Il à commencé à atteindre les 800% quand j’ai lancé `g1` (`default_profile`).

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 10:01 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/15 "2017-11-13T10:01:08Z")

</div>

Je ne peux pas t’aider plus en l’état, il te faut faire d’autres tests en modifiant la valeur CPU.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 10:01 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/16 "2017-11-13T10:01:39Z")

</div>

Le CPU est un Intel Atom C2750. C’est du ARM ça ?

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 10:05 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/17 "2017-11-13T10:05:16Z")

</div>

J’ai lancé `duniter` tout seul, il utilisait 100% d’un coeur pendant 10 secondes, puis est passé à 800%. `dunitest` lui n’étais pas lancé. Je vais refaire un `reset data` et lancer seulement 1 nœud, mais le fait que les 800% arrivent au moment où je lance le 2ème nœud me fait penser que ce n’est pas une coincidence.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 10:14 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/18 "2017-11-13T10:14:13Z")

</div>

Si les deux nœuds tournent à 60% chacun, ça fait donc 120% d’utilisation CPU (sur chaque cœur).

D’où l’intérêt de tester avec une autre valeur de CPU, par exemple 30%.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [13 November 2017 10:19 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/19 "2017-11-13T10:19:34Z")

</div>

J’ai reset les 2 noeuds, et config `dunitest` à 30% du CPU. J’ai lancé uniquement `dunitest`, et j’ai en moyenne 85% sur chaque cœur. (cœurs logiques, je n’ai que 4 cœurs physiques).

EDIT : Au bout de 1 ou 2 minutes, il ne tourne plus que sur 1 cœur (en changeant à chaque refresh)

EDIT 2 : Après un restart, pas d’utilisation intensive.  
EDIT alors que je suis en train d’écrire : Ca recommence : [https://i.imgur.com/SME5UDq.png](https://i.imgur.com/SME5UDq.png)  
Mon config.json : [https://i.imgur.com/KAFMO4f.png](https://i.imgur.com/KAFMO4f.png)

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [13 November 2017 10:29 UTC](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608/20 "2017-11-13T10:29:40Z")

</div>

Peu importe les cœurs physiques ou logiques, Duniter ne regarde qu’en termes de cœurs logiques.

> [@nanocryk](#):
>
> Le CPU est un Intel Atom C2750. C’est du ARM ça ?

Visiblement il ne s’agit pas d’un ARM, mais possède des caractéristiques identiques : CPU à faible puissance destiné à de l’économie d’énergie. Or, Duniter utilise une règle un peu spécifique pour ARM en divisant la puissance CPU par deux pour atteindre la consigne.

Je te conseille donc d’appliquer cette même règle : si tu veux une utilisation à 30% de CPU pour chaque nœud, alors configure à 15% chaque nœud. Tu auras grosso-modo la bonne consigne.

En attendant, j’ai créé le [ticket#1197](https://github.com/duniter/duniter/issues/1197) pour tracer le problème.

[Next page](https://forum.duniter.org/t/duniter-powcluster-js-utilise-mes-8-coeurs-a-100/3608.md?page=2)
