Você está na página 1de 30

UNIVERSIDADE

 FEDERAL  DE  SÃO  CARLOS


CENTRO  DE  CIÊNCIAS  EXATAS  E  DE  TECNOLOGIA
DEPARTAMENTO  DE  COMPUTAÇÃO

Tópicos  em  informática  4  -­


Avaliação  de  Desempenho  de  Sistemas  de  
Computação

Trabalho  1  -­  Teste  de  stress  de  CPU,  memória  e  I/O

Professor:    Dr.  Cesar  A.  C.  Marcondes

Integrantes:    Arnaldo  Mendonça  Filho        R.A.:  277851

Pedro  Henrique  Braga  Siqueira      264512

Rafael  Cerqueira  Campos                            264440

Victor  Haberkorn  Gomes                              277975

1
Introdução! 4
Materiais e Métodos! 4
Hardware! 4

Software! 4
Stress! 4

Monitoração do sistema! 5
iostat! 5

vmstat! 5

Metodologia ! 5

Análise gráfica ! 6

Resultados e conclusões! 6
Graficos 2D! 6
Utilização de Disco X stress de CPU! 6

Utilização de Disco X stress de IO! 7

Utilização de Disco X stress de memória! 8

Utilização de CPU X stress de CPU! 9

Utilização de CPU X stress de IO! 10

Utilização de CPU X stress de memória! 11

Trocas de contexto X stress de CPU! 12

Trocas de contexto X stress de IO! 13

Trocas de contexto o X stress de memória! 14

Interrupções X stress de CPU! 15

Interrupções X stress de IO! 16

Interrupções X stress de memória! 17

Graficos 3D! 18
Utilização de disco x stress de CPU x stress de IO! 19

2
Utilização de CPU x stress de CPU x stress de IO! 20

Trocas de contexto x stress de CPU x stress de IO! 21

Interrupções x stress de CPU x stress de IO! 22

Apêndice! 23
scripts! 23
A-) tdesempenho.sh! 23

B-) cleaniostat.sh! 28

C-) cleanmpstat.sh! 29

D-) cleanvmstat.sh! 29

E-)fixstats.sh! 30

Referências Bibliográficas! 30

3
Introdução
 
O  primeiro  projeto  da  disciplina  de  análise  de  desempenho  de  sistemas  de  computação  
consiste  em  medir  o  desempenho  de  CPU,  memória  e  entrada/saída(disco)  e  gerar  
gráZicos  e  medidas  probabilísticas.  
Foi  sugerido  pelo  professor  utilizar  o  Linux  como  sistema  operacional  ,sobre  um  
hardware  qualquer,  para  coletar  os  dados  de  5  em  5  segundos.  Esse  dados  consistem  em  
utilização  da  CPU,vazão  de  discos,  numero  de  interrupções  por  segundo,  quantidade  de  
memória  utilizada  e  variação  do  uso  da  memória  em  intervalos.
Primeiramente,  devemos  executar  os  testes  de  stress  individuais,  ou  seja,  somente  stress  
de  CPU,  depois  somente  stress  de  I/O  e  depois  somente  stress  de  memória.
Numa  segunda  parte  devemos  combinar  stress  de  CPU  e  I/O.
Após  esses  dados  serem  coletados  devemos  plotar  gráZicos.  Para  executar  essas  
operações  o  professor  indicou  ferramentas  estatísticas  como  o  “GNUPlot”  e  o  “R”.
   

Materiais  e  Métodos
Hardware
Para  executar  os  testes  utilizamos  um  MacBook  com  a  conZiguração:    

 Nome  do  Modelo:  MacBook


 IdentiZicador  do  Modelo:  MacBook5,2
 Nome  do  Processador:  Intel  Core  2  Duo
 Velocidade  do  Processador:  2.13  GHz
 Número  de  Processadores:  1
 Número  Total  de  Núcleos:  2
 Cache  de  L2:  3  MB
 Memória:  2  GB
 Velocidade  do  Bus:  1.07  GHz
 Versão  da  ROM  de  Inicialização:  MB52.0088.B05            

Software
Instalamos  o  Ubuntu  v9.10  em  uma  maquina  virtual  VMWare  2.0.  Foram  dedicados  para  
esta  máquina  virtual  um  núcleo  do  processador  e  1024MB  de  memória  RAM.

Stress

O  programa  stress  é  uma  ferramenta  utilizada  para  carregar  o  sistema  de  modo  a  
possibilitar  testes  de  desempenho.  Está  ferramenta  sozinha  não  pode  ser  considerada  
um  benchmark  pois  ele  não  gera  relatórios  comparativos  do  sistema,  para  tanto  nos  
utilizamos  de  comandos  descritos  na  próxima  seção.

4
Para  rodar  este  programa,  a  seguinte  sintaxe  foi  utilizada,
               stress  [OPTION[ARG]]
Nos  nossos  testes,  utilizamos  as  seguintes  opções:
               -­‐-­‐cpu  N                dispara  N  processos  rodando  sqrt(),  dessa  forma  haverá  carga  da  CPU  
pois  apenas  cálculos  são  utilizados.
               -­‐-­‐hdd  N                dispara  N  processos  rodando  write()/unlink()  para  gerar  utilização  do  
disco
               -­‐-­‐vm  N                  dispara  N  processos  rodando  malloc()/free(),  permitindo  se  testar  a  
velocidade  de  alocacao  de  memória.
               -­‐-­‐timeout        timeout  deve  ser  seguido  pela  quantidade  de  tempo  (seguida  da  
unidade)  que  se  deseja  permitir  que  o  stress  rode.
Um  exemplo  de  utilização  do  stress  pode  ser  visto  a  seguir:
                                       stress  -­‐-­‐cpu  5  -­‐-­‐hdd  5  -­‐-­‐timeout  10s
neste  caso,  disparamos  5  processos  para  carregar  a  CPU  e  5  processos  para  carregar  o  
disco  durante  10  segundos.

Monitoração do sistema
Para  coletarmos  os  dados  utilizamos  os  comandos  ,sugeridos  pelo  professor,    iostat,  
vmstat  e  mpstat.

iostat

monitora  o  uso  da  CPU  em  nível  de  usuário  através  da  coluna  %user,  uso  da  CPU  em  
nivel  de  sistema  através  da  coluna  %system,  o  tempo  que  a  CPU  Zicou  esperando  por  
uma  entrada  ou  saida  de  disco  atraves  em  %iowait  e  outras  leituras.  

vmstat

Comando  vmstat  que  monitora  o  numero  de  processos  esperando  para  rodar  na  coluna  
%r,  numero  de  processos  em  sleep  ininterrompivel  em  %b,  a  quantidade  de  memoria  
virtual  utilizada  na  coluna  %swpd,  quantidade  de  memoria  ociosa  em  %free,  quantidade  
de  memria  utilizada  como  buffer  em  %buff,  quantidade  de  memoria  utilizada  como  
cache  em  %cache,  quantidade  de  memoria  recuperada  do  disco  em  %si,  quantidade  de  
memoria  jogada  no  disco  em  %so,  blocos  recebidos  de  um  dispositivo  de  blocos  em  %bi,  
blocos  enviados  para  um  dispositivo  de  blocos  em  %bo,  numero  de  interrupções  por  
segundo  em  %in,  numero  de  troca  de  contexto  em  %cs,  tempo  gasto  rodando  aplicações  
do  usuario  em  %us,  tempo  gasto  rodando  aplicações  do  sistema(  kernel  code)  em  %sy,  
tempo  em  que  a  CPU  Zicou  ociosa  em  %id  e  o  tempo  gasto  esperando  por  entrada/saida  
em  %wa.

Metodologia
             Foram  utilizados  scripts  que  auxiliaram  nos  testes.  Eles  serviram  para  automatizar  o  
teste  ao  fazer  a  coleta,  o  tratamento  e  também  foram  usados  para  auxiliar-­‐nos  a  plotar  os  
gráZicos  pertinentes  a  analise  de  desempenho  em  questão.

               Os  scripts  podem  ser  vistos  no  apêndice.

5
Análise gráfica
Para  plotarmos  os  gráZicos  utilizamos  o  “R”  e  o  “GNUPlot”  rodando  sobre  o  Mac  OS  X  
v10.6.3.

Resultados  e  conclusões
Graficos 2D
Segue  o  codigo  utilizado  no  software  R  e  os  respectivos  gráZicos,  de  acordo  com  os  dados  
coletados.  Note  que  a  escala  do  eixo  y  não  é  Zixa  para  um  melhor  detalhamento  dos  
dados.

Utilização de Disco X stress de CPU

iostatCPU1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU1.txt")
iostatCPU2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU2.txt")
iostatCPU5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU5.txt")
iostatCPU10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU10.txt")
x<-­‐c(mean(iostatCPU1$V4),mean(iostatCPU2$V4),mean(iostatCPU5$V4),mean
(iostatCPU10$V4))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("iostatCPU1",  "iostatCPU2",  "iostatCPU5",  "iostatCPU10"))
axis(2)
title(main=  "Uso  de  disco  estressando  CPU",xlab="fator  de  stress",ylab="uso  de  disco
(%)")

Como  podemos  perceber  pelo  


gráZico,  o  uso  do  disco  não  é  
signiZicativo  durante  os  testes  
sobre  a  CPU,  além  de  que  os  
dados  não  seguem  um  padrão  
de  acordo  com  a  variação  do  
número  de  processos.  
Portanto  concluímos  que  não  
há  relação  entre  uso  do  disco  
e  o  stress  da  CPU.

6
Utilização de Disco X stress de IO

iostatIO1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO1.txt")
iostatIO2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO2.txt")
iostatIO5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO5.txt")
iostatIO10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO10.txt")
x<-­‐c(mean(iostatIO1$V4),mean(iostatIO2$V4),mean(iostatIO5$V4),mean
(iostatIO10$V4))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("iostatIO1",  "iostatIO2",  "iostatIO5",  "iostatIO10"))
axis(2)
title(main=  "Uso  de  disco  estressando  IO",xlab="fator  de  stress",ylab="uso  de  disco(%)")

A  partir  do  gráZico,  podemos  notar  a  clara  relação  entre  IO  e  uso  do  disco,  além  
disso,  notamos  que,  para  o  nosso  sistema,  o  ápice  foi  atingido  muito  cedo  (com  5  
processos  escrevendo  no  disco)  logo,  ao  utilizar  10  processos  estes  5  a  mais  foram  
bloqueados  por  não  poder  escrever  no  disco.

7
Utilização de Disco X stress de memória

iostatMB1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatMB1.txt")
iostatMB2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatMB2.txt")
iostatMB5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatMB5.txt")
iostatMB10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU10.txt")
x<-­‐c(mean(iostatMB1$V4),mean(iostatMB2$V4),mean(iostatMB5$V4),mean
(iostatMB10$V4))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("iostatMB1",  "iostatMB2",  "iostatMB5",  "iostatMB10"))
axis(2)
title(main=  "Uso  de  disco  estressando  memoria",xlab="fator  de  stress",ylab="uso  de  
disco(%)")

Embora  exista  um  padrão  no  gráZico,  notamos  que  o  uso  de  disco  é  insigniZicante,  além  
de  ser  contra  o  senso  comum,  uma  vez  que  o  uso  esta  diminuindo  com  o  aumento  do  
número  de  processos.  Novamente,  concluímos  que  não  há  uma  relação  entre  o  uso  do  
disco  com  o  stress  de  memória.

                                                                                                                               

8
Utilização de CPU X stress de CPU

iostatCPU1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU1.txt")
iostatCPU2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU2.txt")
iostatCPU5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU5.txt")
iostatCPU10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU10.txt")
x<-­‐c(mean(iostatCPU1$V1),mean(iostatCPU2$V1),mean(iostatCPU5$V1),mean
(iostatCPU10$V1))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("iostatCPU1",  "iostatCPU2",  "iostatCPU5",  "iostatCPU10"))
axis(2)
title(main=  "Uso  de  CPU  estressando  CPU",xlab="fator  de  stress",ylab="uso  de  CPU(%)")

O  gráZico  segue  um  padrão  que  indica  o  aumento  da  atividade  da  CPU  com  o  aumento  de  
processos  disparados  pelo  stress,  porém  ao  tentarmos  rodar  10  processos  notamos  uma  
pequena  queda  na  utilização  da  CPU.  Isto  provavelmente  se  deve  ao  limite  de  carga  da  
CPU  ter  sido  atingido,  fazendo  com  que  o  SO  mate  alguns  dos  processos  que  estão  na  Zila.  
Devemos  lembrar  que  foi  utilizada  a  média  das  medições,  logo  ao  termos  muitos  
processos  sendo  Zinalizados  isso  será  mais  aparente  no  gráZico.
                                                                                                               

9
Utilização de CPU X stress de IO

iostatIO1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO1.txt")
iostatIO2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO2.txt")
iostatIO5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO5.txt")
iostatIO10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatIO10.txt")
x<-­‐c(mean(iostatIO1$V1),mean(iostatIO2$V1),mean(iostatIO5$V1),mean
(iostatIO10$V1))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("iostatIO1",  "iostatIO2",  "iostatIO5",  "iostatIO10"))
axis(2)
title(main=  "Uso  da  CPU  estressando  IO",xlab="fator  de  stress",ylab="uso  de  CPU(%)")

O  gráZico  mostra  que  quanto  maior  o  número  de  processos  fazendo  IO,  menor  a  
utilização  da  CPU.  Uma  possível  explicação  para  este  fato  é  que  enquanto  o  processo  está  
fazendo  IO  a  CPU  Zica  em  idle  a  espera  do  Zim  desse  IO.

10
Utilização de CPU X stress de memória

iostatMB1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatMB1.txt")
iostatMB2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatMB2.txt")
iostatMB5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatMB5.txt")
iostatMB10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/iostatCPU10.txt")
x<-­‐c(mean(iostatMB1$V1),mean(iostatMB2$V1),mean(iostatMB5$V1),mean
(iostatMB10$V1))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("iostatMB1",  "iostatMB2",  "iostatMB5",  "iostatMB10"))
axis(2)
title(main=  "Uso  de  CPU  estressando  memoria",xlab="fator  de  stress",ylab="uso  de  CPU
(%)")

                                               

O  gráZico  indica  uma  relação  de  dependência  entre  memória  e  CPU.  Podemos  notar  que  o  
uso  da  CPU  aumenta  de  acordo  com  o  aumento  da  utilização  da  memória,  porém  ao  
utilizar  10  processos  temos  uma  queda  brusca  no  uso  da  CPU.  Uma  possível  explicação  é  
que  o  SO  não  conseguiu  alocar  mais  memória  para  os  novos  processos,  portanto  eles  não  
conseguiram  rodar  e,  por  consequência,  diminuíram  a  carga  na  CPU.

11
Trocas de contexto X stress de CPU

vmstatCPU1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU1.txt")
vmstatCPU2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU2.txt")
vmstatCPU5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU5.txt")
vmstatCPU10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU10.txt")
x<-­‐c(mean(vmstatCPU1$V12),mean(vmstatCPU2$V12),mean(vmstatCPU5$V12),mean
(vmstatCPU10$V12))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("vmstatCPU1",  "vmstatCPU2",  "vmstatCPU5",  "vmstatCPU10"))
axis(2)
title(main=  "trocas  de  contexto  estressando  memoria",xlab="fator  de  stress",ylab="nro  
de  trocas  de  contexto")

                 

Podemos  perceber  pelo  gráZico  que  quanto  maior  o  número  de  processos  disparados  
pelo  stress,  maior  o  número  de  trocas  de  contexto.  Isto  acontece  porque,  ao  se  criar  mais  
processos,  o  SO  necessita  fazer  mais  trocas  de  contexto  para  permitir  que  todos  rodem  
por  um  certo  tempo                                                                                      

12
Trocas de contexto X stress de IO

vmstatIO1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO1.txt")
vmstatIO2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO2.txt")
vmstatIO5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO5.txt")
vmstatIO10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO10.txt")
x<-­‐c(mean(vmstatIO1$V12),mean(vmstatIO2$V12),mean(vmstatIO5$V12),mean
(vmstatIO10$V12))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("vmstatIO1",  "vmstatIO2",  "vmstatIO5",  "vmstatIO10"))
axis(2)
title(main=  "trocas  de  contexto  estressando  IO",xlab="fator  de  stress",ylab="nro  de  
trocas  de  contexto")

             

O  gráZico  tem  um  comportamento  semelhante  ao  anterior,  e,  novamente,  a  explicação  se  
deve  ao  fato  de  que  mais  processos  criados  afetam  a  troca  de  contexto.  
                           

13
Trocas de contexto o X stress de memória

vmstatMB1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB1.txt")
vmstatMB2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB2.txt")
vmstatMB5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB5.txt")
vmstatMB10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB10.txt")
x<-­‐c(mean(vmstatMB1$V12),mean(vmstatMB2$V12),mean(vmstatMB5$V12),mean
(vmstatMB10$V12))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("vmstatMB1",  "vmstatMB2",  "vmstatMB5",  "vmstatMB10"))
axis(2)
title(main=  "trocas  de  contexto  estressando  memoria  ",xlab="fator  de  stress",ylab="nro  
de  trocas  de  contexto")

                 

Este  caso  é  similar  aos  anteriores,  porém  entre  o  ponto  com  5  processos  e  o  ponto  com  
10  processos  não  houve  variação.  Utilizando  da  explicação  anterior,  possivelmente  o  SO  
não  conseguiu  alocar  mais  memória  para  os  novos  processos  e,  por  isso,  o  numero  de  
trocas  de  contexto  manteve-­‐se  constante.

14
Interrupções X stress de CPU

vmstatCPU1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU1.txt")
vmstatCPU2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU2.txt")
vmstatCPU5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU5.txt")
vmstatCPU10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatCPU10.txt")
x<-­‐c(mean(vmstatCPU1$V11),mean(vmstatCPU2$V11),mean(vmstatCPU5$V11),mean
(vmstatCPU10$V11))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("vmstatCPU1",  "vmstatCPU2",  "vmstatCPU5",  "vmstatCPU10"))
axis(2)
title(main=  "interrupções  estressando  memoria",xlab="fator  de  stress",ylab="nro  de  
interrupções")
                   

Neste  gráZico  podemos  ver  que  o  número  de  interrupções  diminui  na  medida  que  o  
número  de  processos  aumenta  até  serem  criados  cinco  processos.  Com  o  programa  
stress  criando  dez  processos,  veriZicamos  que  há  a  necessidade  de  um  maior  número  de  
interrupções.  Isso  provavelmente  acontece  porque  com  o  uso  de  até  cinco  processos  a  
eZiciência  da  CPU  aumenta.  Já  quando  aumentamos  o  número  de  processos  para  dez,  a  
eZiciência  de  cada  processo  diminui,  e  a  CPU  realiza  maior  número  de  trocas  de  contexto,  
o  que  leva  a  um  maior  número  de  acessos  a  memória  e,  portanto,  um  maior  número  de  
interrupções.  

15
Interrupções X stress de IO

vmstatIO1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO1.txt")
vmstatIO2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO2.txt")
vmstatIO5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO5.txt")
vmstatIO10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatIO10.txt")
x<-­‐c(mean(vmstatIO1$V11),mean(vmstatIO2$V11),mean(vmstatIO5$V11),mean
(vmstatIO10$V11))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("vmstatIO1",  "vmstatIO2",  "vmstatIO5",  "vmstatIO10"))
axis(2)
title(main=  "interrupções  estressando  IO",xlab="fator  de  stress",ylab="nro  de  
interrupções")

           

           

O  gráZico  se  explica  porque  quanto  mais  utilizamos  a  memória,  maior  o  número  de  
interrupções  necessárias  para  transferirmos  os  dados  para  o  disco  (observamos  que  a  
diferença  da  média  das  interrupções  é  realmente  bastante  signiZicativa  neste  caso).

16
Interrupções X stress de memória

vmstatMB1<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB1.txt")
vmstatMB2<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB2.txt")
vmstatMB5<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB5.txt")
vmstatMB10<-­‐read.table("/Users/VHG/Desktop/teste  Mac/vmstatMB10.txt")
x<-­‐c(mean(vmstatMB1$V11),mean(vmstatMB2$V11),mean(vmstatMB5$V11),mean
(vmstatMB10$V11))
plot(x,axes=FALSE,ann=  FALSE)
lines(x)
axis(1,  at=1:4,  lab=c("vmstatMB1",  "vmstatMB2",  "vmstatMB5",  "vmstatMB10"))
axis(2)
title(main=  "interrupções  estressando  memoria  ",xlab="fator  de  stress",ylab="nro  de  
interrupções")

Observamos  neste  caso  que  o  número  de  interrupções  aumenta  com  o  número  de  
processos,  isso  acontece  pois,  igualmente  ao  caso  acima,  ao  aumentarmos  o  Zluxo  a  ser  
transferido  para  a  memória  principal,  maior  a  necessidade  realizarmos  interrupções  na  
CPU,  para  que  este  volume  maior  de  dados  seja  transferido.  

17
Graficos 3D
Para  os  gráZicos  3D  utilizamos  o  R  para  extrair  os  dados  estatísticos  como  a  media  e  para  
plotarmos  utilizamos  o  GNUPlot.

Segue  o  código  de  extração  dos  dados  do  R.  Os  comandos  para  plotar  os  gráZicos  no  
GNUPlot  e  o  respectivo  gráZico  para  cada  situação  seguem  logo  abaixo:

io0101<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0101")
io0102<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0102")
io0105<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0105")
io0110<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0110")
io0201<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0201")
io0202<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0202")
io0205<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0205")
io0210<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0210")
io0501<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0501")
io0502<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0502")
io0505<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0505")
io0510<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io0510")
io1001<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io1001")
io1002<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io1002")
io1005<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io1005")
io1010<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/io1010")
vm0101<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0101")
vm0102<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0102")
vm0105<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0105")
vm0110<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0110")
vm0201<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0201")
vm0202<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0202")
vm0205<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0205")
vm0210<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0210")
vm0501<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0501")
vm0502<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0502")
vm0505<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0505")
vm0510<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm0510")
vm1001<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm1001")
vm1002<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm1002")
vm1005<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm1005")
vm1010<-­‐read.table("/Users/VHG/Desktop/resultadosCopy/vm1010")

                                                 

18
Utilização de disco x stress de CPU x stress de IO

x<-­‐c(mean(io0101$V4),mean(io0102$V4),mean(io0105$V4),mean(io0110$V4),mean
(io0201$V4),mean(io0202$V4),mean(io0205$V4),mean(io0210$V4),mean
(io0501$V4),mean(io0502$V4),mean(io0505$V4),mean(io0510$V4),mean
(io1001$V4),mean(io1002$V4),mean(io1005$V4),mean(io1010$V4))

Para  plotar:
splot  "/Users/VHG/Desktop/disco.txt"  using  1:2:3  with  linespoints
set  pm3d
set  title  "Uso  de  disco  X  stress  CPU  X  stress  IO"
set  xlabel  "stress  CPU"
set  ylabel  "stress  IO"
set  zlabel  "uso  disco"

19
Utilização de CPU x stress de CPU x stress de IO

x<-­‐c(mean(io0101$V1),mean(io0102$V1),mean(io0105$V1),mean(io0110$V1),mean
(io0201$V1),mean(io0202$V1),mean(io0205$V1),mean(io0210$V1),mean
(io0501$V1),mean(io0502$V1),mean(io0505$V1),mean(io0510$V1),mean
(io1001$V1),mean(io1002$V1),mean(io1005$V1),mean(io1010$V1))

Para  plotar:  
splot  "/Users/VHG/Desktop/cpu.txt"  using  1:2:3  with  linespoints
set  pm3d
set  title  "Uso  de  CPU  X  stress  CPU  X  stress  IO"
set  xlabel  "stress  CPU"
set  ylabel  "stress  IO"
set  zlabel  "uso  cpu"

20
Trocas de contexto x stress de CPU x stress de IO

x<-­‐c(mean(vm0101$V12),mean(vm0102$V12),mean(vm0105$V12),mean
(vm0110$V12),mean(vm0201$V12),mean(vm0202$V12),mean(vm0205$V12),mean
(vm0210$V12),mean(vm0501$V12),mean(vm0502$V12),mean(vm0505$V12),mean
(vm0510$V12),mean(vm1001$V12),mean(vm1002$V12),mean(vm1005$V12),mean
(vm1010$V12))

Para  plotar:                                              
splot  "/Users/VHG/Desktop/contexto.txt"  using  1:2:3  with  linespoints
set  pm3d
set  title  "Trocas  de  contexto  X  stress  CPU  X  stress  IO"
set  xlabel  "stress  CPU"
set  ylabel  "stress  IO"
set  zlabel  "trocas"

21
Interrupções x stress de CPU x stress de IO

x<-­‐c(mean(vm0101$V11),mean(vm0102$V11),mean(vm0105$V11),mean
(vm0110$V11),mean(vm0201$V11),mean(vm0202$V11),mean(vm0205$V11),mean
(vm0210$V11),mean(vm0501$V11),mean(vm0502$V11),mean(vm0505$V11),mean
(vm0510$V11),mean(vm1001$V11),mean(vm1002$V11),mean(vm1005$V11),mean
(vm1010$V11))

Para  plotar:

splot  "/Users/VHG/Desktop/int.txt"  using  1:2:3  with  linespoints


set  pm3d
set  title  "Numero  de  interupções  X  stress  CPU  X  stress  IO"
set  xlabel  "stress  CPU"
set  ylabel  "stress  IO"
set  zlabel  "int"

Aparentemente  existe  uma  relação  entre  as  trocas  de  contexto  e  o  número  de  
interrupções  como  podemos  ver  pelos  gráZicos.  Isto  provavelmente  acontece  porque  
para  haver  uma  troca  de  contexto  deve  ser  disparada  uma  interrupção  para  avisar  o  SO.
   

22
Apêndice  
scripts
A-) tdesempenho.sh

           #!/bin/sh
                             #  Shell  script  para  adicionar  uma  linha  com  conte√∫do  deZinido
                               #  pelo  usu√°rio  a  um  arquivo  qualquer
                               echo  Medidor  de  desempenho  inicializado

                               #Executa  o  stress  sobre  a  CPU,  com  parametro  1.


                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  1-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐cpu  1  -­‐-­‐timeout  10m  >>  stress.txt&

                               #Apaga  o  teste  anterior,  e  cria  a  pasta  para  os  novos  dados.


                               rm  -­‐r  teste
                               mkdir  teste

                               #Cria  pastas  necessarias


                               mkdir  mpstat
                               mkdir  vmstat
                               mkdir  iostat

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                       mpstat  1  >  teste/mpstatCPU1.txt&
                               vmstat  1  >  teste/vmstatCPU1.txt&
                               iostat  1  >  teste/iostatCPU1.txt&

                               sleep  10m

                               killall  mpstat
                               killall  vmstat
                               killall  iostat
                               killall  stress

                               #Executa  o  stress  sobre  a  CPU,  com  parametro  2.


                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  2-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐cpu  2  -­‐-­‐timeout  10m  >>  stress.txt&

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                               mpstat  1  >  teste/mpstatCPU2.txt&
                               vmstat  1  >  teste/vmstatCPU2.txt&
                               iostat  1  >  teste/iostatCPU2.txt&

                               sleep  10m

                               killall  mpstat

23
                               killall  vmstat
                               killall  iostat
                               killall  stress

                               #Executa  o  stress  sobre  a  CPU,  com  parametro  5.


                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  5-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐cpu  5  -­‐-­‐timeout  10m  >>  stress.txt&

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                               mpstat  1  >  teste/mpstatCPU5.txt&
                               vmstat  1  >  teste/vmstatCPU5.txt&
                               iostat  1  >  teste/iostatCPU5.txt&

                               sleep  10m

                               killall  mpstat
                               killall  vmstat
                               killall  iostat
                               killall  stress

                               #Executa  o  stress  sobre  a  CPU,  com  parametro  10.


                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  10-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐cpu  10  -­‐-­‐timeout  10m  >>  stress.txt&

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                               mpstat  1  >  teste/mpstatCPU10.txt&
                               vmstat  1  >  teste/vmstatCPU10.txt&
                               iostat  1  >  teste/iostatCPU10.txt&

                               sleep  10m

                               killall  mpstat
                               killall  vmstat
                               killall  iostat
                               killall  stress

                               #Executa  o  stress  sobre  a  E/S,  com  parametro  1.


                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐hdd  1-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐hdd  1  -­‐-­‐timeout  10m  >>  stress.txt&

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                               mpstat  1  >  teste/mpstatIO1.txt&
                               vmstat  1  >  teste/vmstatIO1.txt&
                               iostat  1  >  teste/iostatIO1.txt&

                               sleep  10m

                               killall  mpstat
                               killall  vmstat
                               killall  iostat  
                               killall  stress
24
                               #Executa  o  stress  sobre  a  E/S,  com  parametro  2.
                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐hdd  2-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐hdd  2  -­‐-­‐timeout  10m  >>  stress.txt&

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                               mpstat  1  >  teste/mpstatIO2.txt&
                               vmstat  1  >  teste/vmstatIO2.txt&
                               iostat  1  >  teste/iostatIO2.txt&

                               sleep  10m

                               killall  mpstat
                               killall  vmstat
                               killall  iostat  
                               killall  stress

                               #Executa  o  stress  sobre  a  E/S,  com  parametro  5.


                               echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐hdd  5-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
                               stress  -­‐-­‐hdd  5  -­‐-­‐timeout  10m  >>  stress.txt&

                               #executa  programas  que  irao  medir  o  desempenho  do  SO


                               mpstat  1  >  teste/mpstatIO5.txt&
                               vmstat  1  >  teste/vmstatIO5.txt&
                               iostat  1  >  teste/iostatIO5.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  E/S,  com  parametro  10.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐hdd  10-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐hdd  10  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatIO10.txt&
vmstat  1  >  teste/vmstatIO10.txt&
iostat  1  >  teste/iostatIO10.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  memory-­‐bound,  com  parametro  1.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐vm  1-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐vm  1  -­‐-­‐vm-­‐bytes  80MB  -­‐-­‐timeout  10m  >>  stress.txt&
25
#executa  programas  que  irao  medir  o  desempenho  do  SO
mpstat  1  >  teste/mpstatMB1.txt&
vmstat  1  >  teste/vmstatMB1.txt&
iostat  1  >  teste/iostatMB1.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  memory-­‐bound,  com  parametro  2.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐vm  2-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐vm  2  -­‐-­‐vm-­‐bytes  80MB  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatMB2.txt&
vmstat  1  >  teste/vmstatMB2.txt&
iostat  1  >  teste/iostatMB2.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  memory-­‐bound,  com  parametro  5.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐vm  5-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐vm  5  -­‐-­‐vm-­‐bytes  80MB  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatMB5.txt&
vmstat  1  >  teste/vmstatMB5.txt&
iostat  1  >  teste/iostatMB5.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  memory-­‐bound,  com  parametro  10.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐vm  10-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐vm  10  -­‐-­‐vm-­‐bytes  80MB  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatMB10.txt&
vmstat  1  >  teste/vmstatMB10.txt&
26
iostat  1  >  teste/iostatMB10.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat
killall  stress

#Executa  o  stress  sobre  a  cpu  1  e  a  io-­‐bound  10.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  1;  io  10-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐cpu  1  -­‐-­‐io  10  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatCPUIO110.txt&
vmstat  1  >  teste/vmstatCPUIO110.txt&
iostat  1  >  teste/iostatCPUIO110.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat    
killall  stress

#Executa  o  stress  sobre  a  cpu  2  e  a  io-­‐bound  5.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  2;  io  5-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐cpu  2  -­‐-­‐io  5  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatCPUIO25.txt&
vmstat  1  >  teste/vmstatCPUIO25.txt&
iostat  1  >  teste/iostatCPUIO25.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  cpu  5  e  a  io-­‐bound  2.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  5;  io  2-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐cpu  5  -­‐-­‐io  2  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatCPUIO52.txt&
vmstat  1  >  teste/vmstatCPUIO52.txt&
iostat  1  >  teste/iostatCPUIO52.txt&

sleep  10m

27
killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  cpu  10  e  a  io-­‐bound  1.


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  10;  io  1-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐cpu  10  -­‐-­‐io  1  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatCPUIO101.txt&
vmstat  1  >  teste/vmstatCPUIO101.txt&
iostat  1  >  teste/iostatCPUIO101.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat  
killall  stress

#Executa  o  stress  sobre  a  cpu  10  e  a  io-­‐bound  10  (Pior  caso).


echo  -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐cpu  10;  io  10-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐  >>  stress.txt&
stress  -­‐-­‐cpu  10  -­‐-­‐io  10  -­‐-­‐timeout  10m  >>  stress.txt&

#executa  programas  que  irao  medir  o  desempenho  do  SO


mpstat  1  >  teste/mpstatCPUIO1010.txt&
vmstat  1  >  teste/vmstatCPUIO1010.txt&
iostat  1  >  teste/iostatCPUIO1010.txt&

sleep  10m

killall  mpstat
killall  vmstat
killall  iostat
killall  stress

./Zixstats.sh

echo  Medidor  de  desempenho  Zinalizado  com  sucesso.  

B-) cleaniostat.sh

#!/bin/sh
#Este  shell  script  limpa  os  arquivos  de  teste,  para  que  os  dados  possam  ser  analizados  
pelo  probrama  de  estatitica.

#VeriZica  o  numero  de  argumentos


if  [$#  !=  1]
then

28
echo  Voce  precisa  inserir  pelo  menos  um  argumento  para  o  script  cleanumbers!
exit  1
Zi

#Elimina  as  linhas  que  nao  contem  dados  relevantes


grep  -­‐wv  "Linux"  $1  >  temp1.txt
grep  -­‐wv  "Device:"  temp1.txt  >  temp2.txt
grep  -­‐wv  "avg"  temp2.txt  >  temp3.txt
grep  -­‐wv  "sr0"  temp3.txt  >  temp4.txt
grep  -­‐wv  "sda"  temp4.txt  >  temp5.txt
grep  -­‐wv  "sdb"  temp5.txt  >  temp6.txt
grep  -­‐wv  "sdb"  temp6.txt  >  temp7.txt

#Elimina  linhas  em  branco


sed  '/^$/d'  temp7.txt  >  $1

rm  temp*

C-) cleanmpstat.sh

#!/bin/sh
#Este  shell  script  arruma  os  dados  obtidos  com  o  vmstat.

#VeriZica  o  numero  de  argumentos


if  [$#  !=  1]
then
echo  Voce  precisa  inserir  pelo  menos  um  argumento  para  o  script  cleanumbers!
exit  1
Zi

#Elimina  as  linhas  que  nao  contenham  os  dados  de  interesse.
grep  -­‐wv  "Linux"  $1  >  temp1.txt
grep  -­‐wv  "CPU"  temp1.txt  >  temp2.txt

#Elimina  as  linhas  em  branco.


sed  '/^$/d'  temp2.txt  >  $1

#Remove  arquivos  temporarios.


rm  temp*

D-) cleanvmstat.sh

#!/bin/sh
#Este  shell  script  arruma  os  dados  obtidos  com  o  vmstat.

#VeriZica  o  numero  de  argumentos


if  [$#  !=  1]
then
echo  Voce  precisa  inserir  pelo  menos  um  argumento  para  o  script  cleanumbers!
29
exit  1
Zi

#Elimina  as  linhas  que  nao  contenham  os  dados  de  interesse.
grep  -­‐wv  "procs"  $1  >  temp1.txt
grep  -­‐wv  "swpd"  temp1.txt  >  temp2.txt

#Elimina  as  linhas  em  branco.


sed  '/^$/d'  temp2.txt  >  $1

#Remove  arquivos  temporarios.


rm  temp*

E-)fixstats.sh

for  Zile  in  teste/*


do
./cleaniostat.sh  ./$Zile
./cleanmpstat.sh  ./$Zile
./cleanvmstat.sh  ./$Zile
done

Referências  BibliográWicas
1-­  Manuais  do  linux  oriundos  da  pagina  linux.die.net
links:   http://linux.die.net/man/8/vmstat
  http://linux.die.net/man/1/iostat
  http://linux.die.net/man/1/mpstat

2-­    Manuais  de  introdução  ao  Software  R

link:                http://www.r-­‐project.org/

3-­    Fórum  utilizado:

Link:          R    http://www.vivaolinux.com.br/

30

Você também pode gostar