为什么在此基准测试中Docker降低了物联网设备的功耗?


10

我一直对Docker在Raspberry Pis等物联网设备上的应用感兴趣。

在阅读了《物联网设备上的容器技术的性能评估》之后,我对其中一个结果感到有些困惑。在表1中,Apache 2 Benchmarking(200个客户端)下显示的功耗显示,尽管使用Docker进行容器化会产生开销,但使用Docker容器仍可降低功耗。

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


1
通过我阅读最后一页上的表格,您有一点倒退。功耗主要是较高的“泊坞窗”比“原生”。文本确实提到了性能也存在差异(在表I的右下象限中)的情况,大概是由于容器的网络瓶颈增加,这将导致处理器的活动减少。
goldilocks 2016年

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

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

Note on a 5W device I'm not sure if +/- <5% is meaningful.-很好,但是,如果您大规模运行IoT设备,则节能将变得更加重要(无论如何,这都是一个有趣的思想实验)。如果您想将自己的想法整理成一个答案,那么我认为您可以解决我提出的问题。
Aurora0001

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

Answers:


7

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

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

能量=功率x时间

假定本机代码消耗了2.4893 W的功率,并且花费了大约170秒(请参见图3,本机200),我们知道所使用的能量为:

2.4893瓦* 170秒

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

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

2.3642瓦* 220秒

= 520.124 Ws = 520.124 J

因此,该示例的总能量使用量比96.943 J高,如果考虑到能量使用量,这显然是不希望的。但是,使用Docker确实具有部署和管理的其他优势,但是在严格受限的环境中(例如,仅使用电池),似乎最好避免这样做。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.