O uso de memória não paginada sobe pelo processo de EVEN (registrador de eventos / visualizador) até que esteja esgotado

1

Eu tenho um servidor com um problema de memória não paginada. O uso sobe lentamente até se esgotar e o servidor deixa de servir as páginas web, uma vez que o IIS não consegue obter memória suficiente não paginada.

Este é um servidor Windows 2003 de 32 bits.

O gerenciador de tarefas não mostra nenhuma atividade suspeita e todos os processos em execução estão consumindo quantidades 'normais' de memória NP e todos eles permanecem firmes ao longo do tempo.

A tag que mostra todo o uso é 'Even', que é para o Visualizador de Eventos, de acordo com a lista de tags. Nenhum outro aviso ou erro está aparecendo nos logs de eventos, exceto quando a memória NP está esgotada e o IIS começa a reclamar.

O servidor executa MSSQL, IIS e hMailserver, nada mais.

Alguém tem alguma ideia ou já viu isso antes? Eu teria um lugar para ir se fosse uma tag associada a um driver como uma placa de rede ou algo assim, mas o Visualizador de Eventos, para onde eu vou com isso!

Saída do Poolmon para o EVEN

Tag    Type   Allocs            Frees             Diff     Bytes       Per    Alloc
Even   NonP   65563201 ( 948)   64585254 ( 861)   980124   47049280 ( -2384)   48

Obrigado

    
por Rolf Herbert 16.10.2013 / 11:47

2 respostas

0

A primeira coisa que eu verifico é ter certeza de que max server memory (MB) está definido no SQL Server. Esta é uma opção do servidor que informa ao SQL Server "esta é toda a memória que você pode ter". Por padrão, o SQL Server usará toda a memória disponível para coisas como caches de dados, o que pode ser uma má notícia em um ambiente compartilhado como o que você tem.

Na sua instância do SQL, abra uma nova janela de consulta e digite:

sp_configure 'show advanced options',1
GO
RECONFIGURE
GO
sp_configure 'max server memory (MB)'

Se o valor de config_value for 0, significa que o SQL Server pode obter toda a memória desejada. Nesse caso, você deve configurá-lo para algo mais razoável para o seu ambiente.

Você não menciona a quantidade de memória do seu servidor, mas como está em um ambiente de 32 bits (e também não especifica qual edição do Windows), vou assumir 4GB. Você pode querer limitar o SQL a 1 GB para permitir outros serviços de aplicativos. Você pode fazer isso assim:

sp_configure 'max server memory (MB)',1000
GO
RECONFIGURE
GO

Se você estiver usando o Windows 2003 Enterprise e tiver > 4GB de memória, você pode definir a memória máxima para mais do que isso.

Você também pode querer investigar usando AWE (Address Windowing Extensions), que pode lhe dar um pouco mais de espaço para respirar. Você pode ler sobre isso no TechNet aqui .

    
por 16.10.2013 / 15:55
0

Quando o problema estiver ocorrendo, abra o Gerenciador de tarefas e adicione a coluna Handles . Classifique nessa coluna e procure por quaisquer valores que pareçam excessivos. Pode ajudar a obter uma linha de base do servidor na inicialização e ao longo do tempo. Quanto tempo demora após a inicialização para ver o problema? Há uma boa chance de que o processo com o número mais alto / incomum de alças seja o seu culpado, apesar de determinar exatamente por que pode ser uma outra fera.

No meu caso, eu vi isso causado por uma falha na desinstalação do agente CommVault (backup) que deixou um serviço não-funcional por trás que criou duas alças para HKCU (registro) a cada poucos segundos. Cada identificador aberto consome alguma memória e, eventualmente, coloca o ambiente Exchange de toda a organização de joelhos.

Sysinternals handle.exe também pode ser útil para ver quais processos estão usando muitas alças e quais objetos estão anexados.

    
por 16.10.2013 / 16:57