Análise da LLM GPT2

Introdução

Buscando garantir a confiabilidade de sistemas críticos através de testes realizados em ambientes controlados, esta é uma análise da performance do ‘LLM GPT-2’ em busca de indícios de envelhecimento do software. Através da comparação de gráficos elaborados ao longo de um período de tempo, será analisado o comportamento padrão a fim de construir relações a partir dos resultados obtidos. Dessa forma, este projeto será apresentado na seguinte ordem: Pacotes Utilizados: descreve os pacotes utilizados durante o desenvolvimento do projeto; Dados e sua Preparação: apresenta as informações básicas dos dados, como suas colunas, e descreve sua preparação; Análise Exploratória: a partir dos dados obtidos, serão realizadas análises e gerados gráficos para visualização; Conclusão: apresentará as conclusões obtidas por meio das análises e propostas futuras.

Pacotes Requeridos

Filtro de dados

  • dplyr

Exibição de tabelas

  • DT

Dados e preparação

Os dados consistem em duas tabelas, geradas durante o envio de requisições UDP de client mobile para um servidor desktop, pra este projeto foram realizadas duas capturas uma com o intervalo de 5 segundos e outra com o intervalo de 1 segundo. A primeira tabela se refere as informações de status do sistema, como memória e uso de CPU, a segunda tabela se refere aos processos gerados durante os testes.

Colunas da tabela de status
  • currentTime
  • totalCpuUsage
  • totalMemory
  • availableMemory
  • usedMemory
  • percentageMemory
  • buffersMemory
  • cachedMemory
  • totalSwap
  • freeSwap
  • usedSwap
  • percentageSwap
  • totalPartition
  • usedPartition
  • freePartition
  • percentagePartition
  • total_IO_read
  • total_IO_write
Tabela de Processos
Função criada pra conversão de dado para csv
  fileCleaning <- function(fileName) {
    # lendo o arquivo informado
    processesgpt2 <- readLines(fileName)
    # separando cada linha do arquivo por espaços em branco
    processesgpt2 <- gsub("\\s+", " ", processesgpt2)
    # o comando que gera os arquivos insere um cabeçalho para cada registro, então é necessárido detecatalo através das string 'USER' e retiralos do comando exceto pelo primeiro
    processesgpt2 <- processesgpt2[-grep(pattern = "USER", processesgpt2)[-1]]
  
    # iteração por cada elemento para limpeza de cada linha
    for (i in 1:length(processesgpt2)) {
      # listando os elementos separados por espaco em um vetor
      vetor <- unlist(strsplit(processesgpt2[i], " "))
      # unindo os seis primeiros elementos que, pois nao sao separados por espaco
      string1 <- paste(vetor[1:6], collapse = ",")
      # o ultimo elemento representa o comando utilizado para inicializar o processo, entap é necessário uni-lo em apenas uma string, alem de manter os espacos contidos anteriormente 
      string2 <- paste(",\"",paste(vetor[7:length(vetor)], collapse = " "),"\"", sep = "")
      # união das duas strings geradas
      processesgpt2[i] <- paste(string1,string2,sep="")
    }
    
    # ajustando o cabeacalho
    processesgpt2[1] <- "CURRENT_TIME,USER,PID,VSZ,RSS,MEM,COMMAND"
    # removendo a extensao .txt do arquivo
    fileName <- unlist(strsplit(fileName, ".txt"))
    # adicionando .csv como extensao do arquivo 
    file_path <- paste("C:\\Users\\chas\\Documents\\GitHub\\dataAnalysisExercises\\project\\",fileName,"_clean.csv", sep="")
    writeLines(processesgpt2, con = file_path)
  }

Análise exploratória dos dados

Intervalo de requisição de 1 segundos

Intervalo de requisição de 5 segundos

Conclusão