Pregunta

Nota:. No podía decidir si esto era más apropiado para el desbordamiento de pila o Serverfault, por lo que si usted tiene una idea de que, hágamelo saber

Antecedentes: Recientemente, mi servidor (Windows 2000, MS SQL 2005, IIS 5.0, ASP clásico) experimentaron un aumento en el tráfico a un conjunto específico de páginas ASP. Este pico provocó una fuga masiva en el procesador, Rematar al 100% y causando todo tipo de problemas de tiempo de espera para los visitantes.

Hemos hecho manejamos grandes volúmenes de tráfico que esta sin error. El problema parecía ser que los scripts ASP específicos siendo llamados estaban utilizando una gran cantidad de tiempo de procesador. Usando el explorador de procesos de Sysinternals, encontré que dllhost.exe estaba ocupando todo el tiempo del procesador. En cuanto a sus hilos, el culpable fue llamadas a Comsvcs.dll, que parece ser objetos COM +.

Por lo tanto, parece que mis páginas ASP están llamando objetos COM + y que está matando mi procesador.

Aquí está la pregunta: ¿Cómo puedo determinar qué partes de mis scripts ASP están llamando a los objetos COM +, y cómo iba a comenzar a mejorar el rendimiento de estas piezas? Tengo básicamente sin experiencia en programación de Windows, así que estoy en una pérdida de cómo empezar.

Gracias por su ayuda.

¿Fue útil?

Solución

Ni COM + o DLLHOST es probable que su problema, no son más que los contenedores que el sitio web y objetos COM se ejecutan en. Los objetos reales que están siendo "alimentado" son su problema y / o de la manera / frecuencia que están siendo llamado por la aplicación web.

Una forma más productiva para aislar el problema sería la de buscar en los registros de IIS para las páginas con el tiempo de procesamiento más largo y tienen un programador de analizar lo que está pasando en esa página y qué objetos están siendo llamados.

Específicamente, compruebe la columna "tiempo tomado" en el registro de IIS.

Otros consejos

Para determinar qué objetos están siendo llamados, buscar

 <OBJECT ID=MyObject RUNAT=SERVER PROGID=MyDll.MyObject></OBJECT>

o

 set myObject = server.createobject("MyDll.MyObject")

dentro de sus páginas ASP.

Tenga en cuenta que esto podría ser llamar DLL estándar (no objetos COM +). El método para la instanciación es la misma para ambos tipos.

Si desea saber qué procesos COM + que se ejecutan, echa un vistazo a la aplicación de servicios de componentes.

texto alternativo http://img38.imageshack.us/img38/5062/capturerm .png

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top