Pourquoi Docker réduit-il la consommation d'énergie d'un appareil Internet des objets dans cette référence?

10

Je m'intéresse aux applications de Docker sur des appareils IoT tels que Raspberry Pis.

Après avoir lu une évaluation des performances des technologies de conteneurs sur les appareils Internet des objets , j'ai été légèrement confus par l'un des résultats. Dans le tableau 1, la consommation d'énergie indiquée sous Apache 2 Benchmarking (200 clients) montre que l'utilisation d'un conteneur Docker a réduit la consommation d'énergie, malgré les frais généraux de conteneurisation à l'aide de Docker.

Pourquoi cela se produit-il? Est-ce suffisamment fiable pour être utilisé pour réduire légèrement la consommation d'énergie des appareils IoT, et y aurait-il des inconvénients?

Aurora0001
la source
1
En lisant les tableaux de la dernière page, vous avez un peu reculé. La consommation d'énergie est généralement plus élevée pour «Docker» que «Native». Le texte fait référence à un cas où il y a également une différence de performances (c'est dans le quadrant inférieur droit du tableau I), probablement en raison d'un goulot d'étranglement du réseau accru pour le conteneur, ce qui équivaudrait à un processeur moins actif.
goldilocks
@delicateLatticeworkFever peut-être ainsi, je regarde respectivement "5000 requêtes", "25000 requêtes" et "100000 requêtes" où la consommation d'énergie est "-4,63%", "-3,84%" et "-5,29%" . La différence de performance semble être la cause probable de la différence de puissance, ce qui pourrait valoir la peine d'être discuté dans une réponse. Une partie de ma question est de savoir si vous pourriez exploiter cela comme un compromis si vous étiez satisfait des performances légèrement dégradées, car cela me semblait une idée intéressante.
Aurora0001
1
Eh bien, si c'est parce que ces 5000 demandes ont pris plus de temps, cela implique de faire des choses à moins de 100% signifie moins d'énergie par tâche utilisée. C'est peut-être la forme générale de cette question et, comme une supposition occasionnelle, je pourrais dire qu'elle a à voir avec l'énergie perdue par dissipation thermique. Les processeurs (au moins certains) sont-ils moins efficaces lorsqu'ils sont au maximum? Pourrait facilement l'être. Dans ce cas, si vous voulez l'avantage, vous pouvez exécuter des tests avec le processeur étranglé un peu et voir si cela donne le même avantage (il fonctionnera certainement plus lentement et consommera moins d'énergie). Remarque sur un appareil 5W, je ne sais pas si +/- <5% est significatif.
goldilocks
Note on a 5W device I'm not sure if +/- <5% is meaningful.- c'est un bon point, mais si vous utilisez des appareils IoT à grande échelle, les économies d'énergie deviennent plus importantes (et c'est une expérience de pensée intéressante malgré tout). Si vous voulez rassembler vos pensées en une réponse, je pense que vous seriez sur le point de répondre aux questions que j'ai soulevées.
Aurora0001
1
Hmmm, pas si sûr que mon hypothèse rapide soit correcte; en y regardant, il semble que la relation soit linéaire: stackoverflow.com/questions/6128960/… ... et la pente sur ce graphique est <1, donc un processeur au maximum devrait être plus efficace.
goldilocks

Réponses:

7

Après une enquête plus approfondie, je pense que le problème dans la question est que, bien que la puissance (taux de transfert d'énergie) ait été réduite, la consommation globale d' énergie a été augmentée en utilisant Docker, il n'y a donc aucun avantage en termes de réduction des coûts d'électricité.

Sur la base des chiffres du papier pour 100 000 demandes, nous pouvons calculer la consommation d'énergie grâce à la formule:

Énergie = puissance x temps

Étant donné que le code natif consommait 2,4893 W de puissance et prenait environ 170 secondes (voir figure 3, natif 200), nous savons que l'énergie utilisée était:

2,4893 W * 170 s

= 423,181 Ws = 423,181 J (1 watt-seconde équivaut à un joule, ou, en d'autres termes, un watt est un joule par seconde)

Pour le code Docker, la consommation d'énergie était de 2,3642 W, mais le temps nécessaire était de 220 secondes, donc:

2,3642 W * 220 s

= 520,124 Ws = 520,124 J

Par conséquent, la consommation d'énergie globale pour l'exemple était supérieure de 96,943 J, ce qui est clairement indésirable si la consommation d'énergie est un problème. Cependant, l'utilisation de Docker présente d'autres avantages pour le déploiement et la gestion, mais dans des environnements étroitement limités (par exemple, uniquement sur batterie), il semblerait qu'il soit préférable d'éviter.

Aurora0001
la source