Perché Docker riduce l'utilizzo di energia su un dispositivo Internet of Things in questo benchmark?


10

Sono stato interessato alle applicazioni di Docker su dispositivi IoT come Raspberry Pis.

Dopo aver letto A Performance Assessment of Container Technologies su Internet of Things Devices , sono rimasto leggermente confuso da uno dei risultati. Nella Tabella 1, il consumo di energia mostrato in Benchmarking di Apache 2 (200 client) mostra che l'uso di un contenitore Docker ha ridotto il consumo di energia, nonostante il sovraccarico della containerizzazione tramite Docker.

Perché succede? Questo è abbastanza affidabile da essere usato per ridurre leggermente il consumo energetico dei dispositivi IoT e ci sarebbero degli svantaggi?


1
Con la mia lettura dei tavoli nell'ultima pagina hai un po 'indietro. Il consumo energetico è per lo più superiore per "Docker" rispetto a "Nativo". Il testo fa riferimento a un caso in cui esiste anche una differenza di prestazioni (si trova nel quadrante in basso a destra della Tabella I), presumibilmente a causa di un maggiore collo di bottiglia della rete per il contenitore, che equivarrebbe a un processore meno attivo.
Riccioli d'oro

@delicateLatticework Forse anche così, sto esaminando "5000 richieste", "25000 richieste" e "100000 richieste" in cui viene mostrato che il consumo di energia è "-4,63%", "-3,84%" e "-5,29%" rispettivamente . La differenza di prestazioni sembra essere la causa probabile della differenza di potenza, che potrebbe valere la pena discutere in una risposta. Parte della mia domanda è se potresti sfruttarlo come un compromesso se fossi soddisfatto di prestazioni leggermente degradate, perché mi è sembrata un'idea interessante.
Aurora0001

1
Bene, se è perché quelle 5000 richieste hanno richiesto più tempo, significa che fare le cose a meno del 100% significa meno energia per attività utilizzata. Questa potrebbe essere la forma generale di questa domanda e come ipotesi casuale potrei dire che ha a che fare con l'energia persa attraverso la dissipazione del calore. (Almeno alcuni) i processori sono meno efficienti al massimo? Potrebbe essere facilmente. In tal caso, se si desidera il vantaggio, è possibile eseguire i test con la CPU un po 'ridotta e vedere se questo produce lo stesso vantaggio (funzionerà sicuramente più lentamente e consumerà meno energia). Nota su un dispositivo da 5 W non sono sicuro che +/- <5% sia significativo.
Riccioli d'oro

Note on a 5W device I'm not sure if +/- <5% is meaningful.- è un buon punto, ma se si eseguono dispositivi IoT su larga scala, i risparmi energetici diventano più significativi (ed è comunque un interessante esperimento mentale). Se vuoi mettere insieme i tuoi pensieri in una risposta, penso che saresti perfetto per affrontare le domande che ho sollevato.
Aurora0001

1
Hmmm, non sono così sicuro che la mia rapida ipotesi sia corretta; dando un'occhiata a questo sembra che la relazione sia lineare: stackoverflow.com/questions/6128960/… ... e la pendenza su quel grafico è <1, quindi un processore al massimo dovrebbe essere più efficiente.
Riccioli d'oro

Risposte:


7

Dopo alcune ulteriori indagini, penso che il problema nella questione sia che, sebbene la potenza (velocità del trasferimento di energia) sia stata ridotta, il consumo complessivo di energia è stato aumentato utilizzando Docker, quindi non ci sono benefici in termini di riduzione dei costi dell'elettricità.

Sulla base delle cifre del documento per 100.000 richieste, possiamo calcolare il consumo di energia attraverso la formula:

Energia = potenza x tempo

Dato che il codice nativo consumava 2.4893 W di potenza e impiegava circa 170 secondi (vedi Figura 3, Nativo 200), sappiamo che l'energia utilizzata era:

2.4893 O * 170 s

= 423.181 Ws = 423.181 J (1 watt-secondo equivale a un joule o, in altre parole, un watt è un joule al secondo)

Per il codice Docker, il consumo di energia è stato di 2.3642 W, ma il tempo impiegato è stato di 220 secondi, quindi:

2.3642 W * 220 s

= 520.124 Ws = 520.124 J

Quindi, il consumo complessivo di energia per l'esempio era superiore di 96.943 J, il che è chiaramente indesiderabile se il consumo di energia è un problema. Tuttavia, l'utilizzo di Docker presenta altri vantaggi per la distribuzione e la gestione, ma in ambienti strettamente limitati (ad esempio solo batteria), sembrerebbe che sia meglio evitarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.