¿Por qué Docker reduce el consumo de energía en un dispositivo de Internet de las cosas en este punto de referencia?

10

Me han interesado las aplicaciones de Docker en dispositivos IoT como Raspberry Pis.

Después de leer Una evaluación de rendimiento de tecnologías de contenedores en dispositivos de Internet de las cosas , uno de los resultados me confundió un poco. En la Tabla 1, el consumo de energía que se muestra en Apache 2 Benchmarking (200 clientes) muestra que el uso de un contenedor Docker reduce el consumo de energía, a pesar de la sobrecarga de la contenedorización con Docker.

¿Por qué ocurre esto? ¿Es esto lo suficientemente confiable como para usarse para reducir ligeramente el consumo de energía de los dispositivos IoT, y habría algún inconveniente?

Aurora0001
fuente
1
Por mi lectura de las tablas en la última página lo tienes un poco hacia atrás. El consumo de energía es mayor para "Docker" que para "Native". El texto hace referencia a un caso en el que también hay una diferencia de rendimiento (está en el cuadrante inferior derecho de la Tabla I), presumiblemente debido a un mayor cuello de botella de red para el contenedor, lo que equivaldría a un procesador menos activo.
Ricitos
@delicateLatticeworkSiempre que sea así, estoy viendo "5000 solicitudes", "25000 solicitudes" y "100000 solicitudes" donde el uso de energía se muestra como "-4.63%", "-3.84%" y "-5.29%" respectivamente . La diferencia de rendimiento parece ser la causa probable de la diferencia de potencia, lo que podría valer la pena discutir en una respuesta. Parte de mi pregunta es si podría explotar eso como una compensación si estuviera contento con un rendimiento ligeramente degradado, porque me pareció una idea interesante.
Aurora0001
1
Bueno, si es porque esas 5000 solicitudes tomaron más tiempo, implica hacer cosas a menos del 100% significa menos energía por tarea utilizada. Esa podría ser la forma general de esta pregunta y, como una suposición casual, podría decir que tiene que ver con la energía perdida por la disipación de calor. ¿Son (al menos algunos) procesadores menos eficientes cuando están al máximo? Podría ser fácilmente. En ese caso, si desea el beneficio, puede ejecutar pruebas con la CPU acelerada un poco y ver si eso produce la misma ventaja (definitivamente funcionará más lento y usará menos energía). Nota sobre un dispositivo de 5W No estoy seguro si +/- <5% es significativo.
Ricitos
Note on a 5W device I'm not sure if +/- <5% is meaningful.- ese es un buen punto, pero si ejecuta dispositivos IoT a escala, el ahorro de energía se vuelve más significativo (y es un experimento de pensamiento interesante independientemente). Si desea cotejar sus pensamientos en una respuesta, creo que sería acertado al abordar las preguntas que planteé.
Aurora0001
1
Hmmm, aunque no estoy tan seguro de que mi hipótesis rápida sea correcta; Mirando esto, parece que la relación es lineal: stackoverflow.com/questions/6128960/… ... y la pendiente en ese gráfico es <1, por lo que un procesador maximizado debería ser más eficiente.
Ricitos

Respuestas:

7

Después de una investigación adicional, creo que el problema en la pregunta es que, aunque la potencia (tasa de transferencia de energía) se redujo, el consumo general de energía se incrementó utilizando Docker, por lo que no hay ningún beneficio en términos de costos de electricidad reducidos.

Con base en las cifras del documento para 100,000 solicitudes, podemos calcular el uso de energía a través de la fórmula:

Energía = potencia x tiempo

Dado que el código nativo consumió 2.4893 W de potencia y tomó aproximadamente 170 segundos (ver Figura 3, Native 200), sabemos que la energía utilizada fue:

2,4983 W * 170 s

= 423.181 Ws = 423.181 J (1 vatio-segundo es equivalente a un julio, o, en otras palabras, un vatio es un julio por segundo)

Para el código Docker, el consumo de energía fue de 2.3642 W, pero el tiempo necesario fue de 220 segundos, por lo que:

2.3642 W * 220 s

= 520.124 Ws = 520.124 J

Por lo tanto, el uso total de energía para el ejemplo fue 96.943 J más alto, lo cual es claramente indeseable si el uso de energía es una preocupación. Sin embargo, el uso de Docker tiene otras ventajas para la implementación y la administración, pero en entornos muy restringidos (por ejemplo, solo con batería), parece que es mejor evitarlo.

Aurora0001
fuente