2012-05-19 19 views
5

Tengo un rol de trabajador en el que se ejecutan varios subprocesos para manejar conexiones de clientes. Durante la prueba de carga, notamos que la función deja de responder y permanece en ese estado hasta que la reiniciemos. Al observarlo en el depurador de Visual Studio (al pausar el proceso activo), podemos ver una cantidad de subprocesos en espera, pero cuando no está en pausa, no hay actividad. ¿Cómo puedo saber qué hace que la función permanezca en ese estado?Windows Azure Rol no responde

Respuesta

6

Como mencionó que el problema comenzó a suceder con su Rol de trabajador cuando realiza la prueba de carga, es seguro asumir que la función funcionaba correctamente inicialmente. Esto conduce a la conclusión de que el problema es específico de la aplicación en lugar de algo específico de la plataforma. Hay dos formas de obtener alguna información de diagnóstico de Windows Azure VM:

  • Opción 1 (preferido): Con el fin de comprobar lo que está sucediendo en su Azure VM, que realmente necesita para agregar Windows Azure Diagnóstico con su rol para que pueda obtener el contador de rendimiento, los detalles de la memoria, el estado de los procesos de rol y otros datos transferidos de Azure VM a Azure Storage, que puede analizar sin conexión.

  • Opción 2: habilite el acceso RDP a su máquina virtual Azure y luego inicie sesión en su máquina virtual Azure e instale, Perfmon, Process Explorer y otras herramientas de supervisión de estado en su máquina virtual Azure y supervise lo que está sucediendo.

  • Opción 3 (último recurso): RDP a su Azure VM e instalar WinDBG y depurar el proceso de host

En tal condición cuando se tiene un rol de trabajo ha dejado de funcionar, esto es lo que realmente sugiero a cualquiera:

  1. busca CPU, presión de memoria, lista de hilos y descubre qué hilos están bloqueados y cuál podría ser el motivo.
  2. Busque el estado del proceso del trabajador host, cuando se inició la última vez, ¿está reciclando por algún motivo, cuánto tiempo se está ejecutando en el VM Azure
  3. si tiene un proceso separado que está configurado como "ProgramEntryPoint" en su función de trabajador, verifique su estado de salud
  4. Compruebe el registro de eventos en la aplicación a nivel del sistema para cualquier pista. En la función Trabajador, no veo que haya algo en el registro de eventos de la aplicación, pero vale la pena echarle un vistazo.
  5. Utilizo Process Monitor para monitorear algunos procesos y recopilar el registro para ver cuándo muere el proceso, cuál fue el último estado, a qué estaba accediendo y si estaba siendo privado de otros problemas.

La conclusión es que realmente necesita excavar la causa raíz en Azure VM más o menos de la misma manera que lo hará en una máquina en el lugar.

+0

Gracias por esto, realmente buenos consejos. Al principio, este problema solo se presentó en el rol del trabajador en Azure, pero con algunos ajustes en nuestro arnés de prueba, comenzamos a verlo en desarrollo. Tenemos: * Acceso remoto/diagnóstico de Azure configurado * Contadores de rendimiento y registros de eventos personalizados configurados para informes específicos de la aplicación Hay una serie de lugares donde se realizan operaciones de sincronización. Estamos adivinando que hay una excepción no controlada que ocurre, pero es difícil de encontrar. – Irwin

+0

¿Puedo preguntar qué Azure SDK está usando? Hubo algunos problemas con el reenviador remoto en SDK antiguo que podría causar problemas aleatorios en Azure; sin embargo, SDK 1.6 es muy sólido en eso.¿Qué ocurre si elimina el acceso RDP y Azure Diagnostics con su aplicación? ¿El problema persiste? – AvkashChauhan

Cuestiones relacionadas