eduardogomescampos1 / test1_SFI2

Repository for setting up the stress test
0 stars 0 forks source link

Reports das experiências #2

Open eduardogomescampos1 opened 9 months ago

eduardogomescampos1 commented 9 months ago

Em primeiro momento, temos a hipótese que a disputa por recursos computacionais pode acarretar o aumento dp consumo de energia dos processos que disputam tais recursos. Para fazer tal avaliação, será utilizada a ferramenta "stress" a qual é capaz de gerar uma carga ao sistema (inicialmente, com foco no processador). Um experimento teste básico, sugere que tal hipótese é verdadeira.

image

Conforme é possível notar pela imagem, nos momentos em que há competição de recursos entre a parte principal e de background há um notório aumento de consumo desta. Tal hipótese será avaliada ao longo do experimento.

eduardogomescampos1 commented 9 months ago

Em primeiro momento, objetiva-se avaliar se o consumo da parte de background é constante durante todo o teste. Inicialmente, propôs-se uma carga constante durante 6 minutos, e os resultados são evidenciados na imagem a seguir:

image

Em primeiro momento, o consumo aparenta ser constante, mas um olhar mais criterioso evidencia que o consumo saiu de 5.15W para 5.76W (um aumento de aproximadamente 10%). Nesse caso, sugere-se a possibilidade do consumo do processo aumentar ao longo do tempo independentemente da competição. A fim de comprovar (ou falsear) essa hipótese, o teste será expandido para 30 minutos ao invés de 6 minutos.

eduardogomescampos1 commented 9 months ago

Ao executar a versão mais longa do teste, observou-se que os valores iniciais de potência representam os reais outliers. Durante praticamente todo o experimento, observou-se que a potência oscilou entre 5.62W e 5.85W, o que representa uma variação de apenas 5% e que independe do tempo (para 30 minutos).

image Imagem do teste

eduardogomescampos1 commented 9 months ago

Dessa vez executamos o mesmo teste anterior, mas adicionamos uma carga para concorrer pelos recursos. Ao final do experimento, novamente observou-se um aumento do consumo de energia, o que fortalece a hipótese incial.

image (Ignorar trecho roxo, foi resultado de um experimento malsucedido)

Na imagem, o primeiro trecho laranja representa a execução anterior do experimento. É notável como no segundo trecho laranja (em que há disputa por recursos) a potência é maior, oscilando entre 6.96W e 7.16W. Nesse caso, obteve-se um aumento relativo de aproximadamente 23%.

Obs: essa porcentagem foi obtida pela média dos valores máximo e mínimo de potência obtido após a estabilização do consumo e não é uma métrica adequada, é apenas para se obter uma noção de valores

eduardogomescampos1 commented 8 months ago

A fim de averiguar a funcionalidade da ferramenta experiment_manager.py proposta como forma de configuração e execução de experimentos, foi configurado um experimento de maior complexidade. Ele se resume a 10 iterações de um sub_experimento dividido em 3 etapas, configuradas da seguinte forma:

Parte 1: Ao lado de uma carga constante (constant_load executando a função sqrt()), uma carga oscilante (executando em 15 instâncias a função sync()) será executada.

Parte 2: Apenas a carga constante será executada

Parte 3: Ao lado de uma carga constante (constant_load executando a função sqrt()), uma carga oscilante (executando em 5 instâncias a função sync()) será executada.

A ideia principal é avaliar o efeito das cargas oscilantes sobre a carga constante em um espaço amostral mais relevante para que conclusões mais corretas possam ser tomadas. O script em python utilizado para a execução do experimento está disponível em https://github.com/Adnei/slicing_over_kubernetes/blob/main/experiment_manager.py.

Seguem algumas imagens da dashboard do Grafana compreendendo todo o experimento:

image 1- Consumo de energia do worker2 ao longo dos 10 ciclos do experimento

image Consumo de energia da carga constante ao longo dos 10 ciclos de experimento

image Consumo de CPU do worker2 ao longo dos 10 ciclos de experimento

image Consumo de CPU da carga constante ao longo dos 10 ciclos de experimento

Os próximos passos dos testes consistem em diversificar o leque de testes e exportar os arquivos do Grafana para que uma análise estatística mais adequada seja feita para a construção de um modelo entre energia e consumo de CPU.

eduardogomescampos1 commented 8 months ago

EM PRIMEIRO MOMENTO, a relação entre consumo de CPU e aumento do consumo de energia não parece ter um comportamento linear. Com isso, existe a possibilidade de tentar realizar um teste de regressão em parâmetros não lineares, vide exemplo:

image

Possivelmente (para haver uma formalização matemática mais correta da validade da regressão), deveremos fazer testes de hipótese manuais para dar validade à regressão utilizada. Entretanto, existem bibliotecas que permitem o fornecimento dos parâmetros adequados para a regressão, como no link: https://saturncloud.io/blog/nonlinear-regression-with-python-a-simple-method-to-fit-your-data-better/#fitting-nonlinear-regression-models-in-python.

eduardogomescampos1 commented 8 months ago

Link de repositório contando um template interessante para os testes estatísticos interessantes: https://github.com/leaot/statistics/blob/main/faithful.py e vídeo de explicação: https://www.youtube.com/watch?v=ePzwCGbt7dw

eduardogomescampos1 commented 8 months ago

A fim de tentar construir um modelo matemático que permitisse a estimação precisa do consumo de energia de um determinado processo em função da competição que este enfrenta pelos recursos, foi proposto um teste em que uma carga constante enfrentava, gradualmente, competições cada vez mais intensas por recursos. Nossa carga constante era uma instância executando a função sqrt(), ao passo que sua competição era entre 0-15 instâncias rodando a função sync() em caráter periódico (executa por 1 min, 'sleep' por 1 min). Inicialmente, é fundamental evidenciar um pressuposto básico, o que uma carga constante tem consumo constante, o que pode ser comprovado a seguir: image

O teste foi executado por 8 vezes e esses foram os resultados principais:

image Consumo de CPU do máquina analisada (worker2) ao longo de todo o experimento

image Consumo de CPU do processo constante ao longo de todo o experimento

image Potência consumida pela máquina analisada (worker2) ao longo de todo o experimento

image Potência consumida pelo processo constante ao longo de todo o experimento

Esse crescimento gradual das métricas está associada ao aumento gradativo da carga de competição pelos recursos. Após a obtenção dos dados, objetivou-se obter um modelo estatístico para a previsão de consumo de energia em função da competição. Nesse contexto, criou-se uma W(x), em que W(x) em que W é a potência em função de x (consumo da CPU por elementos competidores). Após uma plotagem dos pontos, foram propostas (empiricamente), funções que se adequavam aos dados obtidos. Por fim, optou-se pela raiz quarta, e a seguinte regressão foi obtida:

plot Regressão não linear obtida entre as grandezas

A estatística t calculada dessa regressão foi de 111.5, indicando um elevadíssimo grau de explicabilidade do comportamento da potência por meio dessa função. Dessa forma, para cargas de perfis constantes e de intensidade como proposta, é possível fazer previsões no tocante a seu consumo de energia em função do percentual de CPU sendo usada.

Além disso, também buscou-se entender o consumo de energia do computador em função de seu consumo de CPU. Ainda que a literatura (de forma geral) considere que essa relação tenha um caráter linear, nossos resultados sugerem que esse modelo não é o mais adequado para a descrição desse comportamento, como vide a seguir:

Inicialmente, decidimos propor que essa relação era linear, e obtivemos os seguintes resultados:

plot Proposição linear da relação entre grandezas

Com a execução desse teste, obtivemos que a estatística t calculada era de 57.13, o que, de fato, indica um ótimo grau de explicabilidade do comportamento por meio dessa função. Entretanto, especialmente para valores próximos de 0, era perceptível um considerável erro entre os valores medidos e os da reta.

Em razão disso, decidimos retomar o método de chutar raízes empiricamente e, dessa vez, a que apresentou melhores resultados foi a raiz cúbica, vide gráfico a seguir:

plot Proposição não-linear entre as grandezas

Dessa vez, a estatística t calculada retornou 85.12, indicando que esse modelo tem maior capacidade de explicar o comportamento entre as duas grandezas em comparação à associação linear entre elas.

Por fim, a fim de propor uma explicação para esse intrigante comportamento do consumo de energia do processo subir em função do fato de estar disputando recursos, levantou-se a possibilidade desse fato estar associado ao aumento da frequência do processador em situações de lidar com a disputa por recursos. Nesse contexto, foram obtidas as informações da frequência de CPU ao longo do teste:

image Frequência do processador imediatamente antes e durante todo o teste

Entretanto, rapidamente descobrimos que essas grandezas tem uma relação completamente desprezível:

plot3 Tentativa de regressão entre os dois parâmetros analisados

Nesse caso, facilmente observa-se como não existe uma interação entre essas grandezas.

Agora, objetiva-se transferir esse teste para outros nós (e assim verificar se o comportamento se mantém) e verificar se uma carga teste oscilante também possuirá o mesmo perfil de consumo (para validar o teste de uma carga constante para cargas mais complexas)

eduardogomescampos1 commented 8 months ago

Em seguida, executou-se um teste semelhante ao proposto anteriormente (uma carga analisada tendo seu consumo de energia avaliado no tocante a competição de recursos), mas, dessa vez, optou-se por utilizar uma carga que oscila com o tempo, a fim de validar a hipótese que, independente do perfil da carga, ela seguirá a tendência de respeitar aproximadamente o comportamento de uma função quadrática. Inicialmente, é importante salientar que esse novo teste adicionou uma nova variável, o consumo de CPU do processo de análise em si, portanto, o problema, teoricamente poderia ser graficado dessa forma: image

No entanto, afim de obter um resultado passível de ser comparado aos resultados anteriores, decidiu-se por realizar um "corte no gráfico" em "Consumo de CPU pelo processo"= 25%, reduzindo a dimensão do problema para 2, de modo a poder analisá-lo face às conclusões antecedentes.

Executado o teste, essa foi a regressão obtida foi: plot4

Novamente, a função mais adequada foi a raiz quarta, e, em comparação ao resultados anteriores, seus parâmetros A e B (de A + B*x^(1/4)) estão muito próximos (erros relativos de 4,2% e 3%, respectivamente). Portanto, em primeiro momento, existem evidências que corroboram a hipótese inicial.

OBS: NOSSO SISTEMA DE MONITORAMENTO SOFREU UMA PANE GRAVÍSSIMA DA MADRUGADA DO DIA 21/22 DE MARÇO, DE MODO QUE PERDEMOS DADOS IMPORTANTÍSSIMOS PARA ILUSTRAR NOSSAS CONCLUSÕES :(. EM FUNÇÃO DISSO, A PARTIR DESSE MOMENTO, A ANÁLISE SERÁ MAIS SIMPLÓRIA QUE O PLANEJADO

Também executamos um teste de progressão de carga (de 5% em 5%) sobre o worker1 para verificar se ele também tinha uma tendência de seguir o perfil de uma raiz cúbica. Entretanto, para nossa surpresa, o comportamento de seu consumo de energia em função do percentual de CPU sendo utilizado foi descrito de maneira mais adequada por meio de uma função linear, como indica a imagem a seguir: plot5

No entanto, é relevante ressaltar que esse teste foi executado sem haver uma disputa relevante por recursos, ou seja, o processo de análise (que crescia gradualmente) era o único a realmente gerar consumo ao host. Nesse contexto, levanta-se a hipótese de esse perfil de consumo (raiz quarta/cúbica) estar atrelado a disputa em si, ao invés de a um comportamento natural da máquina

eduardogomescampos1 commented 8 months ago

Dando continuidade às experiências, o próximo passo foi propor um experimento que se aproximasse mais da realidade. Nesse contexto, decidiu-se avaliar o consumo de energia de um processo constante em função da competição por CPU em uma máquina. Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. O teste foi executado tanto no worker1 como no worker2. Os resultados serão vistos separadamente.

WORKER1

Em primeiro momento, é fundamental evidenciar que a frequência do processador não causa qualquer tipo de efeito na análise, fato percebido pelo gráfico a seguir que demonstra como esse parâmetro é praticamente constante durante todo o teste: image

Ademais, também é relevante evidenciar que, para instantes de uso sem competição, o consumo de energia do processo é praticamente constante. image

Assim, seguem os resultados principais do teste: image image image image

A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: W1plot

Com a obtenção desses dados, é válido ressaltar algumas informações. Em primeiro momento, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, provavelmente em um cenário de tentativa do pŕoprio processadorde lidar com a elevada carga de trabalho sobre a qual ele foi submetido. Entretanto, com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. No tocante à regressão em si, após uma série de testes manuais, percebeu-se que o modelo linear era o mais adequado, visto que retornou os melhores valores para os testes estatísticos executados. Tal resultado apresentou-se como uma surpresa, visto que testes semelhantes anteriores no WORKER2 retornaram funções do tipo raiz.

WORKER2

Novamente, deve-se provar que a frequência do processador tem pouca influência no teste, visto que é praticamente constante: image

Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image image

Por fim, seguem os resultados principais do teste: image image image image

A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado:

W2plot

Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. Como nas últimas vezes em que o WORKER2 foi submetido a testes semelhantes, novamente a relação do gráfico foi melhor descrito por uma função do tipo raiz (dessa vez, a raiz quadrada se mostrou mais adequada). Nesse contexto, o formato do gráfico aparenta ser extremamente influenciado pelo hardware no qual o teste é executado, o que torna a análise do parâmetro carga do processador mais delicado. No entanto, visando simplicar o processo, tentou-se regredir linearmente os resultados do WORKER2 e os testes estatísticos resultantes indicaram um resultado satisfatório. Portanto, ainda que a explicabilidade seja menor do que utilizando uma função do tipo raiz, ainda é possível representar esse comportamento linearmente: W2plot2

eduardogomescampos1 commented 7 months ago

REPLICAÇÃO DO EXPERIMENTO NO WORKER3

A fim de prosseguir com as testagens do perfil de consumo de energia no tocante ao hardware, executou-se o exato mesmo experimento em um dos novos nós do cluster, o WORKER3. Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era constante durante todo o teste:

image

Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image

Por fim, seguem os principais resultados do teste: image image A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: W3plot Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. Para o WORKER3, o consumo de energia do processo em função da competição pelos recursos pode ser representada por uma função do tipo raiz da mesma forma que o WORKER2. Dessa forma, acredita-se que o hardware seja um aspecto primordial na definição do perfil do consumo de energia. Uma relevante hipótese é o fato de os workers 2 e 3 terem a mesma quantidade de cores em seu processador, de modo a levantar a possibilidade de o número de cores ser um fator determinante no perfil de consumo energético. Ainda assim, para fins de simplifação, é estatisticamente possível tomar essa relação como linear. Como vide a seguir: W3plotLinear A próxima etapa é avaliar o comportamento no worker4, o qual possui 6 cores. É de interesse observar qual será o comportamento da energia nesse caso

eduardogomescampos1 commented 7 months ago

A fim de prosseguir com as testagens do perfil de consumo de energia no tocante ao hardware, executou-se o exato mesmo experimento em um dos novos nós do cluster, o WORKER4. Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era constante durante todo o teste:

image

Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image Por fim, seguem os principais resultados do teste:

image image

A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: W4plot

Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 15% foi descartado na hora de efetuar a regressão. Para o WORKER4, o consumo de energia do processo em função da competição pelos recursos pode ser representada por uma função linear, tal como o WORKER1. É relevante mencionar que, diferentemente dos WORKERS1, 2 e 3, o W4 tem 6 núcleos em seu processador. Ainda assim, seu perfil de consumo de energia se aproximou do WORKER1, o qual possui 4 núcleos. Dessa forma, é evidente que o hardware possui um papel fundamental na definição do perfil energético de um determinado nó em um contexto de disputa por recursos.

eduardogomescampos1 commented 7 months ago

A fim de prosseguir com as testagens do perfil de consumo de energia no tocante ao hardware, executou-se o exato mesmo experimento em um dos novos nós do cluster, o WORKER5 (que possui 8 cores). Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era constante durante todo o teste: image Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image

Por fim, seguem os principais resultados do teste:

image image

A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado:

W5plot

Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. Para o WORKER5, o consumo de energia do processo em função da competição pelos recursos pode ser representada por uma função do tipo raiz da mesma forma que o WORKER2 e o WORKER3. Apesar de terem componentes completamente distintos, o fato de os processadores das 3 máquinas mencionadas possuírem o mesmo número de núcleos, aliado ao fato de a função que descreve o consumo de energia do processo das 3 ter erros baixos (no máximo 10% de diferença entre os respectivos coeficientes), dão um considerável indício de que o perfil da dissipação energética de uma máquina está atrelado ao número de cores em seu processador.

Ainda assim, para fins de simplificação, é estatisticamente possível tomar essa relação como linear, ainda que haja perda de precisão. Como vide a seguir: W5plotlinear

eduardogomescampos1 commented 6 months ago

Dando continuidade às experiências, decidiu-se, a fim de tentar correlacionar o número de cores de um processador à seu perfil de consumo de energia, utilizar 2 máquinas com 8 cores (W2 e W3) e limitá-los a 6 e 4 cores, respectivamente.

WORKER3 Para essa experiência foi proposto que esse computador tivesse 4 de seus 8 núcleos desativados para simular um computador de 4 cores. Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era constante durante todo o teste:
image Dando prosseguimento, é relevante mencionar que até tem um certo crescimento de uso de RAM ao longo do experimento, mas o valor é muito pequeno em comparação aos efeitos sobre o processador: image Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image Por fim, seguem os principais resultados do teste: image A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: 4coreW3plotlin Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. Nesse experimento, houve um favorecimento da proposta inicial de que o número de núcleos dos processadores está correlacionado ao perfil do consumo de energia da máquina. Tal fato se deve pois, assim como no W1 que já possuía nativamente apenas 4 núcleos, o W3 limitado a 4 núcleos teve o mesmo perfil de consumo de energia.

WORKER2 Para essa experiência foi proposto que esse computador tivesse 2 de seus 8 núcleos desativados para simular um computador de 6 cores, assim como o W4. Para esse teste, estipulou-se uma carga que consume aproximadamente 17% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era constante durante todo o teste:
image Dando prosseguimento, é relevante mencionar que até tem um certo crescimento de uso de RAM ao longo do experimento, mas o valor é muito pequeno em comparação aos efeitos sobre o processador: image Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image Por fim, seguem os principais resultados do teste: image A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: 6coreW2plotsqrt Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 15% foi descartado na hora de efetuar a regressão. Dessa vez, os resultados vão de encontro com o obtido em um computador nativamente de 6 núcleos (como o W4, que apresentou um comportamento extremamente linear). Dessa forma, pressupõe-se que ou 6 núcleos corresponde a uma "fase de transição" ou realmente outros componentes de hardware constituem fatores importantes na determinação do perfil energético da máquina.

eduardogomescampos1 commented 6 months ago

Dando continuidade às experiências, decidiu-se, a fim de tentar correlacionar o número de cores de um processador à seu perfil de consumo de energia, inverter o cenário proposto na experiência anterior. Utilizaremos novamente as 2 máquinas com 8 cores (W2 e W3) mas dessa vez elas serão limitadas a 4 e 6 cores, respectivamente. Além disso, o teste com 4 núcleos será replicado no W5 também (ele originalmente também possui 8 núcleos).

WORKER3

Para essa experiência foi proposto que esse computador tivesse 2 de seus 8 núcleos desativados para simular um computador de 6 cores, assim como o W4. Para esse teste, estipulou-se uma carga que consume aproximadamente 17% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era aproximadamente constante durante todo o teste: image Dando prosseguimento, é relevante mencionar que até tem um certo crescimento de uso de RAM ao longo do experimento, mas o valor é muito pequeno em comparação aos efeitos sobre o processador: image Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image Por fim, seguem os principais resultados do teste: image A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: 6coreW3plotsqrt

Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 15% foi descartado na hora de efetuar a regressão. Esses resultados são parcialmente diferentes dos obtidos ao rodar o experimento no W4, o qual retornou um perfil extremamente linear. Assim como a execução no W2 limitado a 6 núcleos, o perfil energético foi melhor representado por uma raiz. Entretanto, ao efetuar os testes estatísticos para validar a regressão efetuada, os parâmetros obtidos indicaram que, ainda que a função do tipo f(x) = a +b*sqrt(x) represente melhor os pontos obtidos do que uma função linear, essa diferença é menor do que quando se utilizavam 8 núcleos, fato que fortalece a teoria de que 6 núcleos é uma região de transição entre o comportamento da potência dissipada pela máquina.

WORKER2

Para essa experiência foi proposto que esse computador tivesse 4 de seus 8 núcleos desativados para simular um computador de 4 cores. Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era constante durante todo o teste: image Dando prosseguimento, é relevante mencionar que até tem um certo crescimento de uso de RAM ao longo do experimento, mas o valor é muito pequeno em comparação aos efeitos sobre o processador: image Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image Por fim, seguem os principais resultados do teste: image A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: 4coreW2plotlin Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. Nesse experimento, houve um favorecimento da proposta inicial de que o número de núcleos dos processadores está correlacionado ao perfil do consumo de energia da máquina. Tal fato se deve pois, assim como no W1 que já possuía nativamente apenas 4 núcleos, o W2 limitado a 4 núcleos teve o mesmo perfil de consumo de energia.

WORKER5

Para essa experiência foi proposto que esse computador tivesse 4 de seus 8 núcleos desativados para simular um computador de 4 cores. Para esse teste, estipulou-se uma carga que consume aproximadamente 25% de CPU e, para simular o instanciamento de VNFs na rede, eram criados pods que executavam uma carga que consumia em torno de 5% do processador. Nesse contexto, além da carga constante, surgiam, gradualmente, de 1 até 15 dessas cargas simuladoras de VNFs. Em primeiro lugar, verificou-se que a frequência do processador era praticamente constante durante todo o teste: image Dando prosseguimento, é relevante mencionar que até tem um certo crescimento de uso de RAM ao longo do experimento, mas o valor é muito pequeno em comparação aos efeitos sobre o processador: image Além disso, ressalta-se que, para contextos sem competição por recurso, o consumo de energia do processo é praticamente constante: image Por fim, seguem os principais resultados do teste: image A partir desses dados, foi obtida a regressão entre o consumo de energia do processo e o uso de CPU pela competição do processo analisado: 4coreW5plotlin Novamente, é perceptível pelo gráfico temporal de uso de CPU pelo processo que, conforme o processador aproximou-se de 100% de utilização, a utilização da CPU pelo processo analisado caiu, Com o objetivo de tentar estabelecer uma relação entre o consumo do processo "completo" (isto é, utilizando os recursos esperados), qualquer amostra em que o uso de processador do processo era inferior a 24% foi descartado na hora de efetuar a regressão. Mais uma vez, houve um favorecimento da proposta inicial de que o número de núcleos dos processadores está correlacionado ao perfil do consumo de energia da máquina. Tal fato se deve pois, assim como no W1 que já possuía nativamente apenas 4 núcleos, o W5 limitado a 4 núcleos teve o mesmo perfil de consumo de energia, da mesma forma que o W2 e o W3 em suas respectivas execuções.