Professional Documents
Culture Documents
METODOLOGIA PARA
AVALIAO DO DESEMPENHO
DE APLICATIVOS
Pgina 1/26
31/12/2015
1 - INTRODUO:
Desde o incio dos anos 90 j se vislumbrava a tendncia para a arquitetura Cliente-Servidor (ClientServer), visto o aumento progressivo da velocidade e capacidade de armazenamento dos at ento
chamados "Micro-Computadores". Ainda que as redes pioneiras pecassem por uma performance
baixssima, mesmo para os padres da poca, se comunicando em grande parte por portas seriais com
taxa de 9600 bauds, esse era o caminho, contrariamente antiga arquitetura (main-frames e terminais
"burros"). No cabe naturalmente maior discusso acerca da evoluo dos sistemas de grande porte,
primeiramente pelo fato do parque de equipamentos dos Correios ser quase em sua totalidade composto
de computadores pessoais (Personal Computers) e tambm pelo fato das tecnologias envolvendo
computadores de pequeno porte trabalharem cada vez mais no sentido de ultrapassarem seus "irmos
maiores". Continuando, vieram as primeiras redes de baixa velocidade com tecnologia de cabo coaxial, as
quais evoluram gradualmente para redes de alta performance, at chegarmos na era da fibra tica e dos
satlites de comunicao, o que nos proporciona desempenhos admirveis, inacreditveis para quem
vivesse h apenas 15 anos atrs.
Vieram (atreladas aos conceitos de redes locais e remotas de alta performance) um sem nmero de
tecnologias visando a otimizao dos tempos de resposta e da confiabilidade acerca da atualidade dos
dados e cada vez mais se percebeu a importncia dos sistemas funcionarem on-line, e isso j no
representava os custos exorbitantes do passado. Foi assim que assistimos ao florescer de paradigmas
como:
-
Com tantas tecnologias revolucionrias, como no poderia deixar de ser, muita coisa foi estruturada de
forma desordenada, desprovida de critrio, quando no at ferindo leis universais da Engenharia de
Sistemas.
O Departamento de Produo (subordinado Diretoria de Tecnologia da ECT) achou por bem, em face do
exposto acima, iniciar a construo de uma metodologia para avaliao de desempenho em todos os nveis
conhecidos, seja de software, hardware ou middleware. Entendemos que, ainda que iniciantes em tais
tcnicas, necessrio o fomento do conhecimento a respeito, e o que o presente trabalho ir buscar
fazer, mais guisa de se iniciar uma cultura de avaliao sistemtica de desempenho contrariamente aos
"achismos" reinantes na maioria dos nichos de desenvolvimento. Em resumo, pretendemos estabelecer
critrios para julgar a eficincia ou ineficincia dos tempos de resposta de uma aplicao, o que nos
permita saber onde so necessrias melhorias e modificaes. O consagrado costume de simplesmente
pedir um servidor mais potente nos parece antiquado, bem como os cimes dos desenvolvedores e sua
resistncia em exibir o cdigo construdo pelos mesmos. Em vrios casos, at a simples obteno de um
modelo de dados demandou esforos e burocracias incalculveis, com um trfego de comunicaes
internas muitas vezes maior que a documentao demandada em si. esta forma de pensar que tentamos
Herbert Lopes da Silva (Consultor CTIS)
Pgina 2/26
31/12/2015
Pgina 3/26
31/12/2015
Pgina 4/26
31/12/2015
O Servidor apresenta a todos os seus clientes uma interface nica e bem definida.
O Cliente no precisa conhecer a lgica do Servidor, apenas sua interface externa.
O Cliente no depende da localizao fsica do Servidor, nem do tipo de equipamento do mesmo,
tampouco de seu sistema operacional.
Mudanas nos Servidores acarretam na necessidade de pouca ou nenhuma mudana nos Clientes.
Servios: O servidor um provedor de servios, ao passo que o cliente um consumidor dos mesmos
servios.
Recursos Compartilhados: Um servidor pode atender a muitos clientes simultaneamente, e gerenciar o
acesso destes aos mesmos recursos.
Protocolos Assimtricos: A relao cliente para servidor de muitos para um; os clientes solicitam
servios, enquanto os servidores esperam suas solicitaes passivamente.
Ambientes mesclados com eficincia: O software independente do hardware ou das plataformas de
software do sistema operacional; podem-se ter plataformas iguais ou diferentes no cliente e no
servidor.
Troca de informaes baseadas em mensagens: Os sistemas interagem atravs de um mecanismo de
transmisso de mensagens, as quais se encarregam da entrega das solicitaes e respostas.
Encapsulamento de servios: Os servidores podem ser substitudos sem afetar os clientes desde que a
interface para receber solicitaes e oferecer servios permanea imutvel.
Escalonamento fcil: Os sistemas Cliente - Servidor podem ser escalonados vertical e horizontalmente,
ou seja, podem migrar para servidores maiores ou mltiplos servidores da mesma forma que podem ter
corte ou acrscimo de clientes; ambas as aes ocorrem sem que haja grande diferena na
performance do sistema.
Integridade: Tanto o cdigo quanto os dados do servidor se conservam de maneira centralizada, o que
vale dizer com menor custo de manuteno e proteo adequada integridade dos dados
compartilhados. Alm disso, os clientes mantm sua individualidade e independncia.
Pgina 5/26
31/12/2015
Pgina 6/26
31/12/2015
O Software dos Aplicativos do Computador Cliente. Naturalmente sempre uma sada cmoda
culparmos William Henry Gates por todas as nossas mazelas de lentido. Muitas aplicaes, em sua
Pgina 7/26
31/12/2015
Distribua bem seus dados. Em quase nenhuma das empresas com as quais tivemos contato vimos um
modelo srio da distribuio de dados, do fluxo de acessos simultneos, do volume de bytes que iria
trafegar e certamente, muito menos, uma normatizao dos conceitos e variveis influentes no
desempenho dos sistemas.
Os cuidados com a construo de dispositivos que mantenham o banco de dados otimizado. fato
que os servidores de dados atuais possuem mecanismos cada vez mais inteligentes para tratar tabelas
muito volumosas. E fato tambm que existem servidores to velozes que poderamos armazenar em
um deles todos os CPFs do povo brasileiro sem grande problemas; isto porm no justifica o descaso
de muitos profissionais em manter dados antigos e j desnecessrios nas bases em produo. Um
determinado sistema do Departamento Financeiro de uma empresa guardava no mesmo banco toda a
movimentao dos ltimos 14 anos, embora o analista responsvel tenha admitido que s trabalhavam
com os dados do exerccio corrente - "deixamos esse controle do arquivo morto para o final do projeto".
No caso em pauta, o sistema estava em produo havia nada menos que seis anos, e suas tabelas
comeavam a querer atingir a casa de 1 milho de lanamentos.
Estes so apenas os problemas mais correntes. Em um segundo trabalho sobre esse tema, aposto que
poderemos apresentar mais um punhado deles; achamos mesmo assim mais importante comearmos de
algum ponto do que construirmos um tratado tentando esgotar o assunto.
Pgina 8/26
31/12/2015
Pgina 9/26
31/12/2015
Pgina 10/26
31/12/2015
Servidor Web: So usados como uma forma inteligente de comunicao entre empresas atravs da
Internet. Esta famlia de servidores permite transaes com o acondicionamento de um browser. Este
modelo (extremamente difundido atualmente) integrado por clientes compactos e portteis em
comunicao com grandes servidores. Esta comunicao se d mediante um protocolo chamado HTTP
(Hyper Text Transfer Protocol) o qual define um conjunto simples de ordens, cujos parmetros se
transmitem em cadeias sem a necessidade de dados digitados. No processo de ampliao da Internet,
j existem combinaes com objetos distribudos (Java) a fim de oferecer modalidades mais
interativas com menor trfego de rede.
A maioria dos gestores de sistemas manuseia uma revista Computter Shopper em busca das mquinas
"ltima palavra" (Leia-se State of Art), despreocupados em realizar uma pr-anlise de pontos
fundamentais como:
A) Por quanto tempo esta aplicao desempenhar suas funes sem que se faa necessrio um
pacote significativo de alteraes sejam elas funcionais ou no volume de dados processados. Por
Pgina 11/26
31/12/2015
B) Levando em conta meu volume de dados previsto e a taxa de crescimento (seja ela mensal,
semestral, anual, etc...) de quanto espao em disco irei necessitar realmente? A maioria dos
gestores compra o maior disco que encontrar, e justifica tal posio com respostas do tipo "Bom, se
o disco estiver com espao sobrando, sempre podemos colocar mais coisas nele".
C) Praticamente ningum faz um levantamento srio acerca de quantos usurios simultneos estaro
conectados ao seu servidor, e, portanto, encontramos aberraes como a compra de uma mquina
RISC de US$ 80,000 para hospedar um site de e-commerce com produtos to especficos, que
passavam at um dia inteiro sem realizar uma nica venda. Isso representava um aproveitamento
menor que 1% do que a mquina poderia oferecer.
D) O lado oposto tambm praticado. Monta-se uma base de dados com todo o protocolo de um
ministrio inteiro e descobre-se que quase ningum consegue recuperar alguma informao dele,
nos horrios de pico. Razo? Est hospedado num Pentium MMX 166 com 64Mbytes de RAM. "Ah,
mas o disco rgido de 30 Gigabytes, e no estamos usando nem 10% dele!". Nem nos demos ao
trabalho de perguntar qual teria sido o critrio para escolha daquele disco rgido.
O Papel dos Data Bases Administrators
Pouca gente sabe, mas a pessoa com funo de Database Administrator (leia-se DBA) em uma empresa
tem muito mais atribuies que colocar um servidor no ar e estruturar as reas de trabalho de cada
aplicao, ou direitos de acesso aos usurios. Segundo documentao da Oracle, um DBA tem como
deveres (alm do citado acima) todas as tarefas abaixo:
(1) Realizar o planejamento de capacidade requerido para criao e manuteno das bases de dados. O
DBA deve trabalhar bem prximo equipe de administrao dos sistemas, porque os computadores
freqentemente tem aplicaes e/ou ferramentas no - Oracle rodando em si prprios.
(2) Realizar a sintonia permanente das instncias de bancos de dados, ou seja, manter sempre todas as
bases sintonizadas.
(3) Instalar novas verses do Gerenciador de Bancos de Dados Oracle e suas ferramentas, bem como
quaisquer outras ferramentas que acessem as bases de dados Oracle. Isto deve ser feito de forma
criteriosa, sempre avaliando impactos no que j exista instalado e em produo. Aplique-se aos outros
SGBDs no-Oracle.
(4) Controlar migraes de programas, mudanas de bases de dados, mudanas de referncias aos dados
e mudanas de menu durante o perodo de desenvolvimento. Raramente as equipes de desenvolvimento
envolvem o DBA em alguma outra fase que no a definio da base no servidor real, j para entrada em
produo.
(5) Executar reorganizaes das bases de dados, segundo se faa necessrio, para manter uma boa
performance e assegurar o mximo rendimento das mesmas. Em nenhum dos sistemas que
acompanhamos percebemos este tipo de preocupao.
(6) Estabelecer padres para o desenvolvimento da aplicao e seu cdigo, com o objetivo de assegurar a
integridade, segurana e performance dos bancos. O DBA far revises freqentes no desenvolvimento e
no cdigo para assegurar-se de que os padres estabelecidos esto sendo seguidos. NUNCA vimos isso
acontecer nos sistemas avaliados e/ou acompanhados.
(7) Avaliar verses do Oracle (ou da Microsoft, se aplicarmos essa cultura ao SQL-Server) e suas
ferramentas, bem como produtos de terceiros, para se assegurar de que as instalaes estejam
funcionando com o que existir de mais apropriado. O Planejamento tambm feito pelo DBA, em conjunto
Herbert Lopes da Silva (Consultor CTIS)
Pgina 12/26
31/12/2015
Pgina 13/26
31/12/2015
2.
O Middleware geral a essncia da maioria das interaes entre cliente e servidor, incluindo as pilhas
de comunicao, diretrios distribudos, servios de autenticao, horrios de funcionamento da rede,
chamadas a procedimentos remotos (RPC's) e servios em paralelo (multi-tarefas). Inclui tambm as
extenses do sistema operacional de redes, como os servios distribudos de arquivos e impresso,
bem como produtos de Middleware orientados a mensagens (MOM - Messages Oriented Middleware).
O Middleware de servios especficos necessrio para suportar um tipo particular de servios Cliente
- Servidor; de forma que exista um middleware especfico para os servidores dedicados: Middleware
para bases de dados, Middleware para OLTP, Middleware para groupware, para objetos, etc...
O Middleware portanto uma ferramenta adequada, a qual no s flexvel e segura como tambm
protege os sistemas de engenharia reversa (por exemplo, os mdulos escritos em ASP no so visveis
para os clientes, nem quaisquer arquivos aos quais no queiramos dar visibilidade para qualquer pessoa.)
O mesmo permite manejar diferentes ambientes de computao.
Pgina 14/26
31/12/2015
Segmento Cliente:
Dividiremos este segmento em outros sub-segmentos, a saber:
5. At aqui consideramos mquinas estveis, ou seja, PCs sem problema crnico de travamento. Se
o seu anda travando, melhor nem consider-lo para avaliao de desempenho, porque os PCs
normalmente "travam" quando alguns servios essenciais para o interfaceamento (envio das
imagens para a placa de vdeo e entradas de mouse e teclado) entre a mquina e o usurio falham.
Se estes servios esto falhando por defeitos no hardware, isso quer dizer que h malHerbert Lopes da Silva (Consultor CTIS)
Pgina 15/26
31/12/2015
Pgina 16/26
31/12/2015
1. Todo o modelo e cdigo devem ser revisados antes que o sistema entre em produo . Para
tanto, dispomos de ferramentas de apoio bem elaboradas, aplicveis tanto no cdigo das
procedures e funes que ficam rodando no cliente quanto nas stored procedures que permanecem
no servidor SQL-Server, por exemplo - a maioria de baixo custo e fcil utilizao. Estas
ferramentas no s nos proporcionam uma documentao melhor estruturada como nos apontam
as parte do cdigo que esto escritas, mas nunca so chamadas. Tome-se como exemplo o
VBCode Print e o SQL7-Print ambas da Joginder Nahil Software (http://www.jnsoftware.com). Verses de demonstrao esto disponveis no Site, mas dado o baixo custo
(menos de R$ 150.00 o jogo, da ltima vez que adquirimos) talvez fosse interessante j comprar as
verses full, para colocao como piloto nos computadores digamos, de duas equipes de
desenvolvimento. Deve ser feito o levantamento do modelo de dados previsto pelo pessoal de
modelagem, em confronto com o modelo obtido por engenharia reversa da base de dados pronta. A
inteno aqui clara: Muitas tabelas so modificadas na fase de testes, e acabam permanecendo
no banco, bem como triggers e stored procedures, views obsoletas, enfim, um monte de lixo
inoperante. Como estas tabelas no fazem parte da documentao, acaba se optando por no
mexer nelas (imaginem se a aplicao parasse de funcionar pela excluso de alguma coisa cuja
funo no temos certeza). A filosofia de construo de bases de dados relacionais afirma que
todo banco deve estar normalizado. Portanto, visto as estruturas modernas dos servidores de
bases de dados terem sido voltadas para este princpio, j no justifica termos um punhado de
dados redundantes com o objetivo de "otimizar o tempo na execuo de alguns processos".
Normalize seu banco ! Nada de tabelas sem chave primria, ou tabelas soltas sem
relacionamentos com outras apenas porque "daria muito trabalho verificar a integridade das
mesmas e depois, so tabelas pouco usadas no sistema". Se existem tabelas "soltas" tem que
haver uma boa razo para isso, e estas razes devem constar da documentao do sistema.
Desenvolvedores Oracle, no se esqueam da forma como os servidores armazenam as queries:
Cada vez que houver um nico caracter diferente em uma nova query, o Oracle a entender como
outra query e a armazenar de novo. Estabeleam um padro para a escrita de queries e
Herbert Lopes da Silva (Consultor CTIS)
Pgina 17/26
31/12/2015
Pgina 18/26
31/12/2015
Pgina 19/26
31/12/2015
Hardware do Computador Servidor: Pouca coisa evolui to rapidamente quando o hardware hoje
em dia, e seria impossvel cobrir todas as novidades; vamos pois falar de algumas tecnologias:
Pgina 20/26
31/12/2015
Pgina 21/26
31/12/2015
Pgina 22/26
31/12/2015
Pgina 23/26
31/12/2015
Pgina 24/26
31/12/2015
Pgina 25/26
31/12/2015
2.
3.
4.
5.
fazer download no mesmo site). Alm da avaliao de desempenho, a famlia Spotlight ainda nos
ajuda a na sintonia da Base de Dados, realizando uma pr-sintonia e nos apontando que variveis
e/ou parmetros esto inadequados ao funcionamento do SGBD.
Estejamos atentos para o lanamento de service-packs dos ambientes operacionais. Embora
tenhamos que admitir que a maioria das correes de bugs se localiza no tratamento do ambiente
grfico (o que certamente faz com que o Unix seja mais veloz e menos sujeito aos travamentos
que as mquinas sob Windows), fato tambm que algumas correes e melhorias so feitas no
prprio Kernel do Windows e mesmo nas bibliotecas do DCOM.
Melhor expormos de uma vez por todas o problema do DCOM, para bases de dados Oracle
rodando sob plataforma Windows: O Oracle s merece ser comparado em termos de performance
ao SQL-Server, se estiver hospedado em mquinas Unix ! Em uma mquina com Windows NTServer, em um benchmark sumrio com queries de mdio porte, ele gastou em torno de 40 vezes
mais tempo (no estou falando de 40% mais, so 40 VEZES mais mesmo) que o mesmo banco,
com os mesmos ndices, mesmas chaves primrias e mesmas tabelas e relacionamentos
hospedada num servidor SQL-Server verso 7. O Oracle s um SGBD de alta performance em
ambiente UNIX, e incuo nos debatermos contra esse fato. Para maior compreenso destes
aspectos, sugiro uma leitura de matrias abordando o confronto CORBA X DCOM, o que
evitaremos fazer neste trabalho.
Para bases de dados onde nossas tabelas estejam atingindo a casa de 1 milho de registros, os
prprios engenheiros da Microsoft recomendam a migrao para Oracle (em ambiente Unix, bem
entendido).
Capriche na sintonia do seu servidor, especialmente em se tratando de um servidor Oracle ! Se
no souber faz-la, no saia experimentando mudar valores no Init.ORA, nem entre em Wizards de
sintonia, se no souber exatamente o que est fazendo! O risco consiste inclusive na situao de o
servidor no dar mais boot.
Pgina 26/26
31/12/2015