Gerenciamento de desempenho proativo para bancos de dados corporativos Resumo Hoje, os DBAs precisam fazer mais do que simplesmente reagir a problemas de desempenho. Eles precisam ter uma postura proativa nas atividades de gerenciamento de banco de dados. O gerenciamento proativo requer as ferramentas certas para ajudá-los a entender a quantidade avassaladora de dados brutos fornecida pelo mecanismo de banco de dados. Este informe explica os desafios envolvidos no gerenciamento proativo de banco de dados e identifica os principais recursos que soluções de gerenciamento de banco de dados devem ter. Introdução Desafio de desempenho do banco de dados Muitas vezes, o gerenciamento do desempenho é comparado à resolução de problemas de desempenho. Embora resolver problemas ainda seja essencial, os melhores administradores de bancos de dados (DBAs) fazem mais do que simplesmente reagir aos problemas. A proatividade é um objetivo popular entre equipes 1 que buscam melhorar a qualidade de seu trabalho e estabilidade dos sistemas que gerenciam. No gerenciamento de banco de dados, tornar-se proativo é um desafio por três motivos: • Criticidade — Os níveis de serviço estão se tornando mais formalizados com o alinhamento dos bancos de dados às aplicações para as quais dão suporte. Isso reduz a tolerância ao tempo de inatividade e ao desempenho ruim do banco de dados. •Complexidade — A quantidade de recursos para gerenciar e de métricas para compreender aumenta significativamente com cada nova versão de banco de dados. Os DBAs também encontram mais complexidade com o crescimento do volume de dados e o fato de que as empresas implantam bancos de dados a uma velocidade cada vez maior.1 •Produtividade — Há uma demanda para que os DBAs gerenciem mais bancos de dados2 e, portanto, implantem mais ferramentas de produtividade para simplificar e automatizar tarefas de rotina e a coleta de dados de desempenho. Algumas empresas que já têm milhares de bancos de dados planejam aumentar essa quantidade em 50% nos próximos 5 anos. Consulte: Forrester Research, "DBMS Selection: Look Beyond Basic Functions" (Seleção de DBMS: além das funções básicas), 3 de junho de 2009. 2 Em média, cada DBA gerencia 35 bancos de dados. Consulte: Forrester Research, "Take Advantage of New Ways to Save Money on Database Costs" (Aproveite novas formas de economizar nos custos de banco de dados), 23 de fevereiro de 2010. Objetivos de desempenho que abordam os desafios Para abordar esses desafios, os DBAs mais produtivos definem objetivos e resultados claros de desempenho. Eles também usam dados de alta qualidade para tomar decisões melhores do que tomariam se contassem apenas com a experiência, transformando métricas brutas de desempenho em informações que têm significado e podem ser usadas. Quatro objetivos de desempenho emergem repetidamente. Todos eles vão além de um simples problema de resposta: • Resolução acelerada de problemas — Problemas mais urgentes precisam sempre de uma resolução mais rápida. Os DBAs Os DBAs proativos implantam tecnologias de desempenho para automatizar a coleta e a maior parte da análise necessária para converter dados brutos em informações úteis. proativos procuram alertas de alta qualidade mais cedo no ciclo de vida do problema, visibilidade imediata das causas e opções para automatizar a recuperação em tarefas arriscadas e demoradas. • Prevenção de problemas — Esperar o problema acontecer é inaceitável. Os DBAs proativos usam dados históricos para reconhecer condições que degradam o desempenho e determinar como evitar que causem problemas. • Maximizar recursos de hardware — Aumentar a eficiência do hardware existente gera uma economia direta. Por exemplo: adiar uma atualização de hardware em apenas alguns meses pode ser significativo. O processo de otimização também costuma melhorar a taxa de transferência das transações, deixando os usuários mais felizes. • Reduzir riscos durante mudanças — As mudanças serão necessárias quando um novo código de aplicação for implantado na produção ou for feito um upgrade dos componentes de plataforma (hardware, sistema operacional ou banco de dados). Os DBAs precisam ter confiança de que o desempenho após a mudança será igual ou excederá as expectativas. Eles também precisam antecipar mudanças na carga de trabalho e determinar quais pontos de interrupção de hardware das aplicações estão sujeitos a uma volatilidade significativa. 2 Transformar dados em informação Os mecanismos de banco de dados são equipados com métricas de desempenho. Esses dados são a principal fonte de quase toda a avaliação relacionada ao desempenho. Com cada nova versão, o banco de dados oferece mais e mais métricas de desempenho. O Oracle 11g, por exemplo, contém mais de 1.100 eventos de espera, em comparação aos mais de 870 no 10g e mais de 400 no 9i. Como há muitos dados disponíveis, os DBAs simplesmente não conseguem contar exclusivamente com métricas brutas e ter eficiência para atender os objetivos de desempenho. Na verdade, nenhum dos objetivos de desempenho listados pode ser atingido usando as métricas brutas fornecidas pelo mecanismo de banco de dados. Os dados brutos podem criar suporte para um processo diagnóstico básico, mas isso depende muito da capacidade do DBA de interpretar dados rapidamente e com precisão. Quando problemas complexos forem avaliados usando apenas métricas brutas, as decisões serão orientadas mais por palpites que por evidências. Isso aumenta os riscos contra a estabilidade do sistema de produção. Os DBAs proativos implantam tecnologias de desempenho para automatizar a coleta e a maior parte da análise necessária para converter dados brutos em informações úteis. Essas tecnologias são categorizadas de acordo com seu principal valor e usadas em um processo simples para ajudar os DBAs proativos a atender seus objetivos de desempenho, conforme ilustrado aqui. Monitorar. Analisar. Otimizar. Essa abordagem é importante para evitar uma situação em que a tecnologia de desempenho contribua mais com a complexidade do que com a compreensão do desempenho. Monitorar Detectar comportamentos estranhos e isolar a fonte Analisar Identificar a causa de gargalos de desempenho, desenvolver um plano de otimização Otimizar Restaurar e maximizar o desempenho Figura 1. A abordagem "monitorar, analisar e otimizar" Avaliação de tecnologias de desempenho Para avaliar quais tecnologias são mais eficazes na melhora da qualidade e estabilidade do desempenho do banco de dados, é necessário considerar muitos recursos. Esta seção examina os poucos fatores vitais que podem ajudar ou atrapalhar a implantação de uma tecnologia. Três níveis de monitoramento e análise de desempenho A complexidade inerente ao ambiente de banco de dados significa que existem milhares de possíveis fontes de um desempenho ruim. É por isso que o monitoramento e a análise automatizados são tão desejáveis. Uma tecnologia abrangente aceita a complexidade com o compromisso de medir todos os componentes que possam causar interrupções do desempenho de produção. Se não houver medição, não haverá gestão. O DBA deverá definir o escopo de cobertura necessário e verificá-lo em relação à tecnologia sendo avaliada. Existem três níveis de monitoramento e análise de desempenho relevantes ao banco de dados: 3 • O monitoramento de desempenho de aplicações (APM) identifica problemas nos componentes da aplicação, entre usuários finais e o banco de dados. Módulos que não forem do banco de dados poderão ser relevantes para o DBA, especialmente os componentes de monitoramento da virtualização. • O monitoramento de instâncias identifica problemas que afetam a infraestrutura do banco de dados, fornecendo um aviso precoce de configurações ou componentes sobrecarregados que possam afetar a experiência do usuário. • A análise de carga de trabalho das transações mede o SQL que conecta usuários e aplicações aos recursos de banco de dados. A visibilidade profunda das transações de banco de dados é essencial para bancos de dados cruciais, pois ela possibilita ao DBA priorizar fontes de alto impacto na resolução, prevenção e otimização. Monitoramento do desempenho de aplicações O APM garante que a prestação de serviços de aplicação atenda às necessidades de empresas e dos usuários finais. Ela deve oferecer uma visão geral correlacionada das aplicações gerenciadas, do usuário final ao banco de dados, dos níveis de serviço à infraestrutura, para descobrir a causa original de cada incidente que impacte os negócios e corrigi-la rapidamente. Existem três níveis de monitoramento e análise de desempenho relevantes ao banco de dados: Monitoramento do desempenho de aplicações, monitoramento de instâncias e análise de carga de trabalho de transações. O banco de dados é o mais importante componente da pilha de aplicações. Além de conter os dados que movimentam os negócios atendidos pela aplicação, o banco de dados é o ponto focal de cada transação. Um banco de dados lento afeta todos os usuários e processos de aplicação. O desempenho contínuo máximo da aplicação requer que a instância, carga de trabalho de transação, sistema operacional e máquinas virtuais que deem suporte ao banco de dados sejam otimizados. O monitoramento de instâncias é a base do gerenciamento eficaz de banco de dados porque dá ao DBA visibilidade do desempenho de cada banco de dados da organização. Monitoramento de instâncias O monitoramento de instâncias é a base do gerenciamento eficaz de banco de dados porque dá ao DBA visibilidade do desempenho de cada banco de dados da organização. Os seguintes aspectos do monitoramento de instâncias são importantes para avaliar uma tecnologia: • Resolução de problemas acelerada • Alertas inteligentes e análise em linha de base • Independência de produção Resolução de problemas acelerada Uma interface do usuário intuitiva é importante para ver todos os bancos de dados gerenciados em um único console. Esse console permite que o DBA isole e investigue rapidamente um determinado banco de dados assim que identificar um problema. Todo o fluxo de trabalho, do console à fonte do problema, deve ser concluído com poucos cliques do mouse. Alertas inteligentes e análise em linha de base Quando um problema for atual ou iminente, o DBA precisará de orientações claras para minimizar rapidamente ou evitar o impacto para o usuário. O DBA terá uma vantagem real quando os alertas forem precisos, fornecerem um aviso logo cedo e ajudarem a priorizar problemas simultâneos por ordem de gravidade do impacto. Os limites fixos são úteis para identificar condições críticas, mas fornecem apenas um período de aviso curto para o DBA lidar com os problemas antes de os usuários serem afetados. Ajustar a sensibilidade dos limites fará com que os alertas de aviso ocorram antes no ciclo do problema, mas também criará muitos alarmes falsos, aumentando a sobrecarga administrativa. A análise em linha de base resolve esses pontos fracos usando dados históricos para criar perfis de desempenho para cada métrica coletada. O DBA receberá um aviso quando desvios da linha de base ocorrerem. Os alertas são muito precisos e ocorrem em tempo hábil, antes de o problema progredir o suficiente para afetar os usuários. Independência de produção As métricas de desempenho devem ser gerenciadas e armazenadas longe do servidor de produção, para eliminar o risco associado a ter apenas um ponto de falha. Os dados de desempenho incorporados estão sujeitos aos mesmos problemas que afetam os usuários, evitando com frequência que o DBA acesse dados de desempenho em momentos de urgência. Figura 2. Com uma análise em linha de base eficaz, os DBAs são alertados de desvios de desempenho da normalidade histórica. 4 Figura 3. O contexto é essencial para a análise de carga de trabalho das transações. Análise de carga de trabalho das transações O terceiro nível de monitoramento e análise de desempenho é a análise da carga de trabalho das transações. Por causa da natureza altamente dinâmica da carga de trabalho das transações, a medição requer uma tecnologia especializada. Ao avaliar uma solução de análise de carga de trabalho, considere estes três fatores: •Contexto • Prevenção de problemas • Granularidade dos dados • Sobrecarga mensurada • Escalabilidade e integridade Contexto Uma análise abrangente da carga de trabalho das transações requer contexto. As transações de banco de dados interagem constantemente com subsistemas complexos (como o sistema operacional, configuração e E/S). Por isso, os dados coletados devem medir o desempenho de todos esses subsistemas e ser correlacionados em um formato que traga significado e possibilite ações. Os produtos que apresentarem estados de espera não estarão conduzindo uma análise de carga de trabalho. Os estados de espera fornecem informações valiosas de quais tarefas tomam o tempo do banco de dados, mas não do porquê. Eles também não descrevem como a contenção afeta usuários, levando a esforços de ajuste que resolvem sintomas em vez de causas. O conceito de fluxo de trabalho direcionado também é importante. Esse fluxo ocorrerá quando um produto orientar o DBA em uma compreensão mais profunda da condição subjacente de desempenho. Gravidade, conselhos e análises cruzadas são cruciais para acelerar o conhecimento do contexto de um problema de desempenho e de sua causa. Prevenção de problemas A capacidade de prevenir problemas é um fator decisivo para ajudar os DBAs a se tornarem proativos. Geralmente, os problemas começam bem antes de afetarem os usuários. Eles não são detectados até que de repente se tornem críticos, quando geralmente já é tarde demais para evitar o impacto. Os administradores avançados procuram constantemente fontes de possíveis lentidões. Eles precisam saber quando os processos críticos (ou a carga de trabalho inteira) estão se degradando, para que possam tomar medidas corretivas. Comparar o desempenho recente a dados históricos (ou a uma linha de base gerada a partir dos dados históricos) é uma forma rápida e eficaz de identificar tendências de degradação. Figura 4. Os administradores precisam saber quando os processos críticos estão se degradando, para que possam tomar medidas corretivas antes de o problema afetar os usuários. 5 Uma análise abrangente da carga de trabalho das transações requer contexto. Granularidade dos dados Uma análise eficaz da carga de trabalho das transações requer que os dados alimentando o mecanismo de análise sejam da melhor qualidade. Dados com baixa granularidade trazem uma margem significativa de erro que é inaceitável para gerenciar com precisão o desempenho de bancos de dados cruciais. A granularidade dos dados é determinada pela frequência de coleta. Os administradores avançados procuram constantemente fontes de possíveis lentidões. As transações de banco de dados podem alternar de contexto diversas vezes por segundo. Até mesmo um volume moderado de transação executará dezenas ou centenas de novas instruções SQL a cada segundo. Uma taxa de coleta secundária é um requisito importante para gerenciar bancos de dados cruciais: a frequência de coleta deve exceder a taxa de volatilidade no subsistema de transação, para garantir a precisão. Por exemplo, em uma avaliação de 1 minuto de desempenho, uma frequência de coleta de 100 Hz renderá 6.000 amostras de cada métrica para análise, em comparação a 60 amostras com uma frequência de 1 Hz. É importante que a taxa de coleta se adapte à carga de trabalho do usuário, ou seja, sua frequência deve aumentar para manter a qualidade máxima dos dados em cargas de pico e diminuir quando as cargas de trabalho diminuírem, para preservar os recursos. Frequências de coleta estáticas reduzem a precisão durante períodos de muita carga, porque, à medida que o volume de transações aumenta durante os períodos de pico, a granularidade dos dados diminui e buracos significativos aparecem nos dados. Sobrecarga mensurada A coleta otimizada pretende fornecer a mais alta qualidade de dados a um baixo custo. Um produto deve ter visibilidade de sua própria sobrecarga de recursos de produção, por dois motivos principais: • Qualquer custo de coleta proposto precisa ser verificado em um ambiente de produção para garantir que esteja alinhado à sobrecarga real observada. Se ela não for relatada, não poderá ser medida. 6 • O monitoramento de desempenho sempre representará uma sobrecarga de recursos, que se tornará parte da carga de trabalho de produção. Seu gerenciamento deve ser igual ao gerenciamento de uma possível fonte de contenção. Escalabilidade e integridade Muitas tecnologias parecem funcionar com cargas de trabalho moderadas. Os problemas com o monitoramento começam a aparecer à medida que o uso aumenta e a quantidade de bancos de dados e transações aumenta também. Por exemplo, quando bancos de dados estiverem sob pressão, a coleta de métricas de desempenho com chamadas de SQL poderá apresentar erro pelo fato de o banco de dados (produção) afetado não estar acessível. Esse erro gerará buracos nos dados de desempenho quando estes forem mais necessários: na ocorrência de um problema. Esses buracos dificultam a investigação de problemas. A coleta externa é independente de qualquer problema atual do banco de dados e não tem nenhum impacto nos recursos internos do banco de dados. A coleta ocorre sem interrupção durante períodos de carga de pico, e o acesso aos dados de desempenho é rápido e disponível a todos os momentos. Conclusão A complexidade e criticidade de bancos de dados corporativos modernos necessitam de abordagens avançadas para que os DBAs sejam proativos para gerenciar o desempenho. O volume de dados brutos de desempenho fornecido pelo banco de dados passou do ponto em que pode ser útil sem uma análise significativa. Os DBAs proativos dependem de tecnologias especializadas para monitorar e analisar continuamente o desempenho dos bancos de dados e fornecer informações de alta qualidade, que possam ser usadas para tomar decisões e eliminem a adivinhação do processo de avaliação. Essas tecnologias também devem ser implantadas de modo a automatizar tarefas complexas de otimização e ajudar os DBAs a atender objetivos específicos de desempenho: • Resolução de problemas acelerada • Prevenção de problemas • Maximizar recursos de hardware • Reduzir riscos durante mudanças Para obter mais informações © 2013 Dell, Inc. TODOS OS DIREITOS RESERVADOS. Este documento contém informações proprietárias protegidas por direitos autorais. Nenhuma parte deste documento pode ser reproduzida ou transmitida em qualquer forma ou por qualquer meio, eletrônico ou mecânico, incluindo fotocópia e gravação para qualquer propósito, sem a permissão por escrito da Dell, Inc. ("Dell"). Dell, Dell Software, o logotipo e os produtos da Dell Software, como identificados neste documento, são marcas registradas da Dell, Inc. nos EUA e/ou em outros países. Todas as outras marcas comerciais ou registradas são de responsabilidade de seus respectivos proprietários. As informações deste documento são relativas aos produtos Dell. Nenhuma licença, expressa ou implícita, por embargo ou de outra forma, a qualquer direito de propriedade intelectual é concedida por este documento ou em conjunto com a venda de produtos Dell. EXCETO CONFORME ESTABELECIDO NOS TERMOS E CONDIÇÕES DA DELL, CONFORME ESPECIFICADO NO CONTRATO DE LICENÇA PARA ESTE PRODUTO, A DELL NÃO Sobre a Dell Software A Dell Software ajuda os clientes a revelar um potencial maior pelo poder da tecnologia, oferecendo soluções escaláveis, acessíveis e fáceis de usar que simplificam a TI e reduzem os riscos. O portfólio da Dell Software abrange cinco áreas principais de necessidades do cliente: datacenter e gerenciamento de cloud computing, gerenciamento de informações, gerenciamento de força de trabalho móvel, segurança e proteção de dados. Esse software, combinado ao hardware e aos serviços Dell, promove eficiência e produtividade inigualáveis para acelerar os resultados dos negócios. www.dellsoftware.com. Se você tiver dúvidas sobre o possível uso deste material, entre em contato: Dell Software 5 Polaris Way Aliso Viejo, CA 92656 www.dellsoftware.com Consulte nosso site para obter informações sobre escritórios regionais ou internacionais. 7 Whitepaper-ProactivePerfMgmt-US-SW-2013-10-21-23116 ASSUME NENHUMA RESPONSABILIDADE, SEJA ELA QUAL FOR, E RENUNCIA A TODA GARANTIA EXPLÍCITA, IMPLÍCITA OU ESTATUTÁRIA RELACIONADA A SEUS PRODUTOS, INCLUINDO, SEM LIMITAÇÃO, A GARANTIA IMPLÍCITA DE COMERCIABILIDADE, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO OU NÃO VIOLAÇÃO. EM HIPÓTESE ALGUMA A DELL SERÁ RESPONSÁVEL POR QUAISQUER DANOS DIRETOS, INDIRETOS, CONSEQUENCIAIS, PUNITIVOS, ESPECIAIS OU INCIDENTAIS (INCLUINDO, SEM LIMITAÇÃO, DANOS POR PERDA DE LUCROS, INTERRUPÇÃO DE NEGÓCIOS OU PERDA DE INFORMAÇÕES), DECORRENTES DO USO OU IMPOSSIBILIDADE DE UTILIZAR ESTE DOCUMENTO, MESMO QUE A DELL TENHA SIDO AVISADA DA POSSIBILIDADE DE TAIS DANOS. A Dell não faz quaisquer representações ou garantias com relação à exatidão ou completude do conteúdo deste documento e se reserva o direito de fazer alterações nas especificações e descrições de produtos a qualquer momento sem aviso prévio. A Dell não se compromete em atualizar as informações contidas neste documento.