Perfmon, identificar procesos por PID en lugar de por instancia


Perfmon

Hola a todos,

en esta entrada aprenderemos a configurar nuestro Sistema Operativo de manera que el Monitor de Rendimiento muestre las instancias del contador Process:Working Set con la nomenclatura: proceso_PID, en lugar de mostrar las instancias del proceso con la nomenclatura por defecto: proceso#num_instancia. Además veremos cómo este contador puede ayudarnos a administrar la gestión de memoria RAM en SQL Server.

Introducción, contador Process:Working Set y SQL Server

Antes de explicar los pasos necesarios para conseguir nuestro objetivo, voy a explicar cómo el contador Process:Working Set podría ayudarnos a monitorizar el uso de memoria RAM de una determinada instancia de SQL Server. Este contador mostrará la cantidad de memoria en bytes que un determinado proceso usa en cada momento.

El citado contador puede ser por ejemplo muy útil para descubrir si el parámetro Min Server Memory de SQL Server debe ser reajustado. Recordemos que SQL Server nunca liberará la cantidad de memoria RAM asignada a este parámetro incluso cuando esta sea requerida por el Sistema Operativo. Sin embargo es muy importante tener en cuenta que esto sólo ocurrirá a partir del momento en que la RAM requerida por la instancia de SQL Server rebase el valor asignado al parametro Min Server Memory.
Si el monitor del Sistema muestra un valor para el Contador Process:Working Set que se mantiene estable por debajo de la cantidad de memoria asignada a Min Server Memory, deberíamos reajustar ese valor para evitar el desperdicio de Memoria RAM.

Veamos un caso práctico concreto para entenderlo mejor:

Tenemos un servidor con 15 GB de memoria RAM, donde se encuentra instalada una Instancia de SQL Server, la cual ha sido configurada de la siguiente forma:

MIN Server Memory: 4GB

MAX Server Memory: 8GB

Memory SQL Server

Sin embargo se hace notar un bajo rendimiento cuando accedemos a otras aplicaciones instaladas en el servidor, por lo que prevemos un cuello de botella de memoria RAM.
En este caso podemos usar el Monitor de Rendimiento para valorar si es posible ajustar el parámetro Min Server Memory o por el contrario debemos considerar la opción de ampliar la capacidad de nuestro servidor.
En nuestro caso lanzamos PERFMON y monitorizamos el Contador Process: Working Set. Observamos que sus valores se mantienen estables en torno a los 2-3 GB. Por lo tanto, tenemos un buen indicio de que al menos 1 GB de RAM está siendo desperdiciado. En este caso procederemos a reajustar el parámetro Min Server Memory de SQL Server a 3 GB.

Memory SQL Server

Mostrar procesos por PID en lugar de por número de instancia

Una vez aclarado cómo el contador Process:Working Set nos puede ayudar a gestionar la memoria RAM de SQL Server. Veamos cómo afrontar un pequeño problema que se nos puede plantear.
Si deseamos monitorizar el contador en un servidor en el que se encuentran instaladas varias instancias de SQL Server, nos encontraremos que PERFMON muestra las instancias con un numero de proceso, por ejemplo sqlservr#1, sqlservr#2, etc. La siguiente imágen muestra la nomenclatura por defecto:

Instance number Process:Working Set

Esta nomenclatura no es para nada óptima, dado que el número de un determinado proceso podría cambiar arbitrariamente. Si deseamos estar seguros de estar monitorizando la instancia del proceso que verdaderamente deseamos monitorizar, podremos cambiar la nomenclatura de forma que incluya el PID (Identificador del proceso). Para llevarlo a cabo vamos a modificar el registro en el servidor de la siguiente forma:

En primer lugar abrimos la siguiente entrada del registro: (Recuerda que puedes acceder al registro ejecutando el comando regedit)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance

Una vez hayamos accedido al registro seguiremos los siguientes pasos:

  • 1.- Creamos un nuevo valor DWORD

  • 2.- Lo renombramos como ProcessNameFormat

  • 3.- Hacemos clic derecho sobre el valor y pulsamos sobre Modificar

  • 4.- Deberemos asignarle alguno de los siguientes valores:

  • Valor=1 Deshabilita la aparición del PID en los procesos. Esta es la opcion por defecto Valor=2 Habilita la aparición del PID en los procesos

  • 5.- Confirme los cambios pulsando sobre el botón OK

  • 6.- Cierre el editor del registro

Process:Working Set PID

Una vez realizados estos cambios, reinicie el monitor de rendimiento si ya lo tenía abierto para que los cambios surtan efecto, en la siguiente imágen podemos ver el resultado tras haber sido aplicados los cambios, como vemos ahora resultará mucho más sencillo identificar la instancia.

Instance number Process:Working Set

Advertencia: Si modifica el registro de forma erronea podria acarrear serios problemas de funcionamiento en su sistema. Modifique el registro bajo su propia responsabilidad.

Esto es todo, tan solo aclarar que yo he testeado este método en varios servidores bajo Windows 2008 R2 SP1 y funcionó sin problemas. ¡Suerte y saludos a todos!




comments powered by Disqus
www.000webhost.com