Resolução de problemas de Banco de Dados X Desempenho do Servidor 

Parte II - Avaliando o uso de Processador, de Rede e Conexões de Usuários.

 

No artigo anterior, vimos como podemos mensurar o recurso de memória em um servidor SQL Server 2005 com o intuito de identificar gargalos de memória por paginação excessiva, alto consumo de memória e baixa taxa de buffer cache hit. Neste artigo iremos avaliar o uso de Processador, Rede e Conexões de Usuários.

 

Avaliando o uso de Processador

 

Você pode avaliar problemas de processamento em servidores SQL Server que possua um único processador ou em servidores com multiprocessamento( SMP - Symmetric MultiProcessing). SMP é a definição de um sistema que utiliza dois ou mais processadores para executar suas tarefas Você também pode estabelecer alertas no uso de CPU, mas, isto é discutível, haja vista que você pode configurar alertas de uso de disco menor do que um determinado valor. O uso de CPU é tipicamente 100% quando um serviço ou uma aplicação começam, e um problema só existe se o uso permanecer neste nível durante um tempo significativo ou se você detectar uma alta média de uso de CPU. Você avalia a pressão no recurso de processador monitorando o Processador e Objetos do Sistemas (System Objects). Os contadores que você pode usar tipicamente para identificar o uso de CPU são os seguintes:

 

¦ Processor: % Processor Time

¦ System: Processor Queue Length

 

-          Processor: % Processor Time

 

Cada unidade de processamento central (CPU) em seu servidor SQL Server 2005  é uma instância deste contador, que mede a utilização de cada CPU individual. Se o percentual total do contador Processor Time (_Total)  excede 80 por cento durante períodos contínuos de 10 minutos ou mais durante um período de monitorização de 24 horas, você poder ter um gargalo de CPU. Se nesses períodos, picos ocorrem só algumas vezes durante o período de 24 horas, o problema não é provavelmente sério. De qualquer maneira, se eles ocorrerem freqüentemente (digamos, mais do que uma vez por hora), você poderá ter de reduzir a carga do servidor ou verificar o desempenho da consulta que porventura esteja gerando esse problema.

 

-          System: Processor Queue Length

Este contador indica o número de threads aguardando para execução no processador. Você deve monitorar este contador além do contador Processor: % Processor Time. Se ele excede 2 por CPU durante períodos contínuos de 10 minutos ou mais durante um período de monitorização de 24 horas, você poder ter um gargalo de CPU. Por exemplo, se você possui 4 CPU´s no seu servidor, o valor deste contador não deve ultrapassar a 8 para todo o servidor. Se este valor é ultrapassado por um período muito extenso e constante, pode indicar que seus processadores não estão mais suportando a carga do sistema.


Importante: Uma coisa que pode afetar este contador é se você aumentar o Max Worked Treads do SQL Server, por isso cautela em realiza esta mudança.

 

Avaliação de Uso de Rede

 

Você pode avaliar o uso de rede monitorando os contadores de desempenho para as interfaces de rede. Esses contadores medem as taxas nas quais os bytes e os pacotes são enviados e recebidos numa conexão TCP/IP. A primeira instância de um objeto  da interface de rede representa loopback, que é um caminho local através do driver do protocolo e do adaptador de rede. Tipicamente, nenhum valor máximo e mínimo absoluto existe para os contadores de interface de rede com a exceção do contador Output Queue Length, que deve sempre ser igual a zero. Se o valor de Output Queue Length exceder a zero, geralmente retorna para zero rapidamente. Caso ocorra um valor que é maior que zero pode indicar atrasos na rede.

 

Os atuais adaptadores de rede de alta velocidade e de conexões de rede locais (LAN) pode tratar confortavelmente níveis de tráfego que prejudicariam hardware mais antigo. Você precisa descobrir se o tráfego que a sua rede trata está aumentando dentro de algum tempo ou aumentou repentinamente e inesperadamente. No último caso, a sua rede pode está passando por  um ataque externo, e você poderia configurar um alerta para descobrir esta possibilidade de vulnerabilidade. O nível do tráfego que provoca tal alerta depende inteiramente do tipo de tráfego na sua rede. Os contadores que você tipicamente pode usar para monitorar o tráfego de rede são:

 

¦ Network Interface: Bytes Received/sec

¦ Network Interface: Bytes Sent/sec

¦ Network Interface: Bytes/sec

¦ Network Interface: Output Queue Length

 

-    Network Interface: Bytes Received/sec

Este contador mostra a taxa na qual os bytes são recebidos em um adaptador de rede. Um súbito e inesperado aumento neste valor pode indicar que a sua rede está passando  por um ataque externo.

 

-          Network Interface: Bytes/sec

Este contador mostra a taxa no qual os bytes  são enviados em um adaptador de rede. Um súbito e inesperado aumento neste valor em um servidor SQL Server 2005 pode indicar que um grande volume de informações estão sendo acessadas. Se porventura este volume de informações é esperado em virtude de alguma demanda das aplicações através das consultas, sugerimos que faça uma análise para melhorar o desempenho das mesmas, caso não seja esta a situação ou você não tiver como explicar tal cenário, recomendamos que você faça uma investigação.

 

-          Network Interface: Bytes/sec

Este contador indica o nível total do tráfego de rede de um servidor para outro. O aumento súbito no valor deste contador pode indicar um ataque na sua rede, por exemplo, um ataque com tentativas de negação de serviço (DoS). Um aumento no valor médio deste contador dentro de algum tempo pode indicar que o seu recurso de rede está passando por stress.

 

Cenário: Se o website de sua empresa utiliza um servidor SQL Server 2005, você pode realizar configurações de alertas para que um aumento súbito na interface de rede sob o contador Network Interface: Bytes/sec  no servidor envie a você um aviso e dispare triggers que possibilitem fazer a captura pela ferramenta Network Monitor. O Network Monitor é um analisador de protocolos de rede. Ele permite a você capturar, visualizar e analisar o tráfego de rede.

 

-          Network Interface: Output Queue Length

Este contador de desempenho indica o tamanho da fila de pacotes de saída. Na sua análise você encontra valores que são maiores que 2, isso pode indicar que há atrasos, ou seja,  um gargalo de rede que deve ser encontrado e eliminado.  Nas modernas placas de interface de rede, as solicitações são enfileiradas pelo Network Driver Interface Specification (NDIS). Como resultado, o valor Output Queue Length é geralmente sempre em 0. No entanto, em um computador multiprocessamento simétrico (SMP), o valor pode ser muito maior que 2.

 

Avaliação de Conexões de Usuário

 

O número de conexões de usuário afeta o desempenho do servidor SQL Server 2005. Você pode diagnosticar problemas de desempenho, utilizando e monitorando o seguinte contador:

 

¦ SQL Server: General Statistics: User Connections

 

Servidor de SQL: General Statistics: User Connections

Este contador indica o número de conexões de usuário, não o número de usuários conectados ao SQL Server. Caso o valor deste contador exceda 255 por um período contínuo de 10 minutos ou mais durante um período de monitorização de 24 horas, você poder ter um gargalo e deve empreender uma ação corretiva para isso. Sugerimos neste caso que seja configurado o Maximum Worker Threads que deve ficar mais alto do que o número máximo de conexões de usuários em seu servidor.

 

Através dos contadores mostrados nesta série que não significa de modo algum uma lista completa dos objetos você dever monitorá, mas um auxílio como ponto de partida para resolução de problemas de desempenho em seu servidor SQL Server. Reserve  algum tempo para torna-se familiar com o Performance Monitor. Recomendamos cautela até que você está habituado a entender e interpretar as informações mostradas pelos contadores. No início comece com alguns contadores e vá acrescentando de acordo com a sua necessidade de análise. O Performance Monitor é uma importante ferramenta e você não deve deixá-la de usá-la na verificação de problemas. Vale a perna gasta tempo para tirar o melhor proveito desta ferramenta. Sugerimos leitura adicional em material oficial da Microsoft sobre o Performance Monitor.