Gerenciar a latência do banco de dados usando o script Troubleshoot-DatabaseLatency.ps1 no Shell
Aplica-se a: Exchange Server 2010 SP2, Exchange Server 2010 SP3
Tópico modificado em: 2016-11-28
O script Troubleshoot-DatabaseLatency.ps1 é usado pelo Microsoft System Center Operations Manager 2007 para detectar e corrigir altas latências em um banco de dados. Você pode criar uma tarefa agendada usando o Agendador de Tarefas para executar esse script. As latências de banco de dados podem ser causadas por inúmeros problemas, incluindo os seguintes problemas:
Latências de disco devido a disco defeituoso Latências de leitura ou gravação muito altas podem ser causadas por um disco defeituoso, caso as latências persistam por longos períodos.
Latências de controlador de domínio Um controlador de domínio pode exibir longas latências em reposta a consultas de pesquisa LDAP.
Alta carga de trabalho do usuário O fato de um único usuário (ou conjunto de usuários) realizar operações pesadas pode resultar em latências de banco de dados.
O script Troubleshoot-DatabaseLatency.ps1 executa as ações a seguir:
Verifica se as latências de banco de dados estão acima do limite de latência (como especificado pelo parâmetro LatencyThreshold). O padrão é 70 milissegundos (ms).
Verifica se a taxa de transferências por segundo do disco é inferior ao contador de desempenho DiskReadRateThreshold e se a taxa de transferência por segundos é maior que o contador de desempenho DiskReadLatencyThreshold. Se for esse o caso, o script determinará que o disco deve ser substituído porque está sob condições de pouca carga, mas está apresentando altas latências.
Verifica se um único usuário está utilizando mais de um thread, dentro do último período de 10 minutos, por mais tempo do que o valor especificado pelo parâmetro TimeInServerThreshold . Se for esse o caso, o usuário estará provavelmente contribuindo para as altas latências e, como resultado, a caixa de correio do usuário é colocada em quarentena. A caixa de correio do usuário fica em quarentena por seis horas, período em que o usuário não tem acesso ao email.
As configurações padrão usadas no script Troubleshoot-DatabaseLatency.ps1 são definidas no script StoreTSConstants.ps1.
Dica
Um script deve ser executado a partir da pasta na qual ele reside. Por padrão, os scripts instalados com o Exchange 2010 são instalados em C:\Arquivos de Programas\Microsoft\Exchange Server\V14\Scripts. O Shell não carrega scripts automaticamente. Para executar um script a partir do arquivo local, você deve preceder todos os scripts com ".</STRONG>". Por exemplo, para executar o script SampleScript.ps1, digite .\SampleScript.ps1
. Para executar um script e especificar o caminho de instalação padrão, digite "C:\Arquivos de Programas\Microsoft\Exchange Server\V14\Scripts\SampleScript.ps1"
. Para saber mais, consulte Script com o Shell de Gerenciamento do Exchange.
Use o script Troubleshoot-DatabaseLatency.ps1.
Para executar este procedimento, você precisa de permissões. Para ver de que permissões você precisa, consulte o Entrada "Banco de dados de caixa de correio" no tópico Permissões de caixas de correio.
A tabela e o conjunto de sintaxes de parâmetros a seguir listam os parâmetros que podem ser usados para detectar e solucionar problemas de latência de banco de dados.
Troubleshoot-DatabaseLatency.ps1 -MailboxDatabaseName <DatabaseID> [-LatencyThreshold <1-200>] [-TimeInServerThreshold <1-600000>] [-Quarantine <switch>] [-MonitoringContext <switch>]
Parâmetro | Obrigatório | Descrição |
---|---|---|
MailboxDatabaseName |
Obrigatório |
O parâmetro MailboxDatabase especifica o banco de dados de caixa de correio no qual você está monitorando a latência de banco de dados. Esse parâmetro aceita os seguintes valores:
|
LatencyThreshold |
Opcional |
O parâmetro LatencyThreshold especifica o tempo em ms que o banco de dados pode ficar ocioso antes de ser considerado latente. O valor padrão é 70 ms. |
MonitoringContext |
Opcional |
O parâmetro MonitoringContext especifica se os resultados do comando são escritos no log de eventos Aplicativo. Se esse valor não for especificado, os logs de eventos serão gravados no seguinte local no Visualizador de Eventos: Visualizador de Eventos > Logs de Serviço e de Aplicativo > Microsoft > Microsoft-Exchange-Troubleshooters/Operacional. Você não precisa especificar um valor com esse parâmetro. |
Quarantine |
Opcional |
O parâmetro Quarantine especifica que usuários que realizam operações pesadas que estão contribuindo para as altas latências serão colocados em quarentena. Se este parâmetro não for especificado, os usuários não serão colocados em quarentena. Você não precisa especificar um valor com esse parâmetro. |
TimeInServerThreshold |
Opcional |
O parâmetro TimeInServerThreshold especifica quanto tempo (em segundos) que qualquer atividade do usuário para a qual o armazenamento do Exchange usa um thread pode utilizar por minuto até a caixa de correio ser considerada prejudicial para a integridade do banco de dados. O número de segundos é medido pela agregação do tempo em que todos os threads que trabalham em nome da caixa de correio (durante o período relatado pelo cmdlet Get-StoreUsageStatistics) gastam dentro do armazenamento do Exchange. O número de segundos de trabalho por minuto é calculado pela divisão desse número agregado pelo período relatado pelo cmdlet Get-StoreUsageStatistics (10 minutos por padrão). Por exemplo, se você definir esse parâmetro como 80 segundos, e um único usuário utilizar mais de um thread por mais de 80 segundos em um período de 10 minutos, será retornado um erro de evento. Se você especificar o parâmetro Quarantine, o evento de erro será retornado, e a caixa de correio do usuário ficará também em quarentena por seis horas. O valor padrão é 200 segundos. |
Exemplo
Este exemplo mostra como se executar o script Troubleshoot-DatabaseLatency.ps1 com as configurações a seguir:
O parâmetro LatencyThreshold é definido como 100 ms. Se o banco de dados ficar latente por mais de 100 ms, será retornado um erro.
O parâmetro TimeInServerThreshold está definido como 80 segundos. Se um único usuário utilizar mais de um thread por mais de 80 segundos em um período de 10 minutos, esse usuário será colocado em quarentena.
.\Troubleshoot-DatabaseLatency.ps1 -MailboxDatabaseName MBD01 -LatencyThreshold 100 -TimeInServerThreshold 80 -Quarantine
Dica
Este exemplo mostra como executar manualmente uma vez o comando. Para produzir os dados que a solução de problemas precisa monitorar de forma eficiente em seus bancos de dados, você deve executar este comando em intervalos regulares. Recomendamos a utilização do Agendador de tarefas no sistema operacional do Microsoft Windows a fim de configurar esta tarefa. Para mais informações, consulte Visão geral do Agendador de tarefas.
Visualizar a saída da solução de problemas de latência de banco de dados
No Visualizador de eventos, os resultados do script Troubleshoot-DatabaseLatency.ps1 estão disponíveis no seguinte local: Visualizador de Eventos > Logs de Serviço e de Aplicativo > Microsoft > Microsoft-Exchange-Troubleshooters/Operacional.
Por exemplo, a seguir está representada a saída do evento ID 5111. Esta saída seria retornada se o script fosse executado com êxito e sem erros.
A solução de problemas de latência de banco de dados detectou que a latência atual de 1 ms para o banco de dados MBD01 está dentro do limite de 100 ms. |
A tabela a seguir exibe a ID e a descrição do evento, além da ação a ser tomada, se necessário.
Dica
As descrições nesta tabela são exemplos das informações que podem estar incluídas nestes eventos.
ID do Evento | Descrição | Ação |
---|---|---|
5110 |
A solução de problemas de latência do banco de dados foi iniciada no banco de dados MBD01. |
Para fins de informação apenas. Nenhuma ação é necessária. |
5111 |
A solução de problemas de latência de banco de dados detectou que a latência atual de 30 ms para o banco de dados MBD01 está dentro do limite de 70 ms. |
Para fins de informação apenas. Nenhuma ação é necessária. |
5411 |
A solução de problemas de latência do banco de dados colocou em quarentena o usuário f3bb8007-b6d1-45f5-b748-211d66fa43f6 do banco de dados MBD01 devido a atividade incomum na caixa de correio. Se o problema persistir, a intervenção manual será necessária. |
Evento de aviso: Continue com o monitoramento. |
5412 |
A solução de problemas de latência do banco de dados identificou um problema com o usuário f3bb8007-b6d1-45f5-b748-211d66fa43f6 do banco de dados MBD01 devido a atividade incomum na caixa de correio. O usuário não foi colocado em quarentena porque o parâmetro Quarantine não foi especificado. Se o problema persistir, a intervenção manual será necessária. |
Evento de aviso: Continue com o monitoramento. |
5710 |
A solução de problemas de latência do banco de dados detectou que as latências de disco estão anormais para o banco de dados MBD01. É preciso substituir o disco. |
Evento de erro: É preciso substituir o disco. Entre em contato com o fabricante do hardware para obter instruções de substituição. |
5712 |
A solução de problemas de latência de banco de dados detectou altas latências médias de RPC para o banco de dados MBD01, mas não conseguiu determinar a causa. Intervenção manual é necessária. |
Evento de erro: Não foi possível determinar a causa da latência. Você deve criar um arquivo de despejo e analisá-lo para determinar a causa do problema. Para Windows Vista , Windows 7 ou Windows Server 2008, consulte Como criar um arquivo de despejo do processo de modo de usuário. Para Windows Server 2003 ou anteriores, consulte Como usar a ferramenta Userdump.exe para criar um arquivo de despejo. |
© 2010 Microsoft Corporation. Todos os direitos reservados.