h1. Detectar Excesso de Demanda e Instanciar VM Webserver h2. Implantação #501: Definir e configurar top treshold Atualmente para propósitos de demonstração o _educloud-mon_ está configurado com duas métricas: *web-cpu-usage* e *web-active-users*. 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). 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@. h2. Implantação #502: Configurar LVM para Obter Ganho de Performance na Instanciação de VMs A máquina osdc01 (200.145.46.197) é um repositório de imagens. Nele temos o seguinte layout de lvm: h3. Volumes físicos (Comando pvdisplay):
--- Physical volume --- PV Name /dev/sda3 VG Name osdc1 PV Size 18.18 TiB / not usable 1.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 4765714 Free PE 254883 Allocated PE 4510831 PV UUID L4yscI-w5r3-0IVh-FtxE-oGOJ-EtTM-5nBjt2h3. Grupos (Comando vgdisplay):
--- Volume group --- VG Name osdc1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 276 VG Access read/write VG Status resizable MAX LV 0 Cur LV 9 Open LV 7 Max PV 0 Cur PV 1 Act PV 1 VG Size 18.18 TiB PE Size 4.00 MiB Total PE 4765714 Alloc PE / Size 4510831 / 17.21 TiB Free PE / Size 254883 / 995.64 GiB VG UUID 3oKaJb-HYqQ-cOZK-duiF-qGVR-5P9H-HcrWaah3. Volumes Lógicos (Comando lvdisplay): 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. 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:
lvdisplayh2. Implementação #503: Configurar Comando de Instanciação de VM, com Base no Atingimento do Top Treshold O _educloud-mon_ inicia uma máquina virtual caso +alguma+ métrica tenha atingido o @top_thresold@. h2. Implementação: #504: Simular Excesso de Demanda e Verificar Instanciação Automática de VMs, via Open Nebula Para simular o excesso de demanda foi utilizado o comando @ab@ do pacote @apache-utils@. 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@:
ab -n 2000 -c 50 http://cursos.educacao.sp.gov.br/Abaixo temos a saída do comando acima:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking cursos.educacao.sp.gov.br (be patient)
Completed 200 requests
Completed 400 requests
Completed 600 requests
Completed 800 requests
Completed 1000 requests
Completed 1200 requests
Completed 1400 requests
Completed 1600 requests
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests
Server Software: squid/2.7.STABLE9
Server Hostname: cursos.educacao.sp.gov.br
Server Port: 80
Document Path: /
Document Length: 1321 bytes
Concurrency Level: 50
Time taken for tests: 0.641 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Non-2xx responses: 2000
Total transferred: 3312000 bytes
HTML transferred: 2642000 bytes
Requests per second: 3118.24 [#/sec] (mean)
Time per request: 16.035 [ms] (mean)
Time per request: 0.321 [ms] (mean, across all concurrent requests)
Transfer rate: 5042.78 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.3 0 5
Processing: 5 15 2.0 15 24
Waiting: 3 13 1.9 13 22
Total: 7 16 1.9 16 25
ERROR: The median and mean for the initial connection time are more than twice the standard
deviation apart. These results are NOT reliable.
Percentage of the requests served within a certain time (ms)
50% 16
66% 16
75% 16
80% 17
90% 18
95% 18
98% 23
99% 24
100% 25 (longest request)