gerenciamento de desempenho de servidores unix

Propaganda
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO
GERENCIAMENTO DE DESEMPENHO DE SERVIDORES
UNIX
FLAIMISSON ELIÉZER SCARPINI
BLUMENAU
2006
2006/2-03
FLAIMISSON ELIÉZER SCARPINI
GERENCIAMENTO DE DESEMPENHO DE SERVIDORES
UNIX
Trabalho de Conclusão de Curso submetido à
Universidade Regional de Blumenau para a
obtenção dos créditos na disciplina Trabalho
de Conclusão de Curso II do curso de Sistemas
de Informação - Bacharelado.
Prof. Wilson Pedro Carli - Orientador
BLUMENAU
2006
2006/2-03
GERENCIAMENTO DE DESEMPENHO DE SERVIDORES
UNIX
Por
FLAIMISSON ELIÉZER SCARPINI
Trabalho aprovado para obtenção dos créditos
na disciplina de Trabalho de Conclusão de
Curso II, pela banca examinadora formada
por:
Presidente:
WILSON PEDRO CARLI – Professor Orientador - FURB
Membro:
ANTONIO CARLOS TAVARES – Professor da Banca – FURB
Membro:
FRANCISCO ADELL PÉRICAS – Professor da Banca – FURB
Blumenau, 11 de dezembro de 2.006
Dedico este trabalho a todos os analistas de
suporte que trabalham diariamente com
servidores Unix (Hp-Ux) onde possuem a
responsabilidade
de
zelar
pelo
acompanhamento diário do desempenho dos
sistemas.
AGRADECIMENTOS
À Empresa Bunge Alimentos, mais precisamente ao gerente da
Tecnologia da
Informação - Silvio Heusi, a gerente de Tecnologia/Infra-Estrutura e Operações – Mônica
Gueths e também ao Analista de Processos – Antonio Carlos Kauling pela oportunidade e
confiança depositada bem como por terem cedido os servidores da empresa para a criação do
software de análise de desempenho.
Ao meu orientador, professor Wilson Pedro Carli, pelas valiosas e oportunas
informações
para que este trabalho possa servir de base para
aprimoramento de soluções.
futuras consultas ou
Tu te julgas superior ? Que chato! Deves ter
algo de mais em teu corpo: Quatro pernas,
duas cabeças, sei lá.
Álvaro Luiz de Aguiar
RESUMO
Este trabalho descreve o desenvolvimento de um software que tem como função monitorar e
acompanhar os recursos computacionais do sistema operacional Unix permitindo um
gerenciamento pró-ativo, eficaz e com baixo custo. Devido a mudanças constantes nas
aplicações, faz-se necessário criar mecanismos de gerenciamento de desempenho para
identificar contenções no processamento dos servidores as quais geram lentidão ou perdas
financeiras para as empresas. Através das informações coletadas e analisadas, é possível
evitar ou minimizar os problemas de desempenho obtendo com isso um melhor
aproveitamento dos equipamentos e melhorando os níveis de serviços.
Palavras-chave: Sistema de Informação. Desempenho. Sistema operacional Unix.
ABSTRACT
This article describes the development of a software that has as function to monitor and to
follow the computational resources of the Unix operational system being allowed a
management pro-asset, efficient and with low cost. Due to constant changes in the
applications, one becomes necessary to create mechanisms of performance management to
identify containments in the processing of the servers which generate financial slowness or
losses for the companies. Through the collected and analyzed information, it is possible to
prevent or to minimize the performance problems getting with this one better exploitation of
the equipment and improving the levels of services.
Key-words: Information Systems. Performance. Unix operational system.
LISTA DE ILUSTRAÇÕES
Figura 1 – Fornecedores Mundiais de Software de Gerenciamento - Gartner (2005) ........... 15
Figura 2 - Tripé......................................................................................................................... 17
Figura 3 - Ambiente Complexo ............................................................................................... 18
Figura 4 – Software de Gerenciamento - Gartner (2005)....................................................... 21
Quadro 1- Requisitos Funcionais ............................................................................................. 23
Quadro 2 - Requisitos Não-Funcionais .................................................................................... 24
Figura 5 – Topologia Física...................................................................................................... 25
Figura 6 – Ciclos do Desenvolvimento .................................................................................... 26
Quadro 3 – Resumo das Métricas............................................................................................. 29
Quadro 4 – Alarme cpu em modo user..................................................................................... 31
Quadro 5 – Alarme cpu em modo sys ...................................................................................... 32
Quadro 6 – Alarme consumo e/s .............................................................................................. 33
Quadro 7 – Alarme fila de processamento ............................................................................... 34
Quadro 8 – Alarme consumo de memória................................................................................ 35
Quadro 12 – Detalhamento das fases ....................................................................................... 36
Figura 7 – Acessando o sistema ............................................................................................... 37
Figura 9 – Exibição dos parâmetros processados..................................................................... 39
Figura 10 – Comparando resultados......................................................................................... 40
Figura 11– Métricas diversas.................................................................................................... 41
Quadro 9 – Código fonte shell.................................................................................................. 42
Quadro 10 – Código fonte do coletor de cpu ........................................................................... 43
Quadro 11 – Código fonte de exibição dos gráficos ................................................................ 44
Figura 12 – Parecer da empresa................................................................................................ 46
LISTA DE SIGLAS
ABNT
– Associação Brasileira de Normas Técnicas
CPU
– Central Processing Unit . Unidade Central de Processamento
E/S
– Dispositivos de Entrada e Saída das informações.
HP
– Hewllet Packard Company U.S.A. Fabricante de Servidores Unix
HP-UX
– Sistema Operacional Unix da Empresa Hewllet Packard Company U.S.A.
ITIL
– Information Techology Infrastructure Libray
LAN
– Local Area Network
PERL
– Linguagem de Programação nativa do HP-UX
SAN
– System Area Network
UNIX
– Marca Registrada de Open Group U.S.A.
SUMÁRIO
1 INTRODUÇÃO.................................................................................................................. 12
1.1 OBJETIVOS...................................................................................................................... 13
1.2 ESTRUTURA DO TRABALHO ...................................................................................... 14
1.3 MOTIVADORES .............................................................................................................. 14
1.4 OBSERVAÇÕES .............................................................................................................. 15
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 16
2.1 MÉTRICAS....................................................................................................................... 18
2.2 SISTEMA ATUAL ........................................................................................................... 19
2.3 NECESSIDADES.............................................................................................................. 20
2.4 TRABALHOS CORRELATOS........................................................................................ 20
3 DESENVOLVIMENTO DO TRABALHO ..................................................................... 22
3.1 LEVANTAMENTO E ANÁLISE .................................................................................... 22
3.2 PREMISSAS E LINGUAGENS UTILIZADAS .............................................................. 22
3.3 REQUISITOS DO SISTEMA........................................................................................... 23
3.4 TOPOLOGIA FÍSICA....................................................................................................... 25
3.5 CICLOS DO DESENVOLVIMENTO.............................................................................. 26
3.6 DEFINIÇÃO DAS MÉTRICAS ....................................................................................... 26
3.6.1 Métrica de CPU em modo USER.................................................................................... 27
3.6.2 Métrica de CPU em modo SYS ....................................................................................... 27
3.6.3 Métrica de E/S................................................................................................................. 27
3.6.4 Métrica de fila de processamento.................................................................................... 28
3.6.5 Métrica de consumo de memória .................................................................................... 28
3.6.6 Quadro resumo das métricas ........................................................................................... 29
3.7 AGENTES COLETORES................................................................................................. 30
3.8 TRATAMENTO DE ALERTAS ..................................................................................... 30
3.9 EXIBIÇÃO DOS GRÁFICOS .......................................................................................... 30
4 EXEMPLOS DE RECEBIMENTO DOS ALARMES................................................... 31
4.1 CPU EM MODO USER.................................................................................................... 31
4.2 CPU EM MODO SYS....................................................................................................... 32
4.3 E/S ..................................................................................................................................... 33
4.4 FILA DE PROCESSAMENTO ........................................................................................ 34
4.5 MEMÓRIA........................................................................................................................ 35
5 IMPLEMENTAÇÃO......................................................................................................... 36
5.1 ETAPAS ............................................................................................................................ 36
5.1.1 Acessando o sistema ....................................................................................................... 37
5.1.2 Solicitando os parâmetros para análise ........................................................................... 37
5.1.3 Exibição entre períodos das métricas............................................................................. 39
5.2 VALIDAÇÃO DOS RESULTADOS OBTIDOS ............................................................ 40
5.2.1 Exibindo várias métricas ................................................................................................. 41
5.2.2 Código do aplicativo de métricas.................................................................................... 42
5.2.3 Código do aplicativo coletor de desempenho ................................................................. 43
5.2.4 Código do aplicativo de exibição dos gráficos ............................................................... 44
6 CONCLUSÕES.................................................................................................................. 45
6.1 EXTENSÕES .................................................................................................................... 46
7 BIBLIOGRAFIA ............................................................................................................... 47
12
1 INTRODUÇÃO
A Bunge Alimentos está presente no Brasil desde 1.905. É a mais importante empresa
na industrialização de soja e trigo. É líder na comercialização de grãos como soja, trigo,
milho, sorgo, girassol e semente de algodão. É líder também na exportação brasileira no agronegócio estando presente em 16 estados brasileiros, com unidades industriais de
armazenamento, moinhos, centros de distribuição, escritórios e terminais portuários. Sua sede
está localizada em Gaspar, S.C. Para chegar onde está, a empresa investiu e está investindo
em tecnologias da informação e comunicação, principalmente em computadores servidores e
redes de computadores que interligam as suas várias unidades industriais e escritórios por
todo o Brasil (BUNGE ALIMENTOS, 2005) .
Num plano de continuidade dos negócios, o uso racional e equilibrado dos recursos de
informática é primordial para a empresa. A adoção de uma tecnologia que possibilita ter a
visualização dos recursos operacionais utilizados nos computadores pode contribuir para que
ocorra uma estabilidade associada com escalabilidade nas aplicações corporativas. Isso se
reflete em ganhos financeiros para a empresa, pois as interrupções não programadas nos
sistemas são substancialmente reduzidas através do gerenciamento efetivo.
Segundo Klauck (1999), o gerenciamento de redes de computadores pode ser
conceituado como a coordenação de controle de atividades e monitoração do uso. Atualmente
os recursos computacionais estão cada vez mais rápidos e eficazes, porém, existem situações
que, mesmo nos mais modernos equipamentos, surgem gargalos no processamento das
informações gerando atrasos e prejuízos para as empresas. Os custos elevados para novos
investimentos inibem na maioria dos casos a troca do servidor, porém é possível identificar
previamente onde está localizado o baixo desempenho no servidor, utilizando um sistema de
gerenciamento de desempenho.
13
Um sistema parcialmente parado ou operando com muita deficiência, pode
comprometer não somente a imagem da empresa como também sofrer sanções judiciais. Não
é por acaso que nos últimos 10 anos tem-se dado expressivo valor para a metodologia de
gerenciamento de processos da tecnologia de informação denominada
Information
Techology Infrastructure Library (ITIL). Na metodologia, existem 04 níveis de
gerenciamento que prezam por esta qualidade. São eles:
a) gerenciamento de capacidade;
b) gerenciamento de disponibilidade;
c) gerenciamento de continuidade;
d) gerenciamento de níveis de serviço.
Desta forma, é imprescindível que haja nos servidores das empresas um gerenciamento
de desempenho compatível com a sua necessidade de negócio.
1.1
OBJETIVOS
O objetivo deste trabalho é desenvolver um software para o gerenciamento de
desempenho de servidores Unix, especificamente o HP-UX versão 11.23, capaz de exibir
graficamente os recursos computacionais utilizados pelo servidor com elevado grau de
confiabilidade, pró-atividade e custos reduzidos comparados a outros softwares de mercado.
Os objetivos específicos do trabalho foram:
a) identificar o consumo dos recursos de CPU, memória, disco e fila de
processamento no servidor;
b) identificar a ociosidade e picos de demanda em determinados períodos, exibindoos graficamente através de aplicativos web;
c) gerar alerta pró-ativamente do consumo dos recursos monitorados;
14
d) realizar planejamento de capacidade (capacity plan) do servidor.
1.2
ESTRUTURA DO TRABALHO
A seguir será descrito resumidamente os capítulos do referido trabalho.
O primeiro capítulo apresenta a introdução, os objetivos, os motivadores e as
observações do trabalho e seu público alvo.
O segundo capítulo apresenta a fundamentação teórica com conceitos e entendimentos
sobre o tema análise de desempenho, métricas de acompanhamento e o sistema atual.
Também informa o sistema atual com suas atribuições e necessidades. Consta também os
trabalhos correlatos.
O terceiro e o quarto capítulos, relatam o desenvolvimento, os requisitos e definições
da forma que o gerenciamento funciona
e
principalmente
detalhamento das métricas
monitoradas.
No capítulo cinco encontra-se um resumo dos principais códigos fontes.
No capítulo seis tem-se o resumo da implementação, forma de acesso e resultados
obtidos.
Por fim, no capítulo 7 são apresentadas as principais conclusões do trabalho bem como
sugestões para futuras melhorias.
1.3
MOTIVADORES
No mercado mundial existem várias soluções dos grandes fornecedores de
hardwares/softwares que possuem aplicativos de gerenciamento de desempenho
para
servidores Unix. Os líderes de mercado segundo a publicação do órgão internacional de
divulgação de tecnologia, o Gartner Group (GARTNER, 2005), conforme o Figura 1, são o
15
Tivoli (IBM TIVOLI, 2005), Patrol (BMC PATROL, 2005), Unicenter (CA UNICENTER,
2005) e o Perfview (OPENVIEW,2005).
Figura 1 – Fornecedores Mundiais de Software de Gerenciamento - Gartner (2005)
Todos os softwares possuem renomados conceitos
na análise de desempenho de
servidores. Porém, tanto o custo do software quanto da customização e implementação, são
demasiadamente altos para a maioria das empresas. Sendo assim, a criação de um software
de análise de desempenho com eficiência semelhante aos produtos de mercado, foi um dos
motivadores do trabalho proposto.
1.4
OBSERVAÇÕES
Não faz parte deste trabalho instruir ou certificar qualquer pessoa a fazer análise de
desempenho de servidores Unix sem capacitação técnica do assunto.
O uso do software desenvolvido neste trabalho é destinado exclusivamente para
administradores de servidores Unix com pelo menos 02 anos de experiência e 01 ano
especificamente em ambiente HP-UX.
16
2 FUNDAMENTAÇÃO TEÓRICA
Segundo Specialski (1999), a adoção de um software de gerenciamento não resolve
todos os problemas da pessoa responsável pela administração. Ao ser analisado o desempenho
de um único recurso isolado do servidor e o mesmo recurso reportar que está todo alocado,
pode-se chegar a uma conclusão errônea dos fatos. Isto se deve a característica do
processamento no servidor Unix.
Às vezes um recurso a 100% não significa que está esgotado e sim que está utilizando
toda a sua disponibilidade naquele momento ou para aquele grupo de processos.
Um exemplo prático disto seria imaginarmos uma estrada em que somente um único
veículo estivesse trafegando do ponto A para o ponto B. Nesse trajeto, o veículo gastaria 01
hora e a estrada seria considerada 100% livre.
Caso outros 50 veículos realizassem o mesmo percurso em 01 hora, teríamos a
situação de 100 % de ocupação da estrada, porém não teríamos nenhum tipo de contenção ou
gargalo. Somente teríamos um tipo de contenção ou gargalo se estes 50 veículos levassem
mais de 01 hora para fazer o percurso.
Outro fator de extrema importância que deve ser entendido refere-se ao
desbalanceamento no uso do servidor e/ou nas configurações do sistema operacional. Tais
fatores poderão influenciar diretamente no desempenho do servidor. No sistema operacional,
existem valores que devem ser configurados para extrair o máximo de desempenho dos
recursos. Esse valores estão contidos no núcleo do sistema operacional denominado kernel.
É no kernel onde habilita-se dar mais recursos ou menos para os processos, sejam eles
em capacidade de alocação de memória, de arquivos abertos, máximo de transações
permitidas ou ainda uma infinidade de parâmetros que visam dar mais desempenho ao
servidor.
17
A ampliação do servidor também requer demasiada cautela. Não adianta mudar um
ponto com contenção, sejam eles (CPU, Memória e E/S), pois corre-se o risco de afetar outro.
Seria o mesmo que alterar um dos lados de um tripé conforme a Figura 2 .
Figura 2 - Tripé
Caso alterar quaisquer dos pontos acima sem critérios operacionais ao invés de
resolver um determinado problema, pode-se mover o problema para outro local causando um
desbalanceamento. Na prática isto poderá ocorrer quando expandir o poder de processamento
da CPU. Como o servidor terá maior capacidade de processamento, provavelmente irá
solicitar ou repassar mais processamento para os outros recursos.
Somando-se a isto, deve-se avaliar a infra-estrutura onde o servidor está instalado.
Isto é necessário, pois nos ambientes atuais existem uma série de outros elementos que são
passíveis de causarem alguma influência no desempenho do servidor. Na Figura 3, podemos
visualizar um cenário com maior complexidade onde existem servidores, storages, switches,
rede lan, rede san.
18
Storage
BKP
PROD
Espelhamento e Alta Disponibilidade
BKP
PROD
Swtiches SAN
Caminhos Alternativos
Rede de Servidores
Figura 3 - Ambiente Complexo
2.1
MÉTRICAS
A definição das métricas de gerenciamento de desempenho são necessárias para que o
servidor possa operar dentro de uma faixa de normalidade no consumo dos recursos de (CPU,
Memória e E/S). Caso alguma métrica seja ultrapassada, pode-se prejudicar o rendimento do
servidor ou a utilização dos aplicativos.
Em servidores que operam em chão de fábrica ou linha de produção onde o consumo
dos recursos são mais equilibrados, as métricas poderão ser mais próximas do seu limite de
funcionamento. Já em servidores com aplicações comerciais, deve-se usar critérios mais
conservadores pois as oscilações são muito rápidas e caso uma métrica esteja próxima do seu
limite, pode-se não ter tempo hábil para uma tomada de ação corretiva. Como exemplo,
pode-se comparar um processo de envasamento onde não podem existir atrasos sob pena de
19
comprometer o processo e um processo de emissão de relatórios onde um atraso de segundos
é tolerável.
É importante ter conhecimento do ambiente pois isso irá nortear as definições das
métricas. Métricas muito altas ou mais baixas, não devem ser efetivadas devido aos riscos de
um possível colapso no sistema. É função do administrador, envolver todos os responsáveis
pelos softwares do servidor para um alinhamento dos parâmetros de níveis de monitoração.
Outro ponto importante, é que jamais se deve aplicar a mesma regra de gerenciamento
para servidores de uso diferenciados, pois cada tipo de processamento poderá ter
particularidades específicas.
2.2
SISTEMA ATUAL
A Bunge Alimentos possui em todos os seus servidores Unix a plataforma de
gerenciamento chamada Perfview (OPENVIEW, 2005) configurada de forma pró-ativa e
com indicadores de análise de desempenho. Este software, fornece todas as informações do
uso de (CPU, Memória e E/S) e também gera alarmes automáticos quando alguma métrica é
ultrapassada reportando-a ao administrador do servidor para que seja tomada alguma ação.
O software possui estatísticas gráficas de uso ao longo do tempo possibilitando um
acompanhamento diário dos recursos utilizados. Isso possibilita realizar o planejamento de
capacidade (capacity plan) do servidor de forma eficiente.
20
2.3
NECESSIDADES
Em várias situações, ocorreram necessidades de utilizar um novo servidor Unix por
períodos curtos. Apesar da brevidade do uso, era necessário ter a monitoração implementada
também neste equipamento.
O prazo para obtenção de novas licenças para os servidores eram demasiadamente
longas e complexas. Quando as mesmas chegavam, o servidor já estava praticamente na fase
final dos testes. Isto gerava vários problemas, pois algumas validações não eram realizadas
corretamente no quesito CPU, Memória e E/S.
Diante disso, decidiu-se elaborar um novo software de gerenciamento de desempenho
de menor porte, mas de tal forma que os resultados fossem mais próximos possíveis do
software atual e com extrema rapidez na implementação.
2.4
TRABALHOS CORRELATOS
No mercado mundial, existem várias soluções dos grandes fornecedores de
hardwares/softwares que possuem softwares de gerenciamento de desempenho
para
servidores Unix. Os mais utilizados, segundo uma publicação do órgão internacional de
divulgação de tecnologia, o Gartner Group (GARTNER, 2005), são o Tivoli (IBM TIVOLI,
2005), Patrol (BMC PATROL, 2005), Unicenter (CA UNICENTER, 2005) e o Openview.
O OpenView, é a
plataforma de gerenciamento utilizada atualmente na Bunge
Alimentos. Conforme Hewlett-Packard Development Company (1995), esta plataforma
possui característica centralizada de gerenciamento, onde uma infinidade de aplicativos de
gerência e monitoração são agregados no mesmo ambiente criando uma visão única. No caso
21
do gerenciamento de análise de desempenho, o OpenView utiliza-se do Perfiview. O Perfview
permite realizar análises de CPU, memória, E/S e redes de forma gráfica e com recursos
muito sofisticados (HEWLETT-PACKARD DEVELOPEMENT COMPANY, 2002).
No
mesmo nível de detalhamento do OpenView, existem os produtos Unicenter,Tivoli e Patrol,
que desempenham funcionalidades praticamente iguais ao do Openview e que também são
softwares multiplataforma. A única consideração com relação a todos estes produtos é o seu
alto custo de aquisição.
Indiferente da escolha do produto, um dos objetivos além do gerenciamento em si do
produto é a sua eficácia e retorno do investimento que o software agrega. Na pesquisa
realizada pelo Gartner Group (GARTNER, 2005), indicou um alto grau de satisfação dos
produtos. A Figura 4, mostra que 60 % das respostas entre as empresas usuárias dos
softwares, relataram que obtiveram retorno de investimento no adoção das ferramentas de
gerenciamento em suas plataformas.
Figura 4 – Software de Gerenciamento - Gartner (2005)
22
3 DESENVOLVIMENTO DO TRABALHO
Esta fase tratou dos levantamentos e definições do novo software de gerenciamento.
3.1
LEVANTAMENTO E ANÁLISE
Foi necessário definir quais elementos e limites seriam monitorados pelo software de
gerenciamento de desempenho baseado no limite máximo de cada item. Entre eles tem-se:
a) central processing unit (CPU) : gerenciar de 0% a 100 % utilização da CPU;
b) memória do servidor: gerenciar de 0% a 100 % a utilização da memória;
c) fila de processos na CPU: gerenciar de 1 a 99 processos;
d) utilização do(s) acesso(s) ao(s) discos (input/output – I/O) : gerenciar de 0% a
100% a utilização do acesso aos discos;
e) uso da pró-atividade, alertando sempre que algum recurso esteja sendo usado
acima da métrica especificada pelo administrador do servidor.
3.2
PREMISSAS E LINGUAGENS UTILIZADAS
A infra-estrutura necessária utilizada para o desenvolvimento e operação da software
de gerenciamento de desempenho foi composta de:
a) servidor HP com sistema operacional HP-UX versão 11.00, 11.11 ou 11.23;
b) compilador C;
c) interpretador Shell;
d) interpretador Perl;
e) software Apache nativo do sistema operacional.
23
3.3
REQUISITOS DO SISTEMA
O Quadro 1 apresenta os requisitos funcionais que foram implementados.
Requisitos Funcionais
Implementados
RF01: O administrador do servidor define as métricas de gerenciamento
SIM
RF02: O administrador faz a ativação dos aplicativos no servidor.
SIM
RF03: Os aplicativos fazem coletas de os dados e gravam em arquivos.
SIM
RF04: A monitoração identifica o valor coletado, faz a comparação e envia
SIM
alarmes para o administrador do sistema quando necessário.
RF05: O administrador acessa o sistema através de um browser.
SIM
RF06: O administrador informa o período que deseja analisar os recursos
SIM
utilizados pelo servidor.
RF07: O sistema processa as informações solicitadas pelo administrador.
SIM
RF08: O sistema exibe os dados graficamente.
SIM
RF09: O administrador analisa os gráficos e toma de ação caso alguma
SIM
métrica esteja acima do especificado.
Quadro 1- Requisitos Funcionais
24
O Quadro 2 abaixo, apresenta os requisitos não funcionais que foram implementados.
Requisitos Não Funcionais
Contemplados
RNF01: O sistema executa em ambiente HP-UX versão 11.23.
SIM
RNF02: Servidor HP-UX versão 11.23 deverá possuir um webserver
SIM
(Apache) o qual disponibilizará as informações de monitoramento.
RNF03: O administrador do servidor
deverá acessar o sistema por
intermédio de um browser padrão de mercado como
SIM
Internet Explorer ou
Firefox.
RNF04: Caso o acesso ao software seja realizado via Internet, existe a
SIM
necessidade de configurar regras de firewall.
RNF05: O sistema deverá utilizar protocolo TCP/IP para conexão do usuário
até o servidor.
Quadro 2 - Requisitos Não-Funcionais
SIM
25
3.4
TOPOLOGIA FÍSICA
A infra-estrutura do funcionamento do novo software de gerenciamento foi elaborada
para ser de baixa complexidade e concentrar-se somente num único equipamento. Isto
simplificou o acesso às informações de tal forma para que qualquer computador na rede, fosse
capaz de acessar o software. Na Figura 5, pode-se verificar como o software de
gerenciamento de desempenho atual no ambiente com o(s) administrador(es) de Unix através
da infra-estrutura de rede e o servidor.
Figura 5 – Topologia Física
26
3.5
CICLOS DO DESENVOLVIMENTO
A Figura 6,
mostra como foram desenvolvidos os
ciclos do
software de
gerenciamento de desempenho pois a seqüência permitiu separar de forma clara todos os
pontos de atuação tanto no desenvolvimento quanto na implementação do software.
Figura 6 – Ciclos do Desenvolvimento
3.6
DEFINIÇÃO DAS MÉTRICAS
É muito importante conhecer o ambiente e o servidor que se deseja monitorar pois
para cada tipo, deve-se adotar medidas eficientes e que sejam benéficas. Não adianta ter
métricas muito pequenas, pois o sistema poderá gerar centenas de alertas. Por outro, não deve
deixar as métricas muito próximas do seu limite máximo, pois isso deixa muito pouco tempo
para uma possível intervenção do administrador.
Nesta etapa, definiram-se os parâmetros máximos que o sistema alerta quando algum
dos recursos computacionais ultrapassam o valor definido e também que ação executar.
27
3.6.1
Métrica de CPU em modo USER
A métrica CPU em modo USER, significa a quantidade de processador alocada para os
processos das aplicações, excluindo-se o sistema operacional. O consumo de CPU oscila entre
0% a 100% . Esta métrica ficou estabelecida em 90% de utilização. Caso este valor for
ultrapassado, o sistema gera um alerta ao administrador do servidor através de e-mail,
enviando também todos os processos que estavam consumindo CPU naquele momento.
3.6.2
Métrica de CPU em modo SYS
Um outro parâmetro monitorado foi o consumo de CPU pelo sistema operacional, ou
seja, em modo SYS. Este parâmetro informa o quanto a CPU está trabalhando para atender as
chamadas do sistema operacional. Foi estipulado que este parâmetro jamais deve ser superior
ao da CPU. Caso ultrapassar, o mesmo é alertado para o administrador.
3.6.3
Métrica de E/S
Mesmo com Storages de alta capacidade, é necessário monitorar este recurso. Este
consumo de E/S oscila entre 0% a 100% . Foi definido que esta métrica ficará estabelecida
em 40% de utilização. Caso este valor seja ultrapassado, o sistema alerta o administrador do
servidor através de email, enviando também a identificação de todos os nomes dos processos
que estavam consumindo recursos de E/S naquele momento e também qual era o periférico
de E/S mais utilizado.
28
3.6.4
Métrica de fila de processamento
Mesmo em sistemas multi-processados, toda requisição de processamento pelo sistema
operacional, passa por uma fila de processamento. O consumo da fila de processamento oscila
entre 00 a 99. Foi definido que esta métrica ficará estabelecida em 02. Caso este valor seja
ultrapassado, o sistema também gera alerta ao administrador através de e-mail, enviando a
identificação de todos os processos que estavam consumindo recursos de CPU e o valor da
fila de processamento naquele momento.
3.6.5
Métrica de consumo de memória
De acordo com recomendações do fabricante do servidor e com análises internas dos
baseadas nos processos da empresa, foi definido que o limite ficasse em 70% de ocupação.
29
3.6.6
Quadro resumo das métricas
No Quadro 3, consolida-se as ações dos alarmes definidas na fase de levantamento. É
importante mencionar que se pode incluir qualquer outra ação que se faça necessária a
qualquer momento.
MÉTRICA
CPU em Modo USER
CPU em Modo SYS
VALOR
> 90 %
> CPU em
AÇÃO
•
•
Modo USER
E/S
> 40 %
•
•
Capturar
DESTINO
todos
Enviar por email ao
os processos em
administrador
execução.
servidor.
Capturar
todos
Enviar por email ao
os processos em
administrador
execução.
servidor.
Capturar
todos
administrador
execução.
servidor.
o
periférico
que
do
Enviar por email ao
os processos em
Identificar
do
do
esteja gerando o
problema.
FILA de PROCESSAMENTO
>2
•
•
Capturar
todos
Enviar por email ao
os processos em
administrador
execução.
servidor.
do
Fazer estatística
do consumo das
filas.
MEMÓRIA
> 70 %
•
•
Capturar
todos
Enviar por email ao
os processos em
administrador
execução.
servidor.
Capturar
o
consumo
de
memória
de
todos
os
processos.
Quadro 3 – Resumo das Métricas
do
30
3.7
AGENTES COLETORES
A forma de coletar os dados dos recursos consumidos ocorre através de dois
aplicativos que executam paralelos e continuamente no servidor. O primeiro aplicativo tem a
função de coletar dados da (CPU, Memória e Fila de Processos) e o segundo, tem a função
de coletar dados do E/S. Todo o armazenamento foi feito em arquivos no formato American
Standard Code for Information Interchange (ASCII).
3.8
TRATAMENTO DE ALERTAS
Da mesma forma que os aplicativos coletores, foi criado um terceiro aplicativo em
linguagem Shell, onde estão configuradas as métricas e ações que devem ser realizadas caso
alguma seja ultrapassada. Se isto acontecer, o aplicativo coletor envia uma mensagem através
de email ao administrador do sistema com as informações necessárias para análise
relacionadas no item 3.3.6.
3.9
EXIBIÇÃO DOS GRÁFICOS
Depois dos dados coletados e armazenados nos arquivos, são disponibilizados para o
administrador acessá-los graficamente através de um aplicativo Web para fazer as devidas
análises.
31
4 EXEMPLOS DE RECEBIMENTO DOS ALARMES
Neste capítulo, são apresentados como os alarmes são recebidos pelo administrador do
servidor.
4.1
CPU EM MODO USER
Os alertas recebidos sobre a métrica definida para CPU em modo USER, contém todas
as informações do que estava sendo processado no instante do alerta, conforme demonstrados
no exemplo no Quadro 4 abaixo na coluna USER.
------ 12/11/2006 19:02:24 Gargalo CPU USER ( 90) ----
System: c0590 Sun Nov 12 19:02:29 2006
Load averages: 0.68, 0.93, 0.88
254 processes: 220 sleeping, 34 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.06 0.4% 0.0% 0.0% 99.6% 0.0% 0.0% 0.0% 0.0%
1 1.30 1.0% 0.0% 1.0% 98.0% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- ----avg 0.68 0.6% 0.0% 0.4% 99.0% 0.0% 0.0% 0.0% 0.0%
Memory: 812676K (123028K) real, 526668K (109432K) virtual, 2132040K free Page# 1/16
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 ? 1779 oracleem 152 20 176M 143M run 198:24 2.12 2.12 native_thr
0 ? 33 root 152 20 1856K 0K run 20:26 1.25 1.24 vxfsd
1 ? 2353 root 154 20 18308K 9876K sleep 418:36 1.20 1.20 netmon
1 ? 2724 precise 152 20 214M 61480K run 45:04 0.60 0.60 P
1 ? 2357 root 152 20 30580K 7908K run
6:21 0.55 0.55 ovoareqsdr
1 ? 1488 root -16 20 23052K 5288K run 72:24 0.54 0.54 midaemon
1 ? 2671 precise 152 20 208M 37504K run 12:32 0.38 0.38
0 ? 2686 precise 152 20 215M 50048K run 17:43 0.36 0.36 bin
1 ? 2693 precise 152 20 210M 42764K run 13:57 0.34 0.34 1.3.1
0 ? 2351 root 154 20 9076K 4896K sleep 31:44 0.29 0.29 DLTtrapdest
0 ? 2377 root 152 20 30656K 7296K run
1:18 0.25 0.25 opcdispm:
1 ? 1835 oracleem 168 20 22364K 2712K sleep 22:26 0.25 0.25 dbsnmp
0 ? 2373 root 152 20 23008K 2712K run 85:42 0.23 0.22 opcactm
1 ? 3 root 128 20 32K 0K sleep 24:03 0.21 0.21 statdaemon
1 ? 1572 root 152 20 101M 85900K run 11:15 0.20 0.20 rds
0 ? 2426 root 152 20 17968K 4720K run
1:09 0.19 0.19 opcctla
UID PID PPID C STIME TTY
TIME COMMAND
root 0 0 0 Nov 5 ?
0:18 swapper
root 1 0 0 Nov 5 ?
1:55 init
Quadro 4 – Alarme cpu em modo user
32
4.2
CPU EM MODO SYS
Da mesma forma, ocorre com a métrica definida para CPU em modo SYS, conforme
demonstrados no Quadro 5 na coluna SYS.
------ 12/11/2006 19:02:24 Gargalo CPU SYS ( 32) -----
System: c0590 Sun Nov 12 19:02:29 2006
Load averages: 0.68, 0.93, 0.88
254 processes: 220 sleeping, 34 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.06 0.4% 0.0% 0.0% 99.6% 0.0% 0.0% 0.0% 0.0%
1 1.30 1.0% 0.0% 1.0% 98.0% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- ----avg 0.68 0.6% 0.0% 0.4% 99.0% 0.0% 0.0% 0.0% 0.0%
Memory: 812676K (123028K) real, 526668K (109432K) virtual, 2132040K free Page# 1/16
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 ? 1779 oracleem 152 20 176M 143M run 198:24 2.12 2.12 native_thr
0 ? 33 root 152 20 1856K 0K run 20:26 1.25 1.24 vxfsd
1 ? 2353 root 154 20 18308K 9876K sleep 418:36 1.20 1.20 netmon
1 ? 2724 precise 152 20 214M 61480K run 45:04 0.60 0.60 P
1 ? 2357 root 152 20 30580K 7908K run
6:21 0.55 0.55 ovoareqsdr
1 ? 1488 root -16 20 23052K 5288K run 72:24 0.54 0.54 midaemon
1 ? 2671 precise 152 20 208M 37504K run 12:32 0.38 0.38
0 ? 2686 precise 152 20 215M 50048K run 17:43 0.36 0.36 bin
1 ? 2693 precise 152 20 210M 42764K run 13:57 0.34 0.34 1.3.1
0 ? 2351 root 154 20 9076K 4896K sleep 31:44 0.29 0.29 DLTtrapdest
0 ? 2377 root 152 20 30656K 7296K run
1:18 0.25 0.25 opcdispm:
1 ? 1835 oracleem 168 20 22364K 2712K sleep 22:26 0.25 0.25 dbsnmp
0 ? 2373 root 152 20 23008K 2712K run 85:42 0.23 0.22 opcactm
1 ? 3 root 128 20 32K 0K sleep 24:03 0.21 0.21 statdaemon
1 ? 1572 root 152 20 101M 85900K run 11:15 0.20 0.20 rds
0 ? 2426 root 152 20 17968K 4720K run
1:09 0.19 0.19 opcctla
UID PID PPID C STIME TTY
TIME COMMAND
root 0 0 0 Nov 5 ?
0:18 swapper
root 1 0 0 Nov 5 ?
1:55 init
root 2 0 0 Nov 5 ?
0:14 vhand
root 3 0 0 Nov 5 ?
24:03 statdaemon
root 4 0 0 Nov 5 ?
6:41 unhashdaemon
root 8 0 0 Nov 5 ?
0:00 supsched
root 9 0 0 Nov 5 ?
0:00 strmem
root 10 0 0 Nov 5 ?
0:00 strweld
Quadro 5 – Alarme cpu em modo sys
33
4.3
E/S
No alerta de consumo de E/S , ou seja, no acesso aos discos, além do recebimento dos
processos que estavam em execução, é recebida a informação de qual é o disco do servidor
que apresenta problemas. Esta informação é fundamental para o administrador saber onde
está localizado o problema conforme Quadro 6 na coluna device.
------ 12/11/2006 19:13:08 Gargalo E/S IO ( 70) -----
HP-UX c0590 B.11.00 U 9000/800
11/12/06
19:13:08 device %busy avque r+w/s blks/s avwait avserv
19:13:09 c1t0d0 2.97 0.50
4
63 4.50 8.58
19:13:10 c2t0d0 14.00 0.50
20 234 4.92 7.26
c1t0d0 2.00 0.50
4
64 5.47 4.17
19:13:11 c2t0d0 3.96 0.60
10
91 3.33 23.74
c1t0d0 0.99 0.50
2
32 4.43 5.11
19:13:12 c2t0d0 3.00 0.50
5
32 3.05 6.94
c1t0d0 2.00 0.50
3
48 4.54 7.55
19:13:13 c2t0d0 11.00 0.50
14 126 3.87 8.31
c1t0d0 1.00 0.50
2
32 1.00 8.18
c1t2d0 1.00 0.50
1
16 7.19 5.77
Average
Average
Average
Average
c1t0d0
c2t0d0
c1t2d0
c2t2d0
1.30
3.19
0.20
0.10
0.50
0.52
0.50
0.50
2
5
0
0
37 3.97 6.85
48 4.10 10.89
3 7.52 5.78
2 0.49 9.92
System: c0590 Sun Nov 12 19:02:29 2006
Load averages: 0.68, 0.93, 0.88
254 processes: 220 sleeping, 34 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.06 0.4% 0.0% 0.0% 99.6% 0.0% 0.0% 0.0% 0.0%
1 1.30 1.0% 0.0% 1.0% 98.0% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- ----avg 0.68 0.6% 0.0% 0.4% 99.0% 0.0% 0.0% 0.0% 0.0%
Memory: 812676K (123028K) real, 526668K (109432K) virtual, 2132040K free Page# 1/16
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 ? 1779 oracleem 152 20 176M 143M run 198:24 2.12 2.12 native_thr
0 ? 33 root 152 20 1856K 0K run 20:26 1.25 1.24 vxfsd
1 ? 2353 root 154 20 18308K 9876K sleep 418:36 1.20 1.20 netmon
1 ? 1488 root -16 20 23052K 5288K run 72:24 0.54 0.54 midaemon
1 ? 2671 precise 152 20 208M 37504K run 12:32 0.38 0.38
0 ? 2686 precise 152 20 215M 50048K run 17:43 0.36 0.36 bin
1 ? 2693 precise 152 20 210M 42764K run 13:57 0.34 0.34 1.3.1
0 ? 2351 root 154 20 9076K 4896K sleep 31:44 0.29 0.29 DLTtrapdest
0 ? 2377 root 152 20 30656K 7296K run
1:18 0.25 0.25 opcdispm:
1 ? 1835 oracleem 168 20 22364K 2712K sleep 22:26 0.25 0.25 dbsnmp
Quadro 6 – Alarme consumo e/s
34
4.4
FILA DE PROCESSAMENTO
De todos os parâmetros, talvez esse seja o mais importante. Ele mostra ao
administrador quantos processos estão sendo contingenciados pela CPU. Abaixo, no Quadro
7, este parâmetro está identificado na coluna runq-sz.
------ 12/11/2006 19:27:41 Gargalo Fila de Processamento ( 3 ) -----
HP-UX c0590 B.11.00 U 9000/800
11/12/06
19:27:41 runq-sz %runocc swpq-sz %swpocc
19:27:42 0.0
0 0.0
0
19:27:43 0.0
0 0.0
0
19:27:44 0.0
0 0.0
0
19:27:45 0.0
0 0.0
0
19:27:46 0.0
0 0.0
0
19:27:47 1.0
50 0.0
0
19:27:48 1.0
51 0.0
0
19:27:49 1.0
50 0.0
0
19:27:50 2.0
51 0.0
0
19:27:51 3.0
49 0.0
0
Average
1.6
25 0.0
0
System: c0590 Sun Nov 12 19:27:56 2006
Load averages: 0.99, 0.94, 0.96
260 processes: 224 sleeping, 36 running
Cpu states:
CPU LOAD USER NICE SYS IDLE BLOCK SWAIT INTR SSYS
0 0.51 99.4% 0.0% 0.6% 0.0% 0.0% 0.0% 0.0% 0.0%
1 1.47 2.8% 0.0% 2.4% 94.8% 0.0% 0.0% 0.0% 0.0%
--- ---- ----- ----- ----- ----- ----- ----- ----- ----avg 0.99 51.1% 0.0% 1.6% 47.3% 0.0% 0.0% 0.0% 0.0%
Memory: 889984K (173660K) real, 612632K (176836K) virtual, 2048956K free Page# 1/17
CPU TTY PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 ? 16660 precise 237 20 91648K 61028K run
2:48 40.73 40.66 pss_tuner.90
1 ? 1779 oracleem 152 20 176M 143M run 198:51 2.08 2.08 native_thr
1 ? 16666 oracleem 154 20 161M 3116K sleep 0:27 1.66 1.66 oraclec0590oem
1 ? 2353 root 154 20 18308K 9876K sleep 418:41 1.37 1.37 netmon
1 ? 33 root 152 20 1856K 0K run 20:28 1.27 1.27 vxfsd
1 ? 1488 root -16 20 23052K 5288K run 72:34 0.64 0.64 midaemon
1 ? 2357 root 152 20 30580K 7908K run
6:22 0.58 0.58 ovoareqsdr
1 ? 2724 precise 152 20 216M 62060K run 45:15 0.47 0.47 P
1 ? 2671 precise 152 20 208M 37504K run 12:35 0.40 0.40
Quadro 7 – Alarme fila de processamento
35
4.5
MEMÓRIA
Quando a quantidade de memória consumida for superior a 70 % de toda a memória
física do servidor, o administrador recebe um email com todos os processos e seus respectivos
consumo de memória de cada processo. Na coluna SZ do Quadro 8, esta quantidade deverá ser
multiplicada por quarto para representar o valor em kbytes. Isto é necessário devido a
particularidades do sistema operacional HP-UX.
------ 12/11/2006 20:53:33 Gargalo De Memoria Usada 2936012 -----
1003 S
FS
`UID PID PPID C PRI NI ADDR SZ
WCHAN TTY
TIME COMD
1003 S
0 0 0 0 128 20
b94c10 0
996060 ?
0:18 swapper
141 S
0 1 0 0 168 20
42fd0700 115 400003ffffff0000 ?
1:56 init
1003 S
0 2 0 0 128 20
43128500 0
12ce9e8 ?
0:15 vhand
1003 S
0 3 0 0 128 20
43128800 0
996060 ?
24:18 statdaemon
1003 S
0 4 0 0 128 20
43128b00 0
b37568 ?
6:45 unhashdaemon
1003 S
0 8 0 0 100 20
42cd1900 0
e89ea0 ?
0:00 supsched
1003 S
0 9 0 0 100 20
42cd1c00 0
b36d38 ?
0:00 strmem
1003 S
0 10 0 0 100 20
42cd1f00 0
d342f8 ?
0:00 strweld
1003 S
0 11 0 0 100 20
43128200 0
b36f58 ?
0:00 strfreebd
1003 S
0 12 0 0 -32 20
43128e00 0
b338e0 ?
7:35 ttisr
1003 S
0 18 0 0 147 20
42fd0a00 0
b36428 ?
0:00 lvmkd
1003 S
0 19 0 0 147 20
42fd0d00 0
b36428 ?
0:00 lvmkd
1003 S
0 20 0 0 147 20
42fd6000 0
b36428 ?
0:00 lvmkd
1003 S
0 21 0 0 147 20
42fd6300 0
b36428 ?
0:00 lvmkd
1003 S
0 22 0 0 147 20
42fd6600 0
b36428 ?
0:00 lvmkd
1003 S
0 23 0 0 147 20
42fd6900 0
b36428 ?
0:00 lvmkd
1003 S
0 24 0 0 148 20
42fd6c00 0
8003f0 ?
0:00 lvmschedd
1003 S
0 25 0 0 100 20
42fd6f00 0
-?
0:00 smpsched
1003 S
0 26 0 0 100 20
42fe5200 0
-?
0:00 smpsched
1003 S
0 27 0 0 100 20
42fe5500 0
-?
0:00 sblksched
1003 S
0 28 0 0 100 20
42fe5800 0
-?
0:00 sblksched
1S
0 2468 1 0 156 20
4a844f00 23
40fc1000 console 0:00 getty
1S
0 647 1 1 154 20
43c59f00 11
b34e88 ?
20:43 syncer
1S
0 44 1 0 148 20
42fb8d00 73
431bc690 ?
0:00 emcpdaemon
1003 R
0 33 0 0 152 20
43188300 0
-?
20:43 vxfsd
1003 S
0 45 0 0 148 20
43180600 0
43180390 ?
0:00 emcpProcd
1003 S
0 46 0 0 148 20
42fd0500 0
43180790 ?
0:23 emcpd
1003 S
0 47 0 0 148 20
43188b00 0
43180f90 ?
0:00 emcpdfd
1003 S
0 48 0 0 148 20
43188e00 0
43180e90 ?
0:44 emcpwdd
1003 S
0 49 0 0 148 20
435ef100 0
43180890 ?
0:00 emcpstratd
0 50 0 0 148 20
435ef400 0
431bc990 ?
0:00 MpAsyncIoDaemo
Quadro 8 – Alarme consumo de memória
36
5 IMPLEMENTAÇÃO
As fases de implementação do software de análise de desempenho, foram dividas em
três etapas distintas descritas a seguir.
5.1
ETAPAS
O Quadro 12 abaixo, mostra o detalhamento das 3 fases. São elas:
ETAPA
OBJETIVO
RESULTADO
1.
Definição do local de execução dos programas no
/usr/local/Multitask/mtperf/var/sar
servidor.
2.
3.
Definição da forma de inicializar os aplicativos de
Foram inseridos na rotina automática de
coleta e de monitoração denominados :
processamento do HP-UX denominada cron
•
Mtperf_CPU
•
Métricas
Habilitação do aplicativo web Apache.
com a periodicidade de 1 em 1 minuto.
Inserido no arquivo /opt/hpws/apache/conf
Quadro 12 – Detalhamento das fases
37
5.1.1
Acessando o sistema
O acesso ao sistema é realizado através de um browser como o Internet Explorer ou
Firefox, conforme a Figura 7 acessando o endereço de web http://10.170.10.12. O sistema
exibe dois campos sendo o código de empresa e a senha do servidor que está sob
responsabilidade do administrador Unix.
Figura 7 – Acessando o sistema
5.1.2
Solicitando os parâmetros para análise
O Administrador do sistema informa os parâmetros solicitados de acordo com os
campos exibidos na tela tais como, data inicial, data final, horários, métricas e cores para
visualização. Ao final, deve clicar no campo Processa para a execução do processamento
conforme Figura 8.
38
Tela(s)
TEL002 – Solicitação dos Parâmetros de análise
Figura 8 – Solicitando os parâmetros
39
5.1.3
Exibição entre períodos das métricas
O sistema acessa os arquivos coletados e exibe as informações graficamente,
permitindo ao administrador identificar o comportamento e consumo de cada parâmetro
conforme Figura 9. Esta visão, permite:
a) identificar o recurso que está com consumo inapropriado;
b) identificar horários com demanda alta ou baixa de processamento;
c) realizar ajustes no sistema operacional, dependendo dos recursos contingenciados;
d) realizar estudo de planejamento de capacidade.
Figura 9 – Exibição dos parâmetros processados
40
5.2
VALIDAÇÃO DOS RESULTADOS OBTIDOS
Para validar o grau de confiabilidade das informações do novo software, foram
comparados os resultados com o software Perfview (OPENVIEW,2005) o qual a Bunge
utiliza em vários servidores. Na Figura 10, mostra a comparação entre os dois aplicativos.
Nota-se que o novo software mostrou além da memória ocupada, a quantidade de memória
total disponível. Isso agrega na análise do administrador realiza, quando da existência de
muitos servidores no ambiente.
Figura 10 – Comparando resultados
41
5.2.1
Exibindo várias métricas
Na Figura 11, estão exibidas todas as métricas solicitadas num determinado período de
dias. Isto permite ao administrador, fazer um plano de capacidade dos recursos alocados.
Caso identifique algum recurso que esteja próximo do limite, poderá tomar alguma
ação pró-ativa para evitar um provável gargalo no processamento.
Figura 11– Métricas diversas
42
5.2.2
Código do aplicativo de métricas
Possui a função de tratar e configurar as métricas definidas para o envio de alarmes.
Foi desenvolvido em linguagem Shell. A opção por esta linguagem foi devido a agilidade na
configuração. Uma parte do código fonte está contido no Quadro 9.
USR=10
SYS=20
IO=30
RQ=2
MEM=70
cd /usr/local/Multitask/mtperf/var/sar
arquivo=`ls -1 mtperf_*.log`
tail -1 $arquivo > /usr/tmp/log1
usr=`cat /usr/tmp/log1 | awk -F " " ' { print $14 } ' `
sys=`cat /usr/tmp/log1 | awk -F " " ' { print $15 } ' `
io=`cat /usr/tmp/log1 | awk -F " " ' { print $16 } ' `
rq=`cat /usr/tmp/log1 | awk -F " " ' { print $2 } ' `
> /usr/tmp/c0590-ok.txt
if [ $usr > $USR ]
then
echo "\n\n ------ `date '+%d/%m/%Y %T'` Gargalo CPU USER ( $usr ) ----- \n\n" >> /usr/tmp/c0590-ok.txt
top -f /usr/tmp/c0590-ok.txt
ps -ef >> /usr/tmp/c0590-ok.txt
fi
MemoriaOcupada=0
Calc1=`echo phys_mem_pages/D | adb -k /stand/vmunix /dev/kmem | tail -1 | cut -d: -f2| tr -d " "`
MemoriaFisica=`expr $Calc1 \* 4 `
Calc2=`vmstat | tail -1 | awk -F " " ' { print $5 } ' `
MemoriaLivre=` expr $Calc2 \* 4 `
MemoriaOcupada=`expr $MemoriaFisica - $MemoriaLivre`
CA1=`expr $MemoriaFisica \* $MEM`
CA2=` expr $CA1 / 100`
if [ $CA2 > $MemoriaLivre ]
then
echo "\n\n ------ `date '+%d/%m/%Y %T'` Gargalo De Memoria Usada $CA2 ----- \n\n" >> /usr/tmp/c0590ok.txt
ps -el > /usr/tmp/c0590-ok.txtfi
Quadro 9 – Código fonte shell
43
5.2.3
Código do aplicativo coletor de desempenho
Coleta os dados de CPU, memória, E/S e fila de processamento. Foi desenvolvido em
linguagem C por uma questão de melhor desempenho e interação com o kernel. No Quadro
10, tem-se uma parte do código fonte.
#include <stdio.h>
#include <sys/param.h>
#include <sys/pstat.h>
#include <unistd.h>
int Verbose = 0;
main(ac, av)
int ac;
char *av[];
{
struct pst_static pst;
struct pst_dynamic psd;
struct pst_vminfo psv;
struct pst_swapinfo pss;
int n, nVezes, idx, PaginaEmKb, wUsr, wSys, wWio;
int wHelp = 0, NumeroDeVezes = 0x7ffffffe, Intervalo = 60;
long TotalDeMemoria, TotalMemoriaOcupada, TotalDeSwap, TotalSwapLivre,
TotalSwapOcupado;
long w_cpu_time_tot;
long w_cpu_time[4];
/* 0 - %usr, 1 - %sys, 2 - %idle, 3 - %wio */
while ((n = getopt(ac, av, "hvn:i:t:")) != -1) {
switch (n) {
case 'v':
Verbose = 1;
break;
case 'n':
NumeroDeVezes = atoi(optarg);
break;
case 'i':
Intervalo = atoi(optarg);
break;
PaginaEmKb = pst.page_size / 1024;
TotalDeSwap = TotalSwapLivre = idx = 0;
while (pstat_getswap(&pss, sizeof(pss), (size_t) 1, idx) > 0) {
TotalSwapLivre += (pss.pss_nfpgs * PaginaEmKb);
if (pss.pss_flags & SW_BLOCK) {
TotalDeSwap += pss.pss_nblks;
} else if (pss.pss_flags & SW_FS) {
TotalDeSwap += (pss.pss_allocated * pss.pss_swapchunk);
}
idx = pss.pss_idx + 1;
Quadro 10 – Código fonte do coletor de cpu
44
5.2.4
Código do aplicativo de exibição dos gráficos
Abaixo, no Quadro 11 está o código fonte do aplicativo Web que foi desenvolvido em
da linguagem Perl por ser mais aderente ao HP-UX e consumir poucos recursos do servidor.
Este aplicativo, integra-se com o software Apache o qual é nativo do HP-UX.
#!/usr/bin/perl
#
# $Id: mtperf.cgi,v 1 $
#
use lib '/usr/local/Multitask/mtperf/cgi-bin';
#use warnings;
use MTRotinas;
use CGI qw/:standard/;
my (@Empresas, @CPU, $Empresa, $CPU, $Posicao);
my $StatusMsg='window.status="MC";return true;';
my %mainColor = (
"alink" => "BLUE",
"bgcolor" => "#CCCCFF",
"bgcolor" => "WHITE",
"link" => "BLUE",
"text" => "BLUE",
"vlink" => "BLUE",
);
print &header();
$Empresa=&param('Empresa');
$Empresa=~s/ +//g if ($Empresa);
$CPU=&param('CPU');
$CPU=~s/ +//g if ($CPU);
&PreparaOpcoes($DirLog);
print &start_html({-title=>'Define parametros', -onLoad=>$StatusMsg,
%mainColor}),
&comment('$Id: mtperf.cgi,v 1.6 2005/01/12 12:40:37 $'),
&meta({'-HTTP-EQUIV'=>'Pragma', -CONTENT=>'no-cache'}),
&start_multipart_form({-method=>'post', -name=>'win', -target=>"_blank",
-action=>"ProcessaGrafico_FURB.cgi"}), "\n",
&div({-align=>'Center'},
&h1("Analisador de Performance - $CPU"),
&br(), &hr({-width=>'50%'}), &br(),
&table(
&Tr(
&td({-align=>'Right'}, &b("Data inicial : ")),
&td({-align=>'Left'}, &input({-type=>'text', -name=>'DataInicio',
-value=>$DataInicio, -size=>10})),
),
&Tr(
Quadro 11 – Código fonte de exibição dos gráficos
45
6 CONCLUSÕES
O objetivo principal do trabalho foi alcançado com sucesso pois todos os propósitos
foram atingidos tais como :
Os objetivos específicos do trabalho foram:
a) identificação do consumo dos recursos de CPU, Memória, E/S e fila de
processamento;
b) identificação dos picos de demanda em determinados períodos;
c) exibição dos históricos de utilização dos recursos do servidor através de gráficos;
d) envio de alertas quando alguma métrica foi ultrapassada;
e) baixo custo de implementação e agilidade na configuração;
f) manter os dados coletados depositados num único equipamento reduzindo a
complexidade de manutenções instalações;
g) facilidade de acesso ao software de gerenciamento de desempenho através.
46
É importante mencionar que opinião semelhante, é compartilhada também pela
empresa conforme Figura 12, onde ratifica os objetivos atingidos.
Figura 12 – Parecer da empresa
O trabalho também foi válido por agregar conhecimento e mostrar que em alguns
casos, o novo software forneceu informações mais detalhadas que o atual.
Por outro lado, é importante frisar que na resolução de problemas complexos, se faz
necessário o uso de outros softwares mais específicos de acordo com o tipo de cada aplicação
seja ela comercial ou industrial.
6.1
EXTENSÕES
Existem vários melhoramentos que poderão ser incorporados neste trabalho como, por
exemplo, à guarda das informações coletadas num banco de dados padrão de mercado. Isso
facilitaria futuras consultas e interligações com outros aplicativos. Porém, esta melhoria deve
ser avaliada com extrema cautela, para que não onere os custos e ou a complexidade do
software para a implantação nos servidores. Outra possível evolução seria permitir mais de
um nível de alarme, classificando-os em categorias de criticidade.
Por fim, deve-se evitar que o software de gerenciamento de desempenho seja um
consumidor de recurso no sistema operacional.
47
7 BIBLIOGRAFIA
BEZZERA, Eduardo. Princípios de análise e projetos de sistemas com UML. Rio de
Janeiro: Campus, 2002.
BMC
Patrol.
Software
de
gerenciamento.
Disponível
<http://www.bmc.com/products/products_services_detail/0,,0_0_0_2001,00.html>.
em 07 nov. 2005
em:
Acesso
BUNGE
ALIMENTOS
S/A.
Disponível
em:
<http://www.bungealimentos.com.br/institucional/aempresa/bungealimentos.asp>. Acesso em
07 nov. 2005
CA
UNICENTER.
Software
de
gerenciamento.
Disponível
<http://www.ca.com/products/unicent/whitepap.htm>. Acesso em: 07 nov. 2005
em:
GARTNER. Órgão internacional de divulgação de análises e pesquisas sobre a indústria
global de tecnologia da informação. Disponível em: <http://www.gartner.com>.Acesso em:
07 nov. 2005
HEWLETT-PACKARD DEVELOPMENT COMPANY. Resource and performance
management ( HP ) Helwett Packard. Copyright Hewlett-Packard Company 1993-1995.
HEWLETT-PACKARD DEVELOPMENT COMPANY. Using HP perfview to view HPUX workload manager performance metrics. [S.l.], 2002. Disponível em:
<http://www.hp.com/products1/unix/operating/docs/perfview_howto.html>. Acesso em: 07
nov. 2005
Software
de
gerenciamento.
Disponível
IBM
TIVOLI.
<http://www.ibm.com/br/products/software.tivoli/>. Acesso em: 07 nov. 2005
em:
KLAUCK, Hugo A. Gerência de redes ATM utilizando CORBA e SMNP. 1999. 51 F.
Trabalho Individual ( Mestrado em Ciências da Computação ) – Depto de Informática e de
Estatística, Universidade Federal de Santa Catarina, Florianópolis.
OPENVIEW HEWLETT-PACKARD DEVELOPMENT COMPANY. Plataforma de
gerenciamento. Disponível em: < http://www.openview.hp.com >. Acesso em: 07 nov. 2005
SPECIALSKI, Elizabeth. Gerência de redes de computadores e telecomunicações. 1999.
51 f. Notas de Aula . Departamento de Informática e de Estatística, Universidade Federal de
Santa Catarina, Florianópolis.
Download