Re: [bofhers] Garbage collector de .NET

  • From: vfmBOFH <vfmbofh@xxxxxxxxx>
  • To: bofhers <bofhers@xxxxxxxxxxxxx>
  • Date: Tue, 6 May 2014 00:54:46 +0200

+1 a la sobredosis de conexiones. No hace ni 20 días que tuvimos un caso
similar en fotofriki: La super aplicación web no cerraba conexiones y se
encargó de tumbar un maquinón con un Oracle tuneado más que competentemente
a base de conexiones sin cerrar.




El 6 de mayo de 2014, 0:46, Wardog <wardogyelmundo@xxxxxxxxx> escribió:

> Voto por lo mismo. Si no cierras las conexiones a la base de datos aquello
> empieza a devorarse a sí mismo a poco que le des candela. Ojo también al
> ámbito de datareaders y qué se deja ahí metido.
>
>
> El 5 de mayo de 2014, 23:53, f5inet <f5inet@xxxxxxxxx> escribió:
>
> suena a que las conexiones a la BBDD no se cierran explicitamente en el
>> webservice y se queda con mogollon de conexiones a la BBDD abiertas. hasta
>> que no se reinicia el runtime o se fuerza un GC no se liberan
>> 'implicitamente' las conexiones.
>>
>> de todas maneras, creo que una llamada a System.GC.Collect() deberia ser
>> suficiente.
>>
>> te recomendaria hacer un LOG en cada webservice, que logueara el
>> resultado de GC.GetTotalMemory(false), y ver si a partir de cierta memoria
>> ocupada empieza a quedarse tonto el webservice. si es asi, con hacer que se
>> ejecute el GC.Collect() si lo que devuelva GC.GetTotalMemory(false) es mas
>> del 50% de cuando se queda tonto, deberia ser suficiente.
>>
>> tambien es posible que necesites llamar a GC.WaitForPendingFinalizers(),
>> para asegurarte que los objetos 'tontos' son finalizados correctamente
>> antes de seguir ejecutando codigo y metiendo mas basura al Heap.
>>
>>
>> El 5 de mayo de 2014, 21:43, Carlos Melgarejo 
>> <zerocool.cmg@xxxxxxxxx>escribió:
>>
>> Buenas noches BOFHmanos,
>>>
>>> Tengo un problema con el GC de .NET y me gustaría saber si alguno lo ha
>>> tenido y como lo puedo solucionar.
>>>
>>> Expongo el pifostio:
>>>
>>> Tengo una aplicación, la cual saca chicha de una bbdd
>>> (irremediablemente) SQLServer. En un principio estaba App -> BBDD, todo
>>> funcionando a la perfección y la hostia de rápido.
>>>
>>> Llego el momento en el que el cliente pidió un WebService, y debía ser
>>> en .NET C#.
>>>
>>> Aquí viene el problema, el WS, tras 3 o 4 días, se queda atontado y
>>> bloquea todo el sistema de datos, teniendo que reiniciar el site de IIS.
>>>
>>> En uno de los bloqueos, dijimos a los técnicos (por llamarlos de alguna
>>> manera) que no reiniciaran, y lanzamos un forzado de limpieza de GC, dando
>>> en la clave del bloqueo. Al limpiarse, volvió a la vida la criaturita.
>>>
>>> Entonces, sabéis de alguna forma de que no pase esto con el Recolector?
>>>
>>> La última opción es poner un forzado de limpieza cada noche, o incluso
>>> (mucho mas hardcore) un forzado de limpieza, al final de cada petición.
>>>
>>> Muchas gracias por las respuestas que podáis dar.
>>>
>>> Un saludo y a cuidarse.
>>>
>>
>>
>

Other related posts: