我一直对Docker在Raspberry Pis等物联网设备上的应用很感兴趣。结果。在表1中,Apache 2 Benchmarking(200个客户端)下显示的功耗表明,尽管使用Docker进行容器化会产生开销,但使用Docker容器仍可降低功耗。

为什么会这样?这种可靠性足以用于稍微降低IoT设备的功耗吗,还会有任何缺点吗?

评论

通过我阅读最后一页上的表格,您有一点倒退。 “ Docker”的功耗通常比“ Native”高。文本确实提到了性能上也存在差异(在表I的右下象限)的情况,大概是由于容器的网络瓶颈增加,这将导致处理器的活动性降低。

@delicateLatticeworkFever可能是这样,我正在查看“ 5000个请求”,“ 25000个请求”和“ 100000个请求”,其中功耗分别显示为“ -4.63%”,“-3.84%”和“ -5.29%” 。性能差异似乎确实是功率差异的可能原因,这可能值得一提。我的问题之一是,如果您对性能稍有下降感到满意,是否可以以此为代价进行折衷,因为这对我来说似乎是一个有趣的主意。

好吧,如果这是因为这5000个请求花费了更长的时间,那确实意味着以少于100%的速度执行事务意味着每个任务使用的能源更少。那可能是这个问题的一般形式,我可能会随意地说,这与通过散热而损失的能量有关。 (至少某些)处理器在达到极限时效率较低吗?很容易。在这种情况下,如果您希望获得好处,则可以在CPU受到一些节制的情况下运行测试,看看是否能产生相同的好处(它肯定会运行得更慢并且使用更少的功率)。请注意,在5W设备上,我不确定+/- <5%是否有意义。

请注意,在5W设备上,我不确定+/- <5%是否有意义。 -很好,但是,如果您大规模运行IoT设备,节能将变得更加重要(无论如何,这都是一个有趣的思想实验)。如果您想将自己的想法整理成一个答案,我认为您可以解决我提出的问题。

嗯,虽然不确定我的快速假设是否正确;乍一看,似乎关系是线性的:stackoverflow.com/questions/6128960 / ... ...该图的斜率<1,所以最大化处理器应该更有效。

#1 楼

经过进一步的调查,我认为问题在于,尽管降低了功率(能量传输率),但使用Docker却增加了总体能耗,因此在降低电费方面没有任何好处。

根据该论文的100,000个请求的数字,我们可以通过以下公式计算能源使用量:


能量=功率x时间


鉴于本机代码消耗了2.4893 W的功率,耗时约170秒(请参见图3,本机200),我们知道所使用的能量为:


2.4893 W * 170 s

= 423.181 Ws = 423.181 J(1瓦特秒等于焦耳,换句话说,瓦特是每秒的焦耳)


对于Docker代码,功耗为2.3642 W,但是花费的时间为220秒,因此:


2.3642 W * 220 s

/> = 520.124 Ws = 520.124 J


因此,该示例的整体能耗比以前提高了96.943 J,如果担心能耗,这显然是不可取的。但是,使用Docker确实具有部署和管理的其他优势,但是在严格受限的环境(例如仅电池)中,似乎最好避免使用它。