Você está na página 1de 3

Analisando problemas de performance - Um estudo de caso (Parte 1 de 4)

Hoje comea uma srie de artigos onde vou abordar um tpico que eu acho ser do interesse de muitos: como analisar um problema de desempenho e os contadores de performance envolvidos. Essa srie de quatro artigos um estudo de caso onde eu vou detalhar o trabalho que fiz recentemente em um dos nossos clientes Premier. Este gentilmente aceitou que eu escrevesse esta srie de artigos utilizando os dados reais que obtivemos durante o servio, mas por questes de privacidade o nome da empresa, funcionrios envolvidos, nomes de servidores e procedimentos, sero omitidos ou trocados. Os quarto artigos sero divididos em: 1) 2) 3) 4) Descrio do cenrio e contadores encontrados Identificando o gargalo Procedimento com tempos diferenciados de execues Resultado da aplicao das correes

Gostaria de ressaltar que esta srie no uma listagem detalhada de todos os contadores de performance, mas sim uma anlise daqueles contadores que interessam nesse caso. Vou aproveitar e responder uma pergunta que todos vivem me fazendo... P: Por que a Microsoft no libera um documento formal com todas as recomendaes dos contadores de performance que devemos analisar? R: Porque a anlise dos contadores de performance no algo binrio (ou est certo ou errado) e um documento muitas vezes mostra dessa forma. Pela minha experincia em diversos trabalhos com casos de performance tuning, se a Microsoft soltar um documento desse tipo, no dia seguinte o nmero de chamados com falsos problemas vai bater l na lua e ela no vai conseguir atender toda a demanda, gerando uma insatisfao sem motivo real. Tambm temos que levar em conta o fato de que nenhum contador deve ser analisado de forma isolada, eu NUNCA vou olhar para somente um contador de disco e dizer: temos um problema de disco! importante sempre correlacionar contadores e ter informaes para basear sua tese sobre o problema, seno esse palpite inicial pode se mostrar errado muitas vezes. Existem alguns engenheiros dentro da Microsoft que tem planos de divulgar tal documento em forma de um webcast (ainda no sei quando, mas avisarei), onde teremos chance de explicar o que analisamos e porque no necessrio se alarmar em alguns casos. Dessa forma o impacto do documento no pblico (e Microsoft) seria menor. Capisce? De qualquer forma, aqui estou eu para mostrar a vocs um trabalho real e quais foram os contadores de performance que eu analisei para chegar a uma srie de recomendaes, que ajudaram o cliente a minimizar os problemas encontrados.

PARTE 1 - Descrio do cenrio e contadores encontrados


Na primeira conferncia para definio do escopo do trabalho e entendimento do problema, as seguintes informaes me foram passadas:

1) O ambiente crtico (24x7) e atualmente est passando por problemas de performance, com procedimentos levando muito tempo para serem executados. Esse ambiente funcionava perfeitamente meses atrs, mas o nmero de usurio vem crescendo com a aquisio de novas empresas e abertura de novos negcios, o que est degradando o desempenho das aplicaes. 2) Neste momento no existe interesse em se analisar o cdigo das aplicaes: consultas e stored procedures. 3) J fizemos uma anlise inicial e identificamos um problema com os nossos discos, que no esto respondendo bem. Queramos que a Microsoft ratificasse o que j encontramos. Configurao do servidor:

Hardware: HP DL380G4 Processadores: 2x P4 3.4 Xeon (com HyperThreading habilitado) Discos: Sistema operacional (C:), arquivos diversos (D:) e Log (L:) em RAID 1 (dois discos) Dados (G:) e backup (I:) em RAID 5 (quatro discos) Memria: 3 GB Arquivo de paginao no C: Sistema operacional: Windows Server 2003 32 bits Interface de rede: 1 gigabit

Configurao do SQL Server: Name affinity mask allow updates awe enabled c2 audit mode cost threshold for parallelism Cross DB Ownership Chaining cursor threshold default full-text language default language fill factor (%) index create memory (KB) lightweight pooling locks max degree of parallelism max server memory (MB) max text repl size (B) max worker threads media retention Run_Value 0 0 0 0 5 0 -1 1033 0 70 0 0 0 0 2500 65536 255 0 min memory per query (KB) min server memory (MB) nested triggers network packet size (B) open objects priority boost query governor cost limit query wait (s) recovery interval (min) remote access remote login timeout (s) remote proc trans remote query timeout (s) scan for startup procs set working set size show advanced options two digit year cutoff user connections user options 1024 1024 1 4096 0 0 0 -1 0 1 20 0 600 1 0 1 2049 0 0

Com o intuito de termos dados suficientes para iniciarmos nossa anlise, pedi que fossem utilizados o Performance Monitor (ou System Monitor) e o SQL Server Profiler. Essa coleta ficou rodando durante quase um dia (vinte e duas horas), j que tambm existem diversos procedimentos sendo executados durante a madrugada. Para facilitar a vida de vocs eu coloquei em uma planilha Excel o valor mdio dos contadores que eu considerava mais importantes para este caso. No arquivo anexo a este artigo, vocs encontraro esta planilha, bem como o artigo em formato PDF. Vale lembrar que a planilha contm os valores mdios para os contadores entre 11:34AM e 9:49AM do dia seguinte. Usualmente eu crio diversas planilhas com intervalos de interesse durante o dia, mas para nosso caso os dados deste intervalo j contm informaes interessantes para anlise. Agora o trabalho est em suas mos! Analise o cenrio, veja os contadores, crie hipteses dos problemas que o ambiente pode estar apresentando e, claro, como todo bom engenheiro de suporte, proponha solues para este caso. Na prxima semana eu vou postar a segunda parte desta srie. Para aqueles que querem montar seu prprio documento de orientao (para a sua empresa?!), aconselho dar uma olhada em diversos livros publicados. Sempre encontro com uma ou outra recomendao de contadores que podem ser utilizados, no uma tarefa fcil, mas vale a pena. []s Luciano Caixeta Moreira luciano.moreira@microsoft.com
============================================================= This posting is provided "AS IS" with no warranties, and confers no rights =============================================================

Você também pode gostar