Por que o Docker reduz o uso de energia em um dispositivo Internet of Things neste benchmark?

10

Eu tenho interesse nos aplicativos do Docker em dispositivos IoT, como Raspberry Pis.

Depois de ler Uma avaliação de desempenho de tecnologias de contêiner em dispositivos da Internet das Coisas , fiquei um pouco confuso com um dos resultados. Na Tabela 1, o consumo de energia mostrado em Apache 2 Benchmarking (200 clientes) mostra que o uso de um contêiner do Docker reduziu o consumo de energia, apesar da sobrecarga da contêiner usando o Docker.

Por que isso ocorre? Isso é confiável o suficiente para ser usado para reduzir levemente o consumo de energia dos dispositivos IoT e haveria algumas desvantagens?

Aurora0001
fonte
11
Pela minha leitura das tabelas da última página, você percebe isso um pouco para trás. O consumo de energia é maior no "Docker" do que no "nativo". O texto se refere a um caso em que também há uma diferença de desempenho (está no quadrante inferior direito da Tabela I), presumivelmente por causa de um gargalo de rede aumentado para o contêiner, o que equivaleria a um processador menos ativo.
Goldilocks
@delicateLatticeworkFever, talvez, esteja analisando "5000 solicitações", "25000 solicitações" e "100000 solicitações" em que o uso de energia é mostrado como "-4,63%", "-3,84%" e "-5,29%", respectivamente . A diferença de desempenho parece ser a causa provável da diferença de poder, que pode valer a pena discutir em uma resposta. Parte da minha pergunta é se você poderia explorar isso como uma troca se estivesse feliz com um desempenho ligeiramente degradado, porque me pareceu uma ideia interessante.
Aurora0001
11
Bem, se é porque essas 5.000 solicitações demoraram mais tempo, isso implica fazer menos de 100% significa menos energia por tarefa usada. Essa pode ser a forma geral desta questão e, como um palpite casual, posso dizer que tem a ver com a energia perdida pela dissipação de calor. (Pelo menos alguns) processadores são menos eficientes quando atingidos o limite máximo? Poderia ser facilmente. Nesse caso, se você quiser o benefício, poderá executar testes com a CPU otimizada um pouco e ver se isso gera a mesma vantagem (definitivamente será mais lento e consumirá menos energia). Nota em um dispositivo de 5W, não tenho certeza se +/- <5% é significativo.
achou
Note on a 5W device I'm not sure if +/- <5% is meaningful.- esse é um bom ponto, mas se você executar dispositivos de IoT em escala, a economia de energia se tornará mais significativa (e é um experimento interessante, independentemente). Se você deseja agrupar seus pensamentos em uma resposta, acho que seria o melhor lugar para resolver as questões que levantei.
Aurora0001
11
Hmmm, não tenho tanta certeza de que minha hipótese rápida esteja correta; olhando para isso, parece que o relacionamento é linear: stackoverflow.com/questions/6128960/… ... e a inclinação nesse gráfico é <1, portanto, um processador com limite máximo deve ser mais eficiente.
Goldilocks

Respostas:

7

Após algumas investigações, acho que o problema na pergunta é que, embora a energia (taxa de transferência de energia) tenha sido reduzida, o consumo total de energia foi aumentado usando o Docker, portanto, não há benefício em termos de custos reduzidos de eletricidade.

Com base nos números do artigo para 100.000 solicitações, podemos calcular o uso de energia através da fórmula:

Energia = potência x tempo

Dado que o código nativo consumiu 2.4893 W de energia e levou aproximadamente 170 segundos (consulte a Figura 3, Native 200), sabemos que a energia usada era:

2,4893 W * 170 s

= 423,181 Ws = 423,181 J (1 watt-segundo é equivalente a um joule ou, em outras palavras, um watt é um joule por segundo)

Para o código do Docker, o uso de energia foi de 2,3642 W, mas o tempo gasto foi de 220 segundos, portanto:

2,3642 W * 220 s

= 520.124 Ws = 520.124 J

Portanto, o uso geral de energia para o exemplo foi 96.943 J mais alto, o que é claramente indesejável se o uso de energia for uma preocupação. No entanto, o uso do Docker tem outras vantagens para implantação e gerenciamento, mas em ambientes altamente restritos (por exemplo, apenas bateria), parece que é melhor evitar.

Aurora0001
fonte