Compreendendo o impacto no desempenho causado por altas contagens de item e de exibições restritas
Tópico modificado em: 2009-01-14
Este tópico ajudará você a entender, diagnosticar e resolver problemas de desempenho do Microsoft Exchange Server 2007 relacionados a altas contagens de itens em pastas de caminhos críticos e solicitações de exibições restritas ao usar o Microsoft Office Outlook em modo online, o Outlook em modo de cache com acesso delegado e o Outlook Web Access. As pastas de caminhos críticos são as pastas Calendário, Contatos, Caixa de Entrada e Itens Enviados. Exibições restritas são exibições de dados que restringem informações com base em critérios de pesquisa que resultam em exibições de apenas um subconjunto de itens em uma pasta. Problemas de desempenho relacionados a essas situações estão, em geral, relacionados a usuários finais e podem ser visualizados por eles na forma de acesso lento para cliente. São necessários apenas alguns usuários com contagens de itens estranhamente altas em suas pastas de caminhos críticos para causar problemas de desempenho que sejam sentidos em toda a organização do Exchange.
No Exchange Server 2003, a contagem máxima de itens recomendada por pasta era de 5.000 itens. No Exchange 2007, aprimoramentos na E/S, tamanho de papel maior e cache maior podem ajudar a aumentar a contagem máxima de itens recomendada. Em um hardware corretamente projetado, uma experiência de usuário aceitável pode ainda ser mantida com contagens de itens na ordem de 20.000 itens.
Dica
Uma experiência de usuário aceitável para operações comuns significa resposta de 100 milissegundos do clique até a ação. Para opções raramente usadas, como criar uma nova ordem de classificação ou selecionar uma pasta pela primeira vez, os tempos de resposta de até um minuto são aceitáveis.
A máxima recomendada pode variar, dependendo se algum programa de terceiros acessar as caixas de correio dos usuários. Esses programas de terceiros incluem os seguintes (e outros semelhantes):
suplementos do Outlook
Arquivamento de email
Anti-vírus
Dispositivo móvel
Mensagem de voz
Outros programas ou suplementos do Outlook que criam exibições adicionais em pastas de pesquisa
Nesse cenário, a contagem de itens deve ser determinada ao revisar a carga geral do servidor juntamente com a forma como esse servidor processa cada solicitação do programa de terceiros.
O máximo recomendado também depende da capacidade de desempenho do seu ambiente do Exchange. Suas opções específicas de hardware podem resultar em números máximos menores. O ideal é manter as pastas Caixa de Correio e Itens Enviados com menos de 20.000 itens e as contagens de Contatos e Calendário em menos de 5.000. Mesmo quando mantiver contagens de itens que estejam nos valores máximos recomendados ou abaixo deles, há algumas operações que podem levar um tempo considerável (em geral, aproximadamente um minuto). Essas operações incluem novas ordens de classificação e a seleção de pastas pela primeira vez. Exibições pela primeira vez de uma pasta levam ainda mais tempo para serem geradas. Altas contagens de itens em pastas de caminhos críticos têm um efeito adverso sobre o desempenho do servidor, porque essas são as pastas acessadas com mais freqüência na caixa de correio de um usuário. Outras pastas, especialmente pastas personalizadas que são criadas pelos usuários finais, podem ter números maiores de itens sem ter um efeito adverso sobre a experiência do usuário, porque são acessadas com menos freqüência. Lembre-se de que, embora o efeito que contagens mais altas de itens têm sobre o desempenho em pastas acessadas com menos freqüência seja reduzido, altas contagens de itens nessas pastas ainda poderão apresentar problemas intermitentes de desempenho, à medida que o número de pastas como essas aumentar e o número de usuários ativos no servidor aumentar.
Importante
Exibições pela primeira vez de uma pasta levam ainda mais tempo para serem geradas. Portanto, as operações de movimentação de caixa de correio resultarão na degradação do desempenho na primeira exibição de todas as pastas que tenham contagens de itens alta. Isso pode resultar em problemas de desempenho intermitentes enquanto os usuários que foram movidos para novos servidores acessam suas pastas e recriam as exibições de pastas. Seguir as práticas recomendadas operacionais para mover caixas de correio propagando a movimentação em vários servidores e diminuindo o número de caixas de correio movidas ao mesmo tempo para o mesmo servidor, pode ajudar a minimizar esse problema.
Quando você considerar a contagem máxima de itens apropriada para sua organização, entenda que não haverá risco no valor máximo, mas, em vez disso, uma degradação progressiva no desempenho. Os limites indicados não são codificados. São números com base em testes e análises de códigos. À medida que a contagem de itens aumenta, o desempenho pode cair para um nível perceptível pelo usuário. O nível de desempenho aceitável para usuários em seu ambiente determinará a contagem máxima de itens apropriados para o ambiente.
Entenda que não há limites inerentes de tamanho para caixas de correio individuais. Os principais fatores que limitam o tamanho da caixas de correio são os seguintes: espaço em disco disponível, tempos de backup e restauração, acordos de nível de serviço e desempenho do Outlook. Quando nos referimos ao desempenho do Outlook, estamos nos referindo especificamente às latências experimentadas pelo usuário final.
Compreendendo o impacto das opções de hardware sobre o desempenho
Embora seja óbvio, merece ser enfatizado: se o hardware da sua organização tem um tamanho inadequado, você pode ter enfrentar problemas de desempenho em um número menor de itens. No modo online, os requisitos de E/S de um sistema aumentarão à medida que a contagem de itens na caixa de correio aumentar. Latência de discos são uma das considerações mais importantes relacionadas a hardware quando você avalia o despenho do hardware em altas contagens de itens. Para obter desempenho ideal do usuário, certifique-se de que as latências de discos sejam baixas (até 20 milissegundos), mesmo durante os momentos de pico do servidor.
Para mostrar como a latência de disco pode contribuir e afetar o desempenho do servidor, considere o exemplo a seguir. Ao solicitar uma exibição, a solicitação dos dados é executada em operações serializadas individuais do disco, não em operações em massa. Por exemplo, se um plug-in retorna uma exibição de 1.000 itens, o armazenamento do Exchange provavelmente fará aproximadamente 200 solicitações separadas de dados (assumindo que aproximadamente cinco mensagens sejam recuperadas por solicitação). Em 20 milissegundos, isso representa um atraso de quatro segundos no subsistema de discos. Considere que o crescimento do desempenho é afetado quando a latência de discos aumenta para 50 ou 100 milissegundos. O problema é ainda maior se são utilizados vários plug-ins fazendo solicitações semelhantes. Os usuários podem achar o que Outlook é freqüentemente bloqueado nessa situação.
Para obter mais informações sobre as recomendações de dimensionamento do servidor para garantir um bom desempenho com o Exchange 2007, consulte Planejamento da arquitetura do servidor e do armazenamento.
Compreendendo por que pode ser necessário um tempo extra de processamento
Quando você considerar o impacto que as altas contagens de itens e as solicitações de exibições restritas têm sobre o desempenho do processamento do servidor, deverá lembrar-se dos processos adjacentes que ocorrem e como as altas contagens de itens e as solicitações de exibições restritas estão relacionadas a esses processos.
O conteúdo das pastas é armazenada em uma tabela no banco de dados de armazenamento de informações. À medida que o número de itens aumenta, há um aumento correspondente na complexidade do armazenamento. O mecanismo de armazenamento do Exchange é o ESE (Mecanismo de Armazenamento Extensível). O ESE usa estruturas de dados em árvore B+ para armazenar registros. À medida que o número de registros aumenta, o número possível de solicitações de E/S no disco necessárias para localizar as informações e atravessar a árvore B+ também aumenta. Para obter mais informações, consulte Arquitetura do ESE (Mecanismo de Armazenamento Extensível).
À medida que o número de itens aumenta, a possibilidade de cada dado solicitado estar localizado em locais fisicamente adjacentes no disco rígido diminui consideravelmente. Portanto, são necessárias mais solicitações de E/S.
A criação de exibições restritas exige processamento no servidor do Exchange.
Há duas maneiras de filtrar mensagens no MAPI:
- Pastas de pesquisa
Uma pasta de pesquisa é semelhante a uma pasta MAPI comum. No entanto, ao invés de mensagens, a pasta de pesquisa contém somente links para mensagens em outras pastas. Essas mensagens atendem a uma restrição específica. |
Restrições
Restrições são criadas chamando o método IMAPITable::Restrict em uma tabela MAPI. A tabela resultante exibe somente os itens que correspondem à restrição especificada. Uma tabela de conteúdo restrito exibe somente mensagens de uma única pasta. Às vezes, esse tipo de restrição pode ser confundido com uma estrutura definida por MAPI que descreve os critérios do filtro para uma pasta de pesquisa. Esse tipo de estrutura definida por MAPI também é conhecido como restrição.
As pastas de pesquisa e as restrições exigem processamento adicional. Por exemplo, criar uma pasta de pesquisa e preenchê-la com itens que correspondam aos critérios do usuário. Esse processo exige que cada item da pasta seja examinado para identificar se cada item deve ser colocado na pastas de pesquisa. Portanto, quando uma pasta contém vários itens, é necessário mais tempo para criar a exibição. Essas pastas de pesquisa são armazenadas como um SearchFID sob cada pasta em que a pesquisa foi originada. Por padrão, uma pasta dura até 40 dias depois de preenchida.
A presença de exibições restritas afeta a forma como fazer modificações rápidas nos itens de uma pasta. Quando uma pasta de pesquisa está associada a uma pasta, deve ocorrer mais processamento quando há adição, exclusão ou atualização de itens na outra pasta. Isso ocorre porque o Exchange precisa determinar se a pasta de pesquisa deve ou não ser atualizada. Quando você estabelece várias pastas de pesquisa, cada alteração feita deve ser avaliada em relação a todas as pastas de pesquisa a fim de se determinar se elas devem ou não ser atualizadas.
Quando mais propriedades não-padrão são adicionadas a uma exibição de pastas no Outlook, chamadas de procedimentos remotos (RPCs) adicionais podem ser necessárias, para que propriedades não-padrão do armazenamento do Exchange possam ser recuperadas. Quando uma pasta contém vários itens, são necessárias mais idas e voltas para recuperar os dados do servidor do Exchange.
Quando você tenta exibir uma pasta de calendário, o Outlook deve localizar todos os compromissos no intervalo de datas especificado. Isso exige, no mínimo, duas solicitações de processamento. A primeira solicitação obtém todos os compromissos fixos no intervalo de datas especificado. A segunda solicitação localiza todos os compromissos recorrentes que ocorrem no intervalo de datas especificado. O tempo necessário para processar a segunda solicitação é proporcional ao número de itens na pasta de calendário. Esse comportamento ocorre porque o Outlook exige todos os compromissos recorrentes. Depois que a lista de compromissos recorrentes é recebida, cada um deles deve ser examinado a fim de se determinar se o compromisso ocorre no intervalo de datas especificado. Quando o calendário contém vários itens, é necessário mais tempo para processar essas solicitações.
Compreendendo o impacto no desempenho de contagens de itens em relação ao tamanho da caixa de correio
Entenda que a maioria dos problemas de desempenho não é resultado do tamanho da caixa de correio (definido como uma caixa de correio com 2GB ou mais), mas sim do número de itens nas pastas que estão sendo acessadas no servidor. Um número alto de itens em uma pasta afeta o desempenho de forma adversa, porque as operações nesta pasta demorarão mais tempo. Particularmente, o desempenho é em grande parte influenciado pelo número de itens nas pastas de caminhos críticos: Calendário, Contatos, Caixa de Entrada e Itens Enviados. Para obter mais informações sobre como planejar para caixas de correio grandes, consulte o White Paper: Planejando para caixas de correio grandes com o Exchange 2007.
As operações que dependem do número de itens na pasta incluem: adição de uma nova coluna para exibição, classificação em uma nova coluna, localizações e pesquisas. Muitos plug-ins do Outlook executam classificações ou pesquisas enquanto estão sendo executados, e essas solicitações podem ser substituídas por outras solicitações MAPI do Outlook. Isso resulta em um desempenho inadequado do usuário.
Se você está executando em modo de cache (o modo padrão para Outlook 2003 e versões posteriores), o desempenho do cliente pode ser um problema quando o número de itens em uma pasta aumenta. Uma coisa que você deve fazer é manter os arquivos OST (o cache de dados local) livre de fragmentos. Você pode usar a ferramenta Windows SysInternals Contig para esse fim. Para baixar a versão mais recente do Contig, consulte Contig v1.55.
Além do número de itens em pastas de caminhos críticos, outros fatores afetam a experiência com o Outlook, que podem ser exacerbados por altas contagens de itens, como, por exemplo, o número de outros aplicativos MAPI ou plug-ins do Outlook que são executados no computador do usuário. Todas as solicitações MAPI exigem tempo de processamento com emsmdb32.dll. Se um usuário tiver vários plug-ins fazendo solicitações, o Outlook será executado mais lentamente, e o impacto no servidor pode aumentar. Além disso, a complexidade da ação solicitada terá um impacto. Por exemplo, marcar todos os itens de uma pasta como Lidos demorará mais tempo do que marcar um único item. Outras ações que podem demorar bastante incluem: recuperação de informações livres/ocupadas de vários usuários em uma solicitação de reunião ou execução de uma pesquisa em várias pastas. Se os usuários estão freqüentemente executando ações complexas, têm vários plug-ins do Outlook ou têm um alto uso das pastas Contatos e Calendários, a probabilidade de que eles apresentarão uma diminuição no desempenho devido às altas contagens de itens aumenta de forma significativa.
Compreendendo exibições restritas (restrições MAPI)
Em geral, MAPI representa os dados na forma de uma tabela. Há uma tabela que é apresentada ao cliente quando ele solicita uma lista de provedores, uma tabela para pastas, conteúdo das pastas, anexos e muito mais. Cada tabela consiste em colunas. Cada coluna é uma propriedade MAPI diferente que representa atributos como o remetente, o assunto e o horário da entrega. Cada linha representa um item específico. Para uma tabela de conteúdo de pasta, cada linha representa uma mensagem. As ações dos clientes nessas tabelas são representadas por atividades como, por exemplo, a classificação de dados. O cliente para procurar na tabela uma linha específica que corresponda a critérios específicos. Essa operação é conhecida como FindRow(). Ela também pode solicitar que apenas os itens que atendem a um critério específico sejam incluídos na tabela. Um exemplo seria a inclusão apenas de itens criados em um dia específico. Isso é conhecido como restrição. A tabela de conteúdo de pasta resultante teria apenas itens da tabela que atendem aos critérios especificados. As restrições são usadas quando se espera que o cliente solicite sempre a mesma representação de dados.
Como as exibições restritas afetam o desempenho
Para entender as ramificações de restrições de desempenho, você deve considerar que o Armazenamento de Informações armazena os dados que uma solicitação cliente MAPI solicita e como ele interpreta solicitações como FindRow e Restrict. Dentro do esquema de armazenamento, há várias tabelas que representam coletivamente itens como caixas de correio, pastas, conteúdo de pastas e mensagens.
Quando um cliente solicita uma lista do conteúdo de uma pasta, essa solicitação é mapeada para uma pasta especial conhecida como uma Tabela MessageFolder (MsgFolder). Cada pasta criada no sistema tem uma tabela de pasta de mensagens separada. A finalidade da tabela MsgFolder é mapear uma pasta para seu conteúdo.
Para tratar as expectativas de uma chamada Restrita (novas solicitações para o mesmo dado), uma nova pasta especial (e a tabela MsgFolder correspondente) é criado, conhecida como Pasta de Pesquisa Restrita. Essa pasta tem um backlink para a pasta original, e há uma relação lógica entre essas duas pastas. É colocada uma condição sobre a pasta de pesquisa para que ela inclua apenas itens que atendam aos critérios especificados pela restrição. Nessa pasta de pesquisa, há um backlink para a linha original na tabela MsgFolder de cada mensagem na tabela MsgFolder que atende aos critérios da restrição.
O problema de desempenho encontrado com esse comportamento é o tempo necessário para gerenciar a atualização de cada uma das pastas de pesquisa. Quando ocorre uma alteração na pasta original, a alteração é comparada a cada uma das pastas de pesquisa restritas associadas à pasta em questão para determinar se devem ser atualizadas também. Isso tem um impacto maior quando há várias pastas de pesquisa para uma ou muitas pastas. O segundo problema encontrado é a criação das pastas de pesquisa restritas. A criação de uma pasta de pesquisa restrita exige uma passagem completa da pasta original para extrair itens individuais que devem ser vinculados à pasta de pesquisa restrita. Se esse processo ocorre como resultado direto de uma ação do cliente, pode haver um retardo para o usuário que está enfrentando um desligamento ou recebendo a caixa pop-up RPC do Outlook que indica que uma solicitação está demorando muito para ser processada. O tempo necessário para criar a pasta de pesquisa restrita é proporcional ao número de itens na pasta regular. À medida que o número de itens de uma pasta aumenta, a probabilidade de esses itens estarem localizados em setores de discos adjacentes é significativamente reduzida. Isso resulta em um aumento significativo em E/S aleatória do disco ao atender solicitações de exibições restritas em pastas com altas contagens de itens. À medida que o número de solicitações de exibições restritas aumentar em pastas que tenham altas contagens de itens, o impacto de E/S aumentado será sentido por todos os usuários que acessam recursos no servidor.
No Exchange 2000 Server, Exchange Server 2003 e Exchange Server 2007, há um número máximo de pastas de pesquisa restritas permitidas por pasta. O número máximo padrão é 11, e a vida útil da pasta de pesquisa é de 40 dias.
As pastas de pesquisa restritas são processadas em uma base "primeiro a entrar é o primeiro a sair" (FIFO). Se uma pasta já possui 11 pastas de pesquisa restritas associadas a ela, e é feita uma nova solicitação de restrição, a lista de pastas de pesquisa será avaliada usando a última vez em que a restrição foi, de fato, utilizada. Isso significa que a pasta de pesquisa restrita menos usada é removida para permitir o processamento da nova solicitação. Como mencionado anteriormente, isso exige uma passagem completa da tabela MsgFolder regular e, se executada como uma ação direta pelo cliente, o cliente pode perceber um problema de desempenho enquanto a tabela é criada e apresentada a ele. Assim, é possível que mais de 12 pastas de pesquisa restritas possam ser necessárias, diária ou mensalmente. Isso resulta em um cliente sujeito a uma solicitação de restrição que, no momento, não tem uma pasta de pesquisa correspondente. Isso, por sua vez, resulta na exclusão e na criação de novas pastas de pesquisa restritas. Todas essas solicitações são processadas serialmente. Isso significa que se você tem vários usuários com contagens de itens muito altas em pastas em que as exibições restritas são solicitadas regularmente, essas solicitações podem ser colocadas na fila. Isso resultará em uma lentidão geral para todos os usuários que estejam acessando dados da caixa de correio localizados no servidor. Entenda que isso não afeta apenas os usuários que estão acessando suas caixas de correio. Por exemplo, usuários em outros servidores que acessam dados de calendário armazenados no servidor também sentirão a lentidão.
Importante
A instalação de idiomas adicionais no cliente pode criar ainda mais exibições para usuários do Outlook Web Access e do Outlook em Modo Online.
Exibições restritas e calendários compartilhados
Quando você exibe as pastas Calendário, Contatos e assim por diante de outra pessoas, pode haver atraso antes de a pasta poder se exibida. Depois que a pasta é exibida, a alternância é bastante rápida. Mas, depois de algum tempo, o acesso à pasta pode ficar lento. O atraso será especialmente longo se o número de itens no calendário for maior que 5.000.
Quando o Outlook acessa pastas de outras pessoas, ele aplica uma exibição que impede que o usuário exiba itens particulares.
A aplicação de uma exibição em uma pasta cria pastas de pesquisa no armazenamento. Após a sua criação, a pasta de pesquisa é armazenada em cache para uso posterior. Se um usuário tenta criar uma pasta de pesquisa já existente, é usada a pasta de pesquisa em cache. Isso permite que exibições futuras sejam bastante rápidas.
Por padrão, o Exchange não coloca em cache todas as pastas de pesquisa indefinidamente. Se muitas pastas de pesquisa forem colocadas em cache, podem ocorrer atrasos no servidor, associados à atualização das pastas de pesquisa. Por outro lado, se um número suficiente de pastas de pesquisa não for colocado em cache, ocorrerá um problema similar quando as pastas de pesquisa tiverem que ser geradas e atualizadas.
Para ilustrar o problema, considere um cenário em que o servidor do Exchange tenha sido configurado para manter 11 pastas de pesquisa (exibições) por pasta. Imagine que Frank tenha uma pasta de calendário que ele compartilha com outros 15 usuários. Sally acessa a pasta e enfrenta um atraso enquanto sua pasta de pesquisa é criada. Após a criação, o acesso é rápido. Em seguida, Sally não exibe a pasta de um dia, e outros 11 usuários acessam a pasta. Uma nova pasta de pesquisa será criada para um deles. Como apenas 11 pastas de pesquisa são colocadas em cache, quando o décimo segundo usuário acessar a pasta, o Exchange excluirá a pasta de pesquisa criada para Sally. Agora, na próxima vez que Sally acessar a pasta, ela terá que esperar até que o Exchange crie sua pasta de pesquisa.
Imagine que o servidor de Caixa de Correio do Frank seja configurado para armazenar em cache 20 exibições. Em seguida, Sally e outros 14 usuários podem acessar a pasta Calendário do Frank e apenas 15 pastas de pesquisa serão criadas. Como 15 é menos que 20, não será necessário eliminar o ciclo de uma exibição e, portanto, o acesso será rápido para todos após o acesso inicial para criar as pastas de pesquisa.
O número padrão de pastas de pesquisa em cache é 11 e essa configuração é definida em um nível de banco de dados. O valor configurado pode ser visualizado usando o ADSIEdit. Use o ADSIEdit para visualizar o objeto de armazenamento. Em seguida, examine o atributo msExchMaxCachedViews. Este é o nome diferenciado:
CN=Database, CN=Storage Group,CN=InformationStore,CN=Server NAME,CN=Servers,CN=AG Name,CN=Administrative Groups,CN=Orgname,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=Contoso,DC=com.
Em alguns casos, uma modificação para aumentar o valor maior que 11 pode ser útil para ajustar o impacto de desempenho em um ambiente.
Importante
O valor do atributo msExchMaxCachedViews nunca deve ser definido acima de 50.
Importante
Se você tem o Outlook 2003 RTM no seu ambiente, certifique-se de que o Service Pack 1 ou uma versão posterior esteja implantada para resolver um problema conhecido de desempenho lento quando você está trabalhando com calendários compartilhados.