Sep 13, 2016

¿Problema con almacenamiento de métricas por parte de performance monitor (de sqlserver o de discos) ?


Image result for microsoft


     Hace poco me ha sucedido que me encontré con que ciertas métricas de sistema operativo como métricas de disco y de sqlserver no se estaban guardando correctamente en la carpeta C:\perflogs. Esto fue sobre un ambiente Windows Server 2003 R2 de un cliente. Simplemente los archivos quedaban en blanco o el contador de rendimiento que habia creado se caia dejando un log de error. Hace poco habia creado una métrica de rendimiento para guardar el comportamiento de todos los discos de una máquina sobre la cual corria SQLServer. Mi sorpresa fue que el contador de rendimiento no queria echar a correr dejando el siguiente error:











Como podrán darse cuenta estaba intentando capturar el "Queue lenght" de los discos (en este caso la unidad P:\ ). Buscando documentación en microsoft encontré una serie de pasos que me llevaron a solucionar este problema (ojo que este inconveniente se me manifestó también con las métricas del sqserver , cualquiera de ellas que intentará capturar con dicho contador de rendimiento  daba error)

En el siguiente link están los pasos a lo largo un extenso foro que resumo a continuación:
https://social.technet.microsoft.com/Forums/windowsserver/en-US/4fb21c0d-8e80-4e65-8e9c-177d8b75db88/logicaldisk-perfmon-counter-generates-errors-event-id-2029-and-event-id-2028?forum=winservergen

(En este link también estan los mismos pasos para solucionar el problema)
https://support.solarwinds.com/Success_Center/Server_Application_Monitor_%28SAM%29/Performance_Counters_are_not_working_or_missing_in_PerfMon

Pasos a llevar a cabo:

1.- En el registro de windows  en la llave  MKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfDisk\Performance dicha carpeta debe tener privilegios de lectura  para "everyone".

2.- En la llave mencionada anteriormente se encontrá una variable llamada "Disable Performance Counters" la cual debe estar seteada en 0. Si está con valor 1 las métricas de discos no serán recolectadas

3.- Navegar a la ruta: C:\Windows\System32 y buscar los siguientes archivos: perfc009.dat, perfd009.dat, perfh009.dat y perfi009.dat. Sobre dichos archivos dar privilegios de lectura a "everyone".

4.-  Ejecutar el siguiente comando en la ruta de windows: C:\WINDOWS\system32>lodctr /R
(lo anterior cargará nuevamente las métricas de rendimiento)

5.- Reiniciar el servicio de windows  "Performance Logs and Alerts"

Sinceramente el hecho de dar privilegio de lectura a "everyone" no me agrada mucho pero fue lo único que me permitió resolver el problema. Luego de lo anterior puedo recolectar métricas de discos y de sqlserver sin problemas. Ahora me he creado una nueva métrica y sin problemas obtengo la información de los discos:

















Y finalmente puedo visualizar sin problemas los distintos gráficos de comportamiento:


No comments:

Post a Comment