Detectar Excesso de Demanda e Instanciar VM Webserver » History » Version 4

Beraldo Leal, 13 Mar 2012 16:25

1 1 Beraldo Leal
h1. Detectar Excesso de Demanda e Instanciar VM Webserver
2 1 Beraldo Leal
3 1 Beraldo Leal
h2. Implantação #501: Definir e configurar top treshold
4 1 Beraldo Leal
5 1 Beraldo Leal
Atualmente para propósitos de demonstração o _educloud-mon_ está configurado com duas métricas: *web-cpu-usage* e *web-active-users*. 
6 1 Beraldo Leal
7 1 Beraldo Leal
Estas duas métricas se referem a uma média aritimética do uso de cpu ou usuários ativos do sistema como um todo (todos os hosts web servers).
8 1 Beraldo Leal
9 1 Beraldo Leal
O parâmetro de configuração do _educloud-mon_ é o @top_threshold@ de cada métrica. Para saber quais valores estão configurados para @top_treshold@ veja o arquivo @educloud-mon.conf@.
10 1 Beraldo Leal
11 1 Beraldo Leal
h2. Implantação #502: Configurar LVM para Obter Ganho de Performance na Instanciação de VMs
12 1 Beraldo Leal
13 1 Beraldo Leal
A máquina osdc01 (200.145.46.197) é um repositório de imagens. Nele temos o seguinte layout de lvm:
14 1 Beraldo Leal
15 1 Beraldo Leal
h3. Volumes físicos (Comando pvdisplay):
16 1 Beraldo Leal
17 1 Beraldo Leal
<pre>
18 1 Beraldo Leal
  --- Physical volume ---
19 1 Beraldo Leal
  PV Name               /dev/sda3
20 1 Beraldo Leal
  VG Name               osdc1
21 1 Beraldo Leal
  PV Size               18.18 TiB / not usable 1.00 MiB
22 1 Beraldo Leal
  Allocatable           yes
23 1 Beraldo Leal
  PE Size               4.00 MiB
24 1 Beraldo Leal
  Total PE              4765714
25 1 Beraldo Leal
  Free PE               254883
26 1 Beraldo Leal
  Allocated PE          4510831
27 1 Beraldo Leal
  PV UUID               L4yscI-w5r3-0IVh-FtxE-oGOJ-EtTM-5nBjt2
28 1 Beraldo Leal
</pre>
29 1 Beraldo Leal
30 1 Beraldo Leal
h3. Grupos (Comando vgdisplay):
31 1 Beraldo Leal
32 1 Beraldo Leal
<pre>
33 1 Beraldo Leal
  --- Volume group ---
34 1 Beraldo Leal
  VG Name               osdc1
35 1 Beraldo Leal
  System ID             
36 1 Beraldo Leal
  Format                lvm2
37 1 Beraldo Leal
  Metadata Areas        1
38 1 Beraldo Leal
  Metadata Sequence No  276
39 1 Beraldo Leal
  VG Access             read/write
40 1 Beraldo Leal
  VG Status             resizable
41 1 Beraldo Leal
  MAX LV                0
42 1 Beraldo Leal
  Cur LV                9
43 1 Beraldo Leal
  Open LV               7
44 1 Beraldo Leal
  Max PV                0
45 1 Beraldo Leal
  Cur PV                1
46 1 Beraldo Leal
  Act PV                1
47 1 Beraldo Leal
  VG Size               18.18 TiB
48 1 Beraldo Leal
  PE Size               4.00 MiB
49 1 Beraldo Leal
  Total PE              4765714
50 1 Beraldo Leal
  Alloc PE / Size       4510831 / 17.21 TiB
51 1 Beraldo Leal
  Free  PE / Size       254883 / 995.64 GiB
52 1 Beraldo Leal
  VG UUID               3oKaJb-HYqQ-cOZK-duiF-qGVR-5P9H-HcrWaa
53 1 Beraldo Leal
</pre>
54 1 Beraldo Leal
55 1 Beraldo Leal
h3. Volumes Lógicos (Comando lvdisplay):
56 1 Beraldo Leal
57 1 Beraldo Leal
Cada imagem está em um volume lógico e é exportado para as máquinas nós, via iSCSI. Para isso, elas usam o _transport manager_ iscsi desenvolvido pelo Marco.
58 1 Beraldo Leal
59 2 Beraldo Leal
Para ver a lista de volumes lógicos (São muitos, dependendo das máquinas virtuais que estão em execução), por favor execute:
60 1 Beraldo Leal
61 1 Beraldo Leal
62 1 Beraldo Leal
<pre>
63 1 Beraldo Leal
lvdisplay
64 1 Beraldo Leal
</pre>
65 3 Beraldo Leal
66 3 Beraldo Leal
h2. Implementação #503: Configurar Comando de Instanciação de VM, com Base no Atingimento do Top Treshold
67 3 Beraldo Leal
68 4 Beraldo Leal
O _educloud-mon_ inicia uma máquina virtual caso +alguma+ métrica tenha atingido o @top_thresold@.
69 4 Beraldo Leal
70 4 Beraldo Leal
h2. Implementação: #504: Simular Excesso de Demanda e Verificar Instanciação Automática de VMs, via Open Nebula
71 4 Beraldo Leal
72 4 Beraldo Leal
Para simular o excesso de demanda foi utilizado o comando @ab@ do pacote @apache-utils@.
73 4 Beraldo Leal
74 4 Beraldo Leal
O @ab@ inicia quantas threads forem necessárias e envia N requisições para um determinado host. Sua utilização é muito simples. Abaixo um exemplo do comando @ab@:
75 4 Beraldo Leal
76 4 Beraldo Leal
<pre>
77 4 Beraldo Leal
ab -n 2000 -c 50 http://cursos.educacao.sp.gov.br/
78 4 Beraldo Leal
</pre>
79 4 Beraldo Leal
80 4 Beraldo Leal
Abaixo temos a saída do comando acima:
81 4 Beraldo Leal
82 4 Beraldo Leal
<pre>
83 4 Beraldo Leal
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
84 4 Beraldo Leal
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
85 4 Beraldo Leal
Licensed to The Apache Software Foundation, http://www.apache.org/
86 4 Beraldo Leal
87 4 Beraldo Leal
Benchmarking cursos.educacao.sp.gov.br (be patient)
88 4 Beraldo Leal
Completed 200 requests
89 4 Beraldo Leal
Completed 400 requests
90 4 Beraldo Leal
Completed 600 requests
91 4 Beraldo Leal
Completed 800 requests
92 4 Beraldo Leal
Completed 1000 requests
93 4 Beraldo Leal
Completed 1200 requests
94 4 Beraldo Leal
Completed 1400 requests
95 4 Beraldo Leal
Completed 1600 requests
96 4 Beraldo Leal
Completed 1800 requests
97 4 Beraldo Leal
Completed 2000 requests
98 4 Beraldo Leal
Finished 2000 requests
99 4 Beraldo Leal
100 4 Beraldo Leal
101 4 Beraldo Leal
Server Software:        squid/2.7.STABLE9
102 4 Beraldo Leal
Server Hostname:        cursos.educacao.sp.gov.br
103 4 Beraldo Leal
Server Port:            80
104 4 Beraldo Leal
105 4 Beraldo Leal
Document Path:          /
106 4 Beraldo Leal
Document Length:        1321 bytes
107 4 Beraldo Leal
108 4 Beraldo Leal
Concurrency Level:      50
109 4 Beraldo Leal
Time taken for tests:   0.641 seconds
110 4 Beraldo Leal
Complete requests:      2000
111 4 Beraldo Leal
Failed requests:        0
112 4 Beraldo Leal
Write errors:           0
113 4 Beraldo Leal
Non-2xx responses:      2000
114 4 Beraldo Leal
Total transferred:      3312000 bytes
115 4 Beraldo Leal
HTML transferred:       2642000 bytes
116 4 Beraldo Leal
Requests per second:    3118.24 [#/sec] (mean)
117 4 Beraldo Leal
Time per request:       16.035 [ms] (mean)
118 4 Beraldo Leal
Time per request:       0.321 [ms] (mean, across all concurrent requests)
119 4 Beraldo Leal
Transfer rate:          5042.78 [Kbytes/sec] received
120 4 Beraldo Leal
121 4 Beraldo Leal
Connection Times (ms)
122 4 Beraldo Leal
              min  mean[+/-sd] median   max
123 4 Beraldo Leal
Connect:        0    1   0.3      0       5
124 4 Beraldo Leal
Processing:     5   15   2.0     15      24
125 4 Beraldo Leal
Waiting:        3   13   1.9     13      22
126 4 Beraldo Leal
Total:          7   16   1.9     16      25
127 4 Beraldo Leal
ERROR: The median and mean for the initial connection time are more than twice the standard
128 4 Beraldo Leal
       deviation apart. These results are NOT reliable.
129 4 Beraldo Leal
130 4 Beraldo Leal
Percentage of the requests served within a certain time (ms)
131 4 Beraldo Leal
  50%     16
132 4 Beraldo Leal
  66%     16
133 4 Beraldo Leal
  75%     16
134 4 Beraldo Leal
  80%     17
135 4 Beraldo Leal
  90%     18
136 4 Beraldo Leal
  95%     18
137 4 Beraldo Leal
  98%     23
138 4 Beraldo Leal
  99%     24
139 4 Beraldo Leal
 100%     25 (longest request)
140 4 Beraldo Leal
141 4 Beraldo Leal
</pre>