Telefone

Como limitar o uso de memória do Microsoft Exchange?

Porque o Exchange 2007, 2010 e 2013 consome tanta memoria RAM?

O motivo do consumo de memória é o mesmo do SQL, ele loca a maior quantidade de memória RAM possível para ter um melhor desempenho mas nem sempre é necessário usar o padrão, já que ele calcula o uso pela quantidade de memória que o servidor tem e não pela carga.

Em muitos ambientes com sistema de e-mail Exchange sempre observo um problema clássico: O consumo excessivo de memória RAM pelo Servidor Microsoft Exchange da versão 2007 até a atual 2013. Questionado, decidi compartilhar com vocês uma solução que sempre adotamos em nossos clientes.

Temos inúmeros cenários mas vou citar 2 mais comuns:

1 – Servidor dedicado para Exchange( seja ele com todas as roles ou somente com o store)

2- Um único servidor na empresa com todos os serviços de T.I.

No cenário 1, o problema é menos critico do que no 2, porque? Pois neste ultimo todas as outras aplicações acabam comprometidas,

A solução é a mesma para todas as situações de consumo alto de memoria no Exchange com pequenas variantes:

Os parâmetros que  precisamos modificar no Active Directory  são:

msexcheseparamcachesizemax

msExchESEParamCacheSizeMin

msExchESEParamCacheSizeMax

Pra Limitar o tamanho do cache, abra o ADSI e navegue até Configuration > Services > Microsoft Exchange > Your_Exchange_Organization > Administrative Groups > Your_Exchange_Administrative_Group > Servers > Your_Mailbox_Server.

Clique no botão direito do moute em Information Store, selecione Properties(propiedades) e localize o msExchESEParamCacheSizeMax

Este parâmetros controla o “ESE buffer size”. O valor que precisamos colocar é chamado de contagem de paginas ou ” Page Count” e precisa estar em múltiplos de 8192 para ser mais eficiente. Se este valor não for calculado corretamente com certeza  você terá problemas de memoria.

task-manager-memory

Como calcular o page count para meu Exchange?

Se você possuí um Servidor somente com a função de MAILBOX com 16Gb de memória, o tamanho do cache máximo utilizado deverá ser de 10,4GB. Mas se você precisa diminuir o consumo de memória porque esta ultrapassando o limite ou precisa para outras aplicações e quer prevenir travamentos inesperados, você pode alterar o limite para 8GB. Para fazer a conversão é simples, 8GB para KB= 8388608 e dividimos por 32KB=262144.

No caso de um servidor com 16GB com todas as funções, restariam 8gb para o S.O e o HuB Transport. Caso tenha outras aplicações, bancos de dados e que estão lentas por causa do consumo de memoria do Exchange podemos diminuir e limitar para 4GB o valor neste caso ficaria no msExchESEparamCacheSizeMax:

131072 (4 GB = 4.194.304 KB / 32 KB)

Para esta limitação funcionar precisamos colocar um valor também no msExchESEparamCacheSizeMin:

65536 (2GB = 2097125 KB / 32KB)

Se for ambiente 32bits como o exchange 2007 a divisão é por 8.

Com esta base você pode calcular qualquer outro cenário.

Seguem referências para melhor entendimento do assunto em ordem de importância:

Understanding the Mailbox Database Cache

Exchange 2010 Mailbox Server Role Design Example

ESE Database Cache Size in Exchange 2007

Limit Exchange 2010 mailbox database cache size

Ficou alguma dúvida? Comente!

Compartilhe

Facebook
LinkedIn
Twitter
WhatsApp
guest

0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x