none
IIS work process (w3wp.exe) consumindo muita memória RRS feed

  • Pergunta

  • Pessoal, 

    Recentemente trocamos as aplicações da empresa de um servidor físico em collocation para um servidor cloud e desde então, estamos percebendo que o processo w3wp.exe de um app pool vai sempre aumentando e nunca abaixa. No início, isso ocorria e chegava a dar erro de Out of memory (o servidor tem 12GB de memória).

    Para evitar que desse esse erro e parasse a aplicação, nós limitamos o "Private Memory Limit (KB)" para 1200000, ou seja, quando ele atinge esse limite ocorre um recycle no pool e ai o processo cai a memória. Ok, funciona, só que antes não era assim e pelo que vi, está dando em média de 3 a 5 recycles por dia, isso é ruim, pois se o cliente está na aplicação e ocorre um recycle, a sessão dele cai e redireciona-o para fazer login novamente.

    Já vi bastante sites relacionados a esse aumento de memória, só que não tenho conhecimento dos procedimentos que pedem pra fazer, alem de que, tenho um certo medo de me arriscar a fazer esses procedimentos e ocorrer algum problema e parar a aplicação e os clientes começarem a ligar, etc, etc...Vi que pode ser vazamento de memória (memory leak) e a aplicação principal é utilizada bastante para exibir PDF's e esses PDF's são exibidos hora utilizando memory stream e postando com "BinaryWrite", hora com "TransmitFile", só que ao final tem um "HttpContext.Current.ApplicationInstance.CompleteRequest();", que pelo que li, é melhor utilizar ao invés de Response.End e Response.Flush. Achei que poderia ser algo que não estivesse liberando da memória e tal, mas no ASHX que estou exibindo o PDF, onde tem stream tem um close logo após, onde usa Session eu dou um close depois...

    Enfim, alguém já teve este tipo de problema e poderia me orientar como posso pelo menos começar a descobrir algo? Nos servidor anterior não acontecia isso. 

    Uma informação é que agora é IIS 7.5 e no servidor antigo, se nao me engano era 7.0

    Obrigado pela atenção.

    quinta-feira, 3 de julho de 2014 14:13

Respostas

  • Oi Thiago,

    Problemas relacionado ao auto consumo de memória no IIS, normalmente é por causa de algum vazamento de memória (Memory Leak), existe ferramentas que auxiliam na hora do troubleshooting, eu recomendo o WinDBG ou DebugDiag, no seu caso o DebugDiag, pois o mesmo já faz o diagnóstico e lhe entrega um relatório.

    Download: http://www.microsoft.com/en-us/download/details.aspx?id=42933

    Veja se lhe ajuda na utilização do DebugDiag: http://blogs.msdn.com/b/asiatech/archive/2014/01/14/debug-diagnostic-2-0-creating-a-memory-leak-rule-unmanaged-code.aspx

    Abraços, 


    Erick Albuquerque | Microsoft MVP
    MVP Profile | Twitter | Linkedin | http://iisbrasil.wordpress.com
    Windows 8 / 2012: http://windows8dicas.com.br

    sexta-feira, 11 de julho de 2014 19:00
    Moderador

Todas as Respostas

  • Boa tarde Thiago,

    No TechNet tem uma área destinada a IIS, vou mover seu post para la ok?

    Att,


    Ricardo Cortes Microsoft Contingent Staff

    Esse contedo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    quinta-feira, 3 de julho de 2014 17:18
  • Oi Thiago,

    Problemas relacionado ao auto consumo de memória no IIS, normalmente é por causa de algum vazamento de memória (Memory Leak), existe ferramentas que auxiliam na hora do troubleshooting, eu recomendo o WinDBG ou DebugDiag, no seu caso o DebugDiag, pois o mesmo já faz o diagnóstico e lhe entrega um relatório.

    Download: http://www.microsoft.com/en-us/download/details.aspx?id=42933

    Veja se lhe ajuda na utilização do DebugDiag: http://blogs.msdn.com/b/asiatech/archive/2014/01/14/debug-diagnostic-2-0-creating-a-memory-leak-rule-unmanaged-code.aspx

    Abraços, 


    Erick Albuquerque | Microsoft MVP
    MVP Profile | Twitter | Linkedin | http://iisbrasil.wordpress.com
    Windows 8 / 2012: http://windows8dicas.com.br

    sexta-feira, 11 de julho de 2014 19:00
    Moderador