Artigo original publicado na terça-feira, 26 de junho de 2012

 

Uma das primeiras ações que a maioria dos Administradores do Exchange geralmente fazem ao resolver problemas suspeitos com a Indexação de Conteúdo do Exchange será recompilar os arquivos de índice de conteúdo do Banco de dados da Caixa de correio impactada (manualmente ou usando o script ResetSearchIndex.ps1 encontrado no diretório \Exchange Server\Scripts). Eu também trabalhei com vários administradores do Exchange em vários anos que escolhem recompilar proativamente os índices de pesquisa em vários pontos durante o ano ou como várias etapas dentro de um projeto (como um projeto de migração, como exemplo).

Independente da justificativa para redefinir os índices, a maioria dos administradores, quando perguntados, não poderão fornecer estimativas reais de quanto tempo este processo levará. As consequências não desejadas de não estimar este tempo com precisão irão diferir de acordo com a organização. Alguns departamentos de TI podem desencorajar não ter índices laterais do servidor disponíveis para os usuários durante o dia comercial citando perdas na produtividade do usuário final e pequenos aumentos nos problemas escalados no Atendimento ao Cliente. De uma perspectiva operacional, não ter o conhecimento do tempo de recompilação antecipadamente também pode evitar que os administradores do Exchange sejam alertados sobre potenciais problemas com o próprio processo de recompilação. Seja qual for a justificativa, ter uma total compreensão de quanto o tempo vai levar é valioso.

É certo que há pouca informação sobre a quantidade de tempo que leva (ou melhor ainda, o tempo que deve levar) para recompilar o índice de conteúdo do Exchange disponível hoje. Aparentemente, isto ocorre porque os tempos de recompilação reais são sempre variáveis. Pode haver vários fatores que influenciam as taxas de recompilação e o tempo para concluir. Principalmente:

  • Variabilidade no número total de caixas de correio do usuário final "hospedadas" em um Banco de dados de Caixa de correio do Exchange
  • Variabilidade no tamanho das caixas de correio contidas em um Banco de dados de Caixa de correio do Exchange
  • Variabilidade nas contagens de itens entre as caixas de correio de usuário hospedadas em um Banco de dados de Caixa de correio do Exchange
  • Variabilidade nas contagens de itens entre os Bancos de dados de Caixa de correio do Exchange (ao realizar recompilações simultâneas)
  • Variabilidade no tamanho dos itens residindo dentro de um Banco de dados de Caixa de correio do Exchange
  • Variabilidade no número e tamanho dos anexos de email residindo dentro de um Banco de dados de Caixa de correio do Exchange
  • Os tipos e o número de IFilters habilitados em um servidor de caixa de correio do Exchange (permite a indexação de vários formatos de arquivo)
  • A utilização geral dos recursos do sistema de um servidor de caixa de correio realizando uma pesquisa (pense em aceleração)
  • Muitos mais…

Na Microsoft (em nossa implementação empresarial, assim como em várias ofertas do Office-365), utilizamos uma Estrutura de recompilação de pesquisa desenvolvida pelo meu colega Anatoly Girko e eu. Esta estrutura foi projetada originalmente para oferecer para nossa equipe de operações internas um conjunto de etapas de validação completas e indicadores de progresso que eles podem analisar ao realizar recompilações de índices de conteúdo. Estas técnicas são utilizadas em várias etapas fundamentais dentro do processo de recompilação geral para garantir a conclusão com sucesso.

Como a estrutura evoluiu, decidimos adicionar uma funcionalidade que nos permite rastrear e armazenar um histórico de métricas de resultados para toda e qualquer operação de recompilação. Como estes conjuntos de dados cresceram, e como os dados de tendências subsequentes apareceram, descobrimos que podemos fazer estimativas mais informadas e mais precisas sobre quanto tempo uma determinada operação de recompilação pode levar. Isto, por sua vez, nos permitiu como uma equipe operacional tomar melhores decisões sobre quando programar recompilações para que possamos minimizar a interrupção para nossa base de clientes do usuário final. Desde o início, esta estrutura foi utilizada para supervisionar as operações de compilação para milhares de índices de conteúdo dentro dos vários ambientes que suportamos.

Em uma série de artigos, discutiremos nossa “Estrutura de recompilação” para que as partes interessadas possam aplicar uma metodologia semelhante em seus próprios ambientes caso seja necessário. Cada etapa da estrutura será detalhada, incluindo as discussões sobre os vários conjuntos de ferramentas que criamos para ajudar neste processo. Esta série será concluída com uma série de gráficos e tabelas que detalham nossas estatísticas de recompilação do índice de conteúdo e conclusões até o momento. Para os clientes que não rastrearam as estatísticas nesta área anteriormente, esperamos que isso sirva como um ponto de referência valioso. Provavelmente fornecerá a habilidade de realizar estimativas mais informadas sobre o tempo de recompilação do índice de conteúdo do Exchange em seus próprios ambientes. Isso dito, vale observar que devido a todos os ambientes do Exchange serem únicos, suas métricas de recompilação podem diferir drasticamente das taxas que observamos e apresentamos aqui.

Antes de mergulhar a "cabeça primeiro", é importante mencionar que esta série não é destinada como um guia de resolução de problemas. Nossa expectativa é que sua própria resolução de problemas que levou a decisão de realizar a recompilação em resposta a um problema ou como uma medida proativa. Todos os exemplos apresentados nesta série focalizarão no Exchange 2007. Tomei a decisão de concentrar no 2007 para esta publicação porque a probabilidade de recompilar índices de 2007 são significantemente maiores quando contrastado com o 2010 (diferente do 2007, o 2010 possui a capacidade de semear novamente Índices de conteúdo de fontes redundantes íntegras, criando a necessidade de realizar recompilações de índice completas muito mais raramente em arquiteturas de múlti-cópias). Nas próximas semanas, Anatoly e eu lançaremos uma publicação complementar fornecendo a referência de script para a versão de Exchange 2010 do script Analisador de Recompilação do Índice de Conteúdo, conforme acumulamos exemplos correspondentes para seu uso.

Script do Analisador de Recompilação de Índice

Dentro da Microsoft, o principal conjunto de ferramentas que usamos ao recompilar Índices de Conteúdo é o script IndexRebuildAnalyzer. Este script foi criado por Anatoly e eu especificamente para estabelecer as linhas de base de recompilação do Índice de Conteúdo. Como observado anteriormente, existem duas versões deste script; uma versão do Exchange 2007 e uma versão do Exchange 2010. Para calcular suas estatísticas adequadamente, sempre use o script que corresponde a versão do Banco de dados de Caixa de correio do Exchange cujo índice será recompilado. O script IndexRebuildAnalyzer gera dois tipos de métricas dependendo do modo de operação passado pelo operador. Internamente, mencionamos estes dois modos como “métricas pré-compiladas” e “métricas pós-recompilação” (todas as propriedades estão documentadas dentro da seção de Referência do Script abaixo).

Embora este script seja primariamente nivelado para rastrear as operações de recompilação do Índice de Conteúdo, os Administradores do Exchange podem certamente utilizar o script no “pré-modo” para obter estatísticas Point-In-Time (PIT) para vários objetivos centralizados na caixa de correio (por exemplo, “Número de caixas de correio”, “Número de itens em um banco de dados”, “Tamanho médio da mensagem” para toda sua organização, etc.). Isto pode, por exemplo, oferecer óticas adicionais e capacidades para tendenciar a ferramenta do usuário ser nivelada regularmente dependendo dos seus próprios requisitos ou necessidades comerciais.

Os parâmetros E2K7_IndexRebuildAnalyzer.ps1 script, assim como os exemplos para uso podem ser obtidos passando o parâmetro -Help na sessão do PowerShell antes da execução do script.

A tabela a seguir destaca cada parâmetro:

Parâmetro Obrigatório Descrição
-CMS </cluster1,cluster2> Obrigatório Quando o parâmetro -CMS é utilizado, as estatísticas de todos os bancos de dados em um servidor de caixa de correio do Exchange ou servidor da caixa de correio agrupada do Exchange serão calculadas. As estatísticas para os bancos de dados entre vários servidores de caixa de correio ou servidores de caixa de correio agrupados autônomos podem ser calculadas pela vírgula separando os nomes do Servidor.
-Database <DatabaseName,DatabaseName> Obrigatório Ao utilizar o parâmetro -Database, as estatísticas para um banco de dados de caixa de correio específico podem ser calculadas. Ao usar este parâmetro, é esperado que o nome do banco de dados seja passado no seguinte formato:

“MailboxServerName\StorageGroupName\DatabaseName”

Estatísticas para vários bancos de dados podem ser calculadas pela vírgula separando os nomes dos bancos de dados.

Os bancos de dados que não contêm qualquer caixa de correio do usuário ativo não serão processados.
-All Opcional O uso da opção -All calculará as estatísticas para todos os bancos de dados da caixa de correio do Exchange na organização do Exchange.
-CSVFile Opcional O uso do parâmetro -CSVFil irá resultar em todas as métricas para o arquivo CSV.
-PostRebuild Opcional A opção -PostRebuild é usada para distinguir entre os modos de execução do script. Especificamente, quando -PostRebuild é chamado, o script analisará os logs do evento do Aplicativo e tenta calcular as métricas de desempenho para as operações de Recompilação de Índice.
-Help Opcional Exibe a Ajuda do script.

Cabeçalhos de métricas do banco de dados

Pré-recompilado

Como definido acima, o "modo de operação" do script é determinado pela presença ou ausência da opção -PostRebuild. Para obter métricas pré-compilação, a opção -PostRebuild não será utilizada. Quando o script é instanciado no pré-modo, os seguintes Cabeçalhos serão apresentados com as métricas correspondentes:

Cabeçalho Descrição
Servidor Identidade do servidor de caixa de correio afiliada com o banco de dados processado.
Banco de dados Nome de exibição do banco de dados da caixa de correio do Exchange processado.
Tamanho EDB (GB) Tamanho do arquivo do banco de dados correspondente no disco em gigabytes.
Tamanho EDB (MB) Tamanho do arquivo do banco de dados correspondente no disco em megabytes.
Contagem da caixa de correio Contagem da caixa de correio do Active Exchange para o banco de dados processado. Caixas de correio desconectadas não são processadas.
Banco de dados: Itens total Número total de itens de correio presentes em um banco de dados da caixa de correio do Exchange.
Banco de dados: Tamanho total do item (MB) Tamanho total de todos os itens de correio em megabytes presentes dentro do banco de dados da caixa de correio processado.
Banco de dados: Tamanho médio da mensagem (MB) Tamanho médio da mensagem para todos os itens de correio presentes no banco de dados processado.
Por usuário: Tamanho médio da caixa de correio (MB) Tamanho médio da caixa de correio para caixas de correio do Active presentes no banco de dados processado.
Por usuário: Contagem média do item Contagens médias do item de correio para caixas de correio do Active presentes em um banco de dados processado.

Pós-recompilação (utilizando o parâmetro -PostRebuild)

Quando a opção -PostRebuild é utilizado, o IndexRebuildAnalyzer tentará calcular as métricas de resultado para as operações de recompilação do Índice de Conteúdo. Faz a análise do Log de eventos de aplicativo para obter o horário inicial (denotado pela ID do evento 109) e conclusão da recompilação (denotado pela ID do evento 110) para cada banco de dados da caixa de correio no servidor da caixa de correio. Para calcular as métricas pós-recompilação com sucesso, o par da ID de Evento completo deve estar presente no Visualizador de eventos para cada banco de dados da caixa de correio cujo Índice de Conteúdo correspondente foi reiniciado. Em situações onde o par da ID de evento não está disponível, o script não poderá calcular as estatísticas. Nestas situações, a cadeia “NoEventsFound” será retornada. Os motivos mais comuns porque esta cadeia deve ser retornada são:

  • A operação de recompilação do Índice de Conteúdo para um determinado ou conjunto banco de dados não foi concluído.
  • O Log de eventos de aplicativoenvolvido ou limpo (a prática recomendada é definir o valor Tamanho máximo do log para o valor mais alto sustentável.
  • Os bancos de dados da caixa de correio relatando “NoEventsFound” não têm recentemente seus Índices de Conteúdo redefinidos (daí a ausência do par da ID de evento do Log de eventos). Nivelando a opção -CSVFile e o Excel, estas cadeias podem ser filtradas facilmente do conjunto de resultados. Eu abordarei e fornecerei exemplos para filtragem na Etapa 5 da estrutura.

Todos os cabeçalhos “pré-recompilados” e métricas também são calculados sempre que a opção -PostRebuild é passada para a execução do script. O uso da opção -PostRebuild incluirá a adição dos seguintes cabeçalhos e métricas:

Cabeçalho

Descrição

Tempo inicial de recompilação do índice de conteúdo

A Hora inicial de quando o serviço do Indexador de pesquisa começa o Rastreamento completo do banco de dados da caixa de correio.

Tempo final de recompilação do índice de conteúdo

O Tempo de conclusão de quando o serviço do Indexador de pesquisa concluiu o Rastreamento completo do banco de dados da caixa de correio

Tempo total de recompilação: H:Min:Seg

Tempo total em Horas:Minutos:Segundos necessários para o serviço do Indexador de pesquisa concluir o Rastreamento completo do banco de dados da caixa de correio.

Tempo total de recompilação: Min Total

Tempo total em Minutos necessários para o serviço do Indexador de pesquisa concluir o Rastreamento completo.

Tempo total de recompilação: Seg Total

Tempo total em Segundos necessários para o serviço do Indexador de pesquisa concluir o Rastreamento completo.

Recompilar: Por média da caixa de correio: Seg

Tempo médio em Segundos para concluir o Rastreamento completo por caixa de correio.

Recompilar: MB por/seg

Indexador de pesquisa Rastreamento completo média de resultado em MB/por segundo.

Recompilar: Itens por/seg

Indexador de pesquisa Rastreamento completo resultado em Correio Itens/por segundo.

Conclusão

É possível baixar o script do analisador de recompilação de índice do Exchange 2007 aqui.

Na parte 2 desta série, discutirei a estrutura de recompilação de pesquisa e na parte 3 desta série, discutirei o que vimos até o momento dentro da Microsoft.

Eric Norberg
Engenheiro de Serviço
Exclusivo do Office 365

Esta é uma publicação localizada. Encontre o artigo original em Establishing Exchange Content Index Rebuild Baselines – Part 1