<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Server : Herramientas</title><link>http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx</link><description>Tags: Herramientas</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Análisis del dump II – Windbg</title><link>http://msmvps.com/blogs/juansa/archive/2009/10/23/an-225-lisis-del-dump-ii-windbg.aspx</link><pubDate>Fri, 23 Oct 2009 11:16:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1734534</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1734534</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/10/23/an-225-lisis-del-dump-ii-windbg.aspx#comments</comments><description>&lt;p&gt;Windbg es una herramienta de depuración tanto en modo kernel como en modo usuario, con ella analizaremos los volcados. &lt;/p&gt;  &lt;p&gt;Repasemos:&lt;/p&gt;  &lt;p&gt;Cuando pasa un error en modo kernel Windows nos saluda con una pantalla azul y la info sobre el código de stop. Esto puede modificarse, de manera que:&lt;/p&gt;  &lt;p&gt;- Se puede asignar un depurador (como windbg o KD).    &lt;br /&gt;- Se grabe el archivo de volcado de memoria (dump).     &lt;br /&gt;- Se produzca un reinicio automático del sistema.     &lt;br /&gt;- Se grabe el volcado y reinicie el sistema inmediatamente después.&lt;/p&gt;  &lt;p&gt;Aunque a nosotros de momento nos interesa más ver los volcados.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;em&gt;&lt;strong&gt;Los volcados.&lt;/strong&gt;&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Modo-kernel:    &lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Completo&lt;/em&gt;&lt;/strong&gt;: volcado de tamaño más grande, contendrá la memoria física del equipo en el momento del pete. Lo que implica que el archivo de paginación deba tener al menos el tamaño de la memoria real + 1MB.     &lt;br /&gt;El volcado se guarda en la raíz del sistema con el nombre de memory.dmp(Por ejemplo: C:\windows\MEMORY.DMP), y en el caso de volcados posteriores, irían sustituyendo al existente.     &lt;br /&gt;&lt;/p&gt; &lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Memoria Kernel&lt;/em&gt;&lt;/strong&gt;: Con un tamaño significativamente menor contiene la memoria ocupada por el kernel en el momento del pete. Es decir, ni memoria no asignada ni la que está asignada a aplicaciones en modo usuario, sólo la usada por el kernel, HAL, y la asignada a controladores y programas en modo kernel.     &lt;br /&gt;En general es el volcado más útil y se guarda en la raíz del sistema con el nombre memory.dmp. Los volcados posteriores, sean &lt;strong&gt;memoria kernel&lt;/strong&gt; o &lt;strong&gt;completo&lt;/strong&gt;, sustituyen al existente.     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Volcado pequeño&lt;/em&gt;&lt;/strong&gt;: Con un tamaño de 64KB es el más pequeño de todos y por tanto sólo requiere un archivo de paginación de ese tamaño.     &lt;br /&gt;Su contenido es:     &lt;br /&gt;- Mensaje del código de stop y sus parámetros.     &lt;br /&gt;- El contexto del procesador que ha cascado.     &lt;br /&gt;- La información del proceso y el contexto kernel, del proceso que ha petado.     &lt;br /&gt;- La información del hilo y el contexto kernel, del proceso que ha petado.     &lt;br /&gt;- La pila de llamadas en modo kernel para el hilo que ha petado. Sólo hasta 16KB, los de arriba de la pila.     &lt;br /&gt;- Una lista de los controladores cargados.     &lt;br /&gt;Además, si es Windows XP o posterior:     &lt;br /&gt;- Una lista de módulos cargados y descargados.     &lt;br /&gt;- El bloque de datos del depurador (información de depuración básica del sistema).     &lt;br /&gt;- Cualquier página de memoria que Windows crea que es útil en la depuración de errores. (Las páginas de datos a qué apuntan los registradores en el momento del pete y otras que hayan sido solicitadas específicamente por el componente que falla). &lt;/p&gt;  &lt;p&gt;Este tipo de volcado puede ser útil en los casos que el espacio sea escaso, aunque su información limitada hará que errores cuya causa no sea un hilo en ejecución en el momento del pete sean imposibles de ver en su análisis.    &lt;br /&gt;Ante nuevos petes, la creación del volcado pequeño no sustituye a los anteriores, creándose con nombres cuyo formato incluye la fecha añadida a la palabra mini, y un valor numérico tras un guión si se producen varios en una misma fecha, al estilo de mini070209-01.dmp; el primer volcado pequeño del 7 de febrero de 2009.     &lt;br /&gt;Los minidump se guardan en una carpeta denominada Minidump dentro de la raíz del sistema. &lt;/p&gt;  &lt;p&gt;* Kernel = Núcleo.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Análisis mediante Windbg&lt;/u&gt; &lt;/p&gt;  &lt;p&gt;Como ya comentamos e independientemente del depurador a usar, necesitamos instalar los archivos de símbolos de la versión de Windows que ha generado el volcado. Los utilizará el depurador para el análisis del archivo, y puede configurarse en Windbg el uso de la ruta de descarga desde el servidor de MS. &lt;/p&gt;  &lt;p&gt;Con Windbg abriremos el dump desde File/Open Crash Dump, navegaremos hasta el lugar donde tenemos el archivo, lo elegiremos y pulsaremos Abrir. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8156.windbg01_5F00_7DDA07A9.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="windbg01" border="0" alt="windbg01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4265.windbg01_5F00_thumb_5F00_30CEB973.jpg" width="375" height="276" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Se abrirá una ventana independiente, mostrándonos el proceso de carga del volcado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7080.windbg02_5F00_1B7394BC.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="windbg02" border="0" alt="windbg02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1541.windbg02_5F00_thumb_5F00_5CA42EC4.jpg" width="376" height="315" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bajo Bugckeck Analysis encontraremos la primera información relevante, para obtener información detallada (aconsejable) podemos pulsar sobre el link !analyze –v o escribirlo tal cual en la barra de comandos abajo, el resultado es el mismo.&lt;/p&gt;  &lt;p&gt;Podemos usar también otros comandos para ver información relacionada, como:&lt;/p&gt;  &lt;p&gt;!memusage&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6011.memusage_5F00_5C3A8C80.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="memusage" border="0" alt="memusage" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3771.memusage_5F00_thumb_5F00_11D5694A.jpg" width="244" height="203" /&gt;&lt;/a&gt; &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0068.memusage2_5F00_5135AD8B.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="memusage2" border="0" alt="memusage2" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4760.memusage2_5F00_thumb_5F00_34BDDD0D.jpg" width="244" height="203" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;!vm &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8475.vm_5F00_18AFAED3.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="vm" border="0" alt="vm" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2210.vm_5F00_thumb_5F00_50871458.jpg" width="244" height="203" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;!errlog&lt;/p&gt;  &lt;p&gt;!process 0 0&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3683.process00_5F00_2D59A9A6.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="process00" border="0" alt="process00" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3386.process00_5F00_thumb_5F00_753FDDE2.jpg" width="244" height="203" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;!process 0 7 &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6406.process07_5F00_26CDDC29.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="process07" border="0" alt="process07" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3771.process07_5F00_thumb_5F00_3E8A34F1.jpg" width="244" height="203" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Como decía al principio el primer paso sería darle paso al comando !analyze junto a la opción -v, que nos dará información extensa. &lt;/p&gt;  &lt;p&gt;Las opciones disponibles de !analyze son: &lt;/p&gt;  &lt;p&gt;-v    &lt;br /&gt;Salida de info extendida por pantalla     &lt;br /&gt;-f     &lt;br /&gt;Genera información sobre la excepción. Se usa para ver un análisis de la excepción aún si el depurador no la ha detectado.     &lt;br /&gt;-hang     &lt;br /&gt;Genera información sobre el pete de la aplicación.&amp;#160; &lt;/p&gt;  &lt;p&gt;-D BucketID    &lt;br /&gt;Sólo muestra aquéllos elementos que son relevantes al BucketID especificado. &lt;/p&gt;  &lt;p&gt;-show    &lt;br /&gt;Muestra en pantalla la información sobre el código de stop especificado. &lt;/p&gt;  &lt;p&gt;-c    &lt;br /&gt;Sigue con la depuración cuando el depurador se encuentra con un problema conocido. Si el problema no es uno conocido, el depurador permanecerá detenido.     &lt;br /&gt;Podemos usar -c con ciertos subparámetros, que configuran la lista de problemas conocidos y de porsí no se ejecutan, hasta que usemos !analyze -c -load al menos una vez. !analyze -c no tiene ningún efecto.&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; -load Archivoconocidos    &lt;br /&gt;Carga un archivo de problemas conocidos. Archivoconocidos específica la ruta y el nombre del archivo a cargar. Debe estar en formato xml.&amp;#160; Se usará en todos los análisis posteriores con el parámetro !analyze -c hasta que se descargue el archivo o se cargue otro nuevo que sustituya al cargado.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; -unload     &lt;br /&gt;descarga la lista de problemas conocidos.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; -help     &lt;br /&gt;Muestra ayuda para la extensión !analyze -c en la ventana de comandos del depurador. &lt;/p&gt;  &lt;p&gt;BugCheckCode    &lt;br /&gt;Específica el código de stop a mostrar. &lt;/p&gt;  &lt;p&gt;BugParameters    &lt;br /&gt;Especifica hasta cuatro parámetros del código separados por espacios. Ese parámetro nos permite mayor refinamiento en la especificación de los cuatro parámetros. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;u&gt;analyze modo kernel&lt;/u&gt;&lt;/strong&gt;&lt;/em&gt;: &lt;/p&gt;  &lt;p&gt;se inicia...    &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1526.img00_5F00_64164303.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img00" border="0" alt="img00" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1526.img00_5F00_thumb_5F00_3F1B133B.jpg" width="389" height="124" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;El primer elemento que muestra el pantallazo es el código de stop y la información relacionada con el mismo. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3660.img01_5F00_703F6F3D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img01" border="0" alt="img01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0068.img01_5F00_thumb_5F00_6CC0DE53.jpg" width="398" height="73" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Sus parámetros y breve descripción, en el argumento 3 el valor es 0 y a su lado una descripción sobre el valor. &lt;/p&gt;  &lt;p&gt;Los siguientes elementos varían según la naturaleza del pete. En la imagen podemos ver los campos READ_ADDRESS y CURRENT_IRQL.    &lt;br /&gt;FAULTING_IP muestra el puntero en el momento de error.     &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7180.img02_5F00_6E2791D6.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img02" border="0" alt="img02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5758.img02_5F00_thumb_5F00_3EFD5852.jpg" width="406" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Muestra la categoría general a la que pertenece este fallo. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BUGCHECK_STR: 0xD1&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;El código de stop, que a veces va seguido de información adicional. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1220.img03_5F00_30553D1E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img03" border="0" alt="img03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4353.img03_5F00_thumb_5F00_63B3912B.jpg" width="410" height="87" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;El campo TRAP_FRAME nos muestra el cuadro trap del pete. (con el comando .trap seguido de la dirección del cuadro también se muestra la información) &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;LAST_CONTROL_TRANSFER: from 921ec579 to 8168cfb9&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;última llamada a la pila. Si usamos el comando Ln dirección, podemos ver el módulo y función de la dirección. En este caso:    &lt;br /&gt;&lt;strong&gt;&lt;em&gt;kd&amp;gt; ln 8168cfb9        &lt;br /&gt;(8168ccd8)&amp;#160;&amp;#160; nt!KiTrap0E+0x2e1&amp;#160;&amp;#160; |&amp;#160; (8168cff8)&amp;#160;&amp;#160; nt!Dr_kitf_a&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;STACK_TEXT muestra un seguimiento de la pila del componente que falla.    &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1538.img04_5F00_2EA992AC.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img04" border="0" alt="img04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4452.img04_5F00_thumb_5F00_028F266C.jpg" width="417" height="121" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;STACK_COMMAND el comando utilizado para obtener el STACK_TEXT, en este caso kb. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0640.img05_5F00_5438316F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img05" border="0" alt="img05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8078.img05_5F00_thumb_5F00_35ED7A79.jpg" width="430" height="76" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;FOLLOWUP_IP muestra el desensamblado de la instrucción que probablemente ha causado el error. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1220.img06_5F00_0C793939.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="img06" border="0" alt="img06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5023.img06_5F00_thumb_5F00_499CF4BE.jpg" width="334" height="161" /&gt;&lt;/a&gt;     &lt;br /&gt;SYMBOL_NAME, MODULE_NAME, IMAGE_NAME y DBG_FLR_IMAGE_TIMESTAMP muestran datos sobre la instrucción: símbolo, módulo, imagen y marcado de la imagen. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BUCKET_ID: 0xD1_myfault+579&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;La categoría específica de errores al que pertenece el error.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1734534" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category></item><item><title>Análisis del dump I –Preparando las herramientas</title><link>http://msmvps.com/blogs/juansa/archive/2009/10/11/an-225-lisis-del-dump-i-preparando-las-herramientas.aspx</link><pubDate>Sun, 11 Oct 2009 09:47:13 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1731561</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1731561</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/10/11/an-225-lisis-del-dump-i-preparando-las-herramientas.aspx#comments</comments><description>&lt;p&gt;Para analizar el archivo de volcado que se genera al colgarse Windows necesitaremos un depurador y los símbolos pertenecientes al sistema operativo en el que se ha producido ese dump.&lt;/p&gt;  &lt;p&gt;Los mini-dumps se almacenan en la carpeta &amp;quot;&lt;em&gt;ruta_del_sistema\Minidump&amp;quot;&lt;/em&gt;, y contienen la información del stop, los datos de la pila del modo kernel y una lista de los controladores cargados. &lt;/p&gt;  &lt;p&gt;Desde &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;Debugging Tools for Windows&lt;/a&gt; podremos descargar las herramientas de depuración de 32/64 bits y los paquetes de símbolos, sinó configuramos el depurador para que los use desde internet.&lt;/p&gt;  &lt;p&gt;Yo descargo la versión de 32 bits puesto que mi Windows 7 actual es el de 32 bits (cosas de pruebas).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a"&gt;Install Debugging Tools for Windows 32-bit Version&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5381.debugging01_5F00_6BFCC639.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="debugging01" border="0" alt="debugging01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8103.debugging01_5F00_thumb_5F00_11F50741.jpg" width="340" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Luego los símbolos respectivos,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#d"&gt;Download Windows Symbol Packages&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El tamaño de un paquete de símbolos ronda los 300Mb y cada uno servirá para el sistema en concreto, puede configurarse Windbg para usar el servidor de descarga de MS.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;&lt;/h4&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h4&gt;Instalando las herramientas&lt;/h4&gt;  &lt;p&gt;Lo primero dirigirme donde he descargado el paquete msi y desbloquearlo:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7532.debugging02_5F00_1D21223C.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="debugging02" border="0" alt="debugging02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6862.debugging02_5F00_thumb_5F00_579EB2C1.jpg" width="374" height="278" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Luego proceder a la instalación:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5873.installdebug01_5F00_41D75B15.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug01" border="0" alt="installdebug01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0412.installdebug01_5F00_thumb_5F00_29D60B5E.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5488.installdebug02_5F00_1E42DED0.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug02" border="0" alt="installdebug02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.installdebug02_5F00_thumb_5F00_61AD70E3.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2727.installdebug03_5F00_174ADE5E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug03" border="0" alt="installdebug03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1072.installdebug03_5F00_thumb_5F00_799105B1.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2234.installdebug04_5F00_41E0DC32.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug04" border="0" alt="installdebug04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3782.installdebug04_5F00_thumb_5F00_736EDA78.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6443.installdebug05_5F00_208657F8.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug05" border="0" alt="installdebug05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1541.installdebug05_5F00_thumb_5F00_5F7A6944.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3113.installdebug06_5F00_79DCED0C.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug06" border="0" alt="installdebug06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7506.installdebug06_5F00_thumb_5F00_38D0FE59.jpg" width="244" height="151" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;*Casi con seguridad que UAC nos pedirá confirmar la acción de instalación después de elegir el modo en la tercera pantalla.&lt;/p&gt;  &lt;p&gt;Ya nos aparecen en el menú:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2100.installdebug07_5F00_55700ADD.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="installdebug07" border="0" alt="installdebug07" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3364.installdebug07_5F00_thumb_5F00_2DF35B6A.jpg" width="371" height="277" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Vamos a abrir Windbg y a configurar donde tiene los símbolos o desde donde descargarlos:&lt;/p&gt;  &lt;p&gt;Hay que elegir una carpeta en el equipo donde se descargarán los símbolos desde el servidor de descarga, por ejemplo y siguiendo el ejemplo (valga la redundancia) de la propia MS, yo he creado la carpeta &lt;strong&gt;c:\websymbols&lt;/strong&gt;, y la ruta a utilizar en la configuración de Windbg sería: &lt;b&gt;SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols&lt;/b&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8562.windbg02_5F00_3BEA4CBA.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="windbg02" border="0" alt="windbg02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7571.windbg02_5F00_thumb_5F00_61E51E72.jpg" width="374" height="275" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Podemos asimismo utilizar el botón &lt;em&gt;&lt;strong&gt;Browse&lt;/strong&gt;&lt;/em&gt; para buscar las rutas en el equipo.&lt;/p&gt;  &lt;p&gt;Podemos establecer varias rutas de paquetes de símbolos.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7077.windbg01_5F00_1713C847.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="windbg01" border="0" alt="windbg01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6404.windbg01_5F00_thumb_5F00_5F639EC7.jpg" width="398" height="168" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1731561" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Controlar el rendimiento I</title><link>http://msmvps.com/blogs/juansa/archive/2009/10/04/controlar-el-rendimiento-i.aspx</link><pubDate>Sun, 04 Oct 2009 11:59:45 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1729608</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1729608</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/10/04/controlar-el-rendimiento-i.aspx#comments</comments><description>&lt;p&gt;Estaremos de acuerdo en que realizar un control rutinario del rendimiento nos servirá para propósitos como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Detectar y diagnosticar problemas de rendimiento &lt;/li&gt;    &lt;li&gt;Comprobar que los servicios cumplen con los niveles acordados &lt;/li&gt;    &lt;li&gt;Ayuda para poder prevenir escasez de recursos antes de ésta suponga un impacto al nivel de los servicios. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Saber que contadores registrar&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Una rutina de control del rendimiento efectiva en la detección y diagnóstico, además de resolver los problemas de rendimiento comunes, debería reunir quizás cantidades enormes de datos, para editarlos, resumirlos y usarlos en informes y programación. &lt;/p&gt;  &lt;p&gt;La primera de las cuestiones a determinar puede que verse sobre los contadores de rendimiento; entre todos los disponibles debemos reunir un conjunto básico.&lt;/p&gt;  &lt;p&gt;Una monitorización diaria, con sesiones de registro de contadores en segundo plano, para reunir los datos de rendimiento según ese conjunto básico de contadores de forma continua que nos permita la posibilidad de resolver problemas comunes cuando surjan. Como no somos adivinos y nos es imposible conocer de antemano qué recursos clave están saturados en un equipo con problemas de rendimiento, quizás en un mundo perfecto deberíamos reunir datos de todos los recursos: procesador, memoria, disco y red; pero el sentido común nos dice que es una burrada, así qué nos queda la idea de ser selectivos en cuanto a los datos a reunir, su cantidad y con qué frecuencia. Es decir, un intento de encontrar un justo equilibrio entre la cantidad de datos a reunir para analizar y el costo asociado a este proceso.&lt;/p&gt;  &lt;p&gt;La detección y diagnóstico de problemas comunes de rendimiento implica recursos sobrecargados, necesitamos reunir un gran rango de datos detallados del procesador, memoria, disco y uso de red y de las cargas que están soportando. Los datos deben incluir contadores que puedan indicar condiciones de error, en especial los que se dan como resultado de falta de recursos internos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;em&gt;Procedimientos de control diario&lt;/em&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Un procedimiento de control rutinario debe incluir:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Recogida automática de una vista en detalle del rendimiento del sistema mediante los registros de contador. &lt;/li&gt;    &lt;li&gt;Control de los indicadores de errores de aplicaciones de servidor y del sistema. &lt;/li&gt;    &lt;li&gt;Configuración de alertas que provoquen registros de contador de diagnóstico e información detallada. &lt;/li&gt;    &lt;li&gt;Conservación resumida de estadísticas de rendimiento. &lt;/li&gt;    &lt;li&gt;Administración de los registros de contador generados automáticamente por estos procesos. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Registros de contador diarios.&lt;/p&gt;  &lt;p&gt;Primer paso, establecer un registro automatizado de datos con Logman. Por ejemplo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;Logman create counter registro_diario –cf &amp;quot;ruta_del_archivo_de_configuracion\archivoconf.txt&amp;quot; –o ruta_archivo\diario\registrodiario –b 1/10/2009 00:00:00 –cnf 24:00:00 –si 1:00 –f BIN –v mmddhhmm&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Después de la ejecución podemos verlo desde la interfaz gráfica de Rendimiento:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7635.sesiondiaria_5F00_2F934480.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="sesiondiaria" border="0" alt="sesiondiaria" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8637.sesiondiaria_5F00_thumb_5F00_19624A90.jpg" width="356" height="255" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Descripción:&lt;/p&gt;  &lt;p&gt;Se crea un contador llamado registro_diario, donde se registrarán los contadores especificados en C:\perflogs\archivoconf.txt.&lt;/p&gt;  &lt;p&gt;El registro se iniciará automáticamente por el monitor del sistema, una vez reiniciada la máquina y sea el 5 de octubre de 2009.&lt;/p&gt;  &lt;p&gt;Las muestras se toman cada minuto, el formato del archivo de registro es el Binario.&lt;/p&gt;  &lt;p&gt;Los archivos llevaran en su nombre la fecha, en formato mmddhhmm.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;El archivo de configuración nos servirá para indicar los contadores que deseamos registrar o si queremos añadir contadores de aplicaciones específicas.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1729608" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>La pantalla azul II- Ha petado o petado, ¿pero hay solución?</title><link>http://msmvps.com/blogs/juansa/archive/2009/09/29/la-pantalla-azul-ii-ha-petado-o-petado-191-pero-hay-soluci-243-n.aspx</link><pubDate>Tue, 29 Sep 2009 12:18:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1728173</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1728173</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/09/29/la-pantalla-azul-ii-ha-petado-o-petado-191-pero-hay-soluci-243-n.aspx#comments</comments><description>&lt;p&gt;Dependeeee… ¿de qué?. De las ganas que se tengan de encontrar solución, hay muchos que reinstalan el sistema pensando que así desaparecerá el problema, y yo digo que puede que no y puede que tampoco, tarde o temprano si tenemos los mismos dispositivos, el mismo sistema, los mismos controladores y las mismas aplicaciones… regresará. Otra cosa es si al mismo tiempo cambiamos cosas y no nos damos cuenta que estamos eliminando la causa, pero en fin, contra gustos no hay colores, ni el azul.&lt;/p&gt;  &lt;p&gt;Yo sí tengo ganas de solucionarlos. Por ello, primero analizo si es cosa del sistema o de alguna aplicación, luego sigo unas premisas bastante básicas para ir poco a poco profundizando si fuese necesario.&lt;/p&gt;  &lt;p&gt;Cuando uno o varios equipos se ponen pesados en mostrarnos &lt;strong&gt;&lt;em&gt;BSOD’s &lt;/em&gt;&lt;/strong&gt;puede que sea por diversas razones: &lt;/p&gt;  &lt;p&gt;- que hayamos instalado nuevos dispositivos, &lt;/p&gt;  &lt;p&gt;- nuevo software o, &lt;/p&gt;  &lt;p&gt;- de verdad se ha roto algo.&lt;/p&gt;  &lt;p&gt;Yo pienso que el azul no sale &amp;quot;porque sí&amp;quot;, es decir, pienso que el desencadenante es reciente y no creo nunca eso de &amp;quot;no hemos hecho nada&amp;quot;. Una nueva aplicación, un nuevo escáner, ratón, tarjeta, controladores,… &lt;/p&gt;  &lt;p&gt;Si hemos actualizado o instalado un nuevo controlador y al reiniciar nos saluda con una pantalla azul… pues que te voy a contar: Reinicia de nuevo y pulsa la tecla de función F8 y escoge &lt;font color="#000080"&gt;&amp;quot;la última configuración buena conocida&amp;quot;&lt;/font&gt;. Esto lo que hará es volver hacia atrás, evitando el nuevo controlador instalado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1581.wre2_5F00_1203F646.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="wre2" border="0" alt="wre2" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0676.wre2_5F00_thumb_5F00_609AA354.jpg" width="390" height="297" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Al reiniciar después de una bsod, bootmgr automáticamente detecta que no se apagó correctamente y mostrará una pantalla similar a la anterior (Windows Error Recovery), que nos ofrece algunas opciones; en este caso reparar el inicio. (En este caso la bsod fue provocada en un windows 7 en español)&lt;/p&gt;  &lt;p&gt;Si las pantallas azules nos aparecen después de haber pasado ya tiempo de cualquier instalación de soft o hard no nos quedará otro remedio que intentar buscarnos la vida de algún modo, si es que queremos encontrar solución.&lt;/p&gt;  &lt;p&gt;Aquí tenemos el primer paso importante, para poder indagar necesitamos datos y creo recordar que comenté algo de DUMPS, es decir, archivos de volcado de memoria. Bien, lo primero es lo primero.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Archivos de volcado&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;De forma predeterminada todos los Windows están configurados para intentar la grabación de información relativa al estado del sistema durante un cuelgue. La configuración se encuentra en la pestaña avanzada de las propiedades del sistema:&lt;/p&gt;  &lt;p&gt;Clic derecho Equipo –&amp;gt; Propiedades –&amp;gt; Configuración avanzada del sistema del árbol izquierdo –&amp;gt; Pestaña Opciones avanzadas –&amp;gt; Sección Inicio y recuperación –&amp;gt; Sección Error del sistema.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="1094"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="246"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1588.configdumps01_5F00_473530CB.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps01" border="0" alt="configdumps01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1172.configdumps01_5F00_thumb_5F00_7F763894.jpg" width="215" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="291"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5488.configdumps02_5F00_518B768D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps02" border="0" alt="configdumps02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2161.configdumps02_5F00_thumb_5F00_302E61A2.jpg" width="310" height="254" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="264"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7851.configdumps03_5F00_5B095665.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps03" border="0" alt="configdumps03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8015.configdumps03_5F00_thumb_5F00_45448F6A.jpg" width="236" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="281"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.configdumps04_5F00_29366130.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="configdumps04" border="0" alt="configdumps04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7838.configdumps04_5F00_thumb_5F00_610DC6B5.jpg" width="232" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;La configuración predeterminada con la que me encuentro en windows 7:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Grabar un evento en el registro del sistema &lt;/li&gt;    &lt;li&gt;Reiniciar automáticamente &lt;/li&gt;    &lt;li&gt;Un Volcado de memoria del kernel &lt;/li&gt;    &lt;li&gt;La ruta del volcado es: &lt;strong&gt;&lt;em&gt;%SYSTEMROOT%\MEMORY.DMP&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Sobrescribir cualquier archivo existente &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Los volcados, son tres –aunque en la imagen de win7 sólo hay dos-:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Volcado de memoria del kernel &lt;/li&gt;    &lt;li&gt;Volcado de memoria completo &lt;/li&gt;    &lt;li&gt;Volcado de memoria pequeño (128KB) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;¿Sus diferencias?&lt;/p&gt;  &lt;p&gt;El tamaño del archivo final es concluyente.&lt;/p&gt;  &lt;p&gt;1) Sólo contiene páginas de memoria presentes lectura/escritura en modo kernel y en la memoria física, todo ello en el momento del cuelgue. Por su tipo y debido a que sólo el código en modo kernel puede causar cuelgues, parece el más indicado, aunque habrá ocasiones que necesitaremos depurar los procesos de usuario.&lt;/p&gt;  &lt;p&gt;2) Lo que contiene la memoria física en el momento del cuelgue.&lt;/p&gt;  &lt;p&gt;3) Con un tamaño entre 128KB y 1MB, denominado mini-Dump también, contiene el código de stop y sus parámetros, la lista de controladores de dispositivo cargados, las estructuras de datos que describen el proceso actual y el hilo, la pila del kernel para el hilo que ha causado el cuelgue y aquélla porción de memoria considerada relevante para el caso, de forma heurística.&lt;/p&gt;  &lt;p&gt;Yo lo dejo de forma que no reinicie automáticamente, así puedo leer los datos de la pantalla azul mientras se realiza el volcado, y el volcado del kernel (el minidump siempre lo hace).&lt;/p&gt;  &lt;p&gt;Después de la pantalla que hemos visto en la primera imagen, desde el interfaz de Windows se nos informa que el sistema se ha recuperado de un error grave, ofreciéndonos algunas opciones (esto sería para un análisis online).&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2148.infobsod2008_5F00_7E16757D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="infobsod2008" border="0" alt="infobsod2008" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8422.infobsod2008_5F00_thumb_5F00_66ED8BB0.jpg" width="334" height="214" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1007.infobsod20082_5F00_6AFA6A33.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="infobsod20082" border="0" alt="infobsod20082" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5775.infobsod20082_5F00_thumb_5F00_40ADC309.jpg" width="426" height="218" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ok. Tenemos los dumps. Pues ya veremos si hacemos algo con ellos. También podemos forzar un dump manualmente &lt;a href="http://support.microsoft.com/kb/244139/"&gt;vía teclado&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Y, ¿podemos realizar dumps si es una aplicación o servicio (no se cae el sistema) el del Hang?&lt;/p&gt;  &lt;p&gt;Sí por supuesto.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Usando &lt;a href="http://www.debuginfo.com/articles/ntsdwatson.html"&gt;NTSD&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Con &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=E089CA41-6A87-40C8-BF69-28AC08570B7E&amp;amp;displaylang=en"&gt;Userdump.exe&lt;/a&gt;, &lt;a href="http://support.microsoft.com/kb/241215/es"&gt;Cómo&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Adjuntando y guardando el dump de forma interactiva &lt;a href="http://support.citrix.com/article/CTX108173"&gt;via NTDS&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Adjuntando y guardando el dump de forma interactiva &lt;a href="http://support.citrix.com/article/CTX106566"&gt;via WinDbg&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Usando &lt;a href="http://support.microsoft.com/kb/286350/es"&gt;ADPlus&lt;/a&gt; en modo Hang. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;También necesitaremos los símbolos del sistema a analizar para usarlos con algún depurador.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1728173" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>La pantalla azul de la muerte BSOD</title><link>http://msmvps.com/blogs/juansa/archive/2009/09/27/la-pantalla-azul-de-la-muerte-bsod.aspx</link><pubDate>Sun, 27 Sep 2009 09:14:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1727528</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1727528</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/09/27/la-pantalla-azul-de-la-muerte-bsod.aspx#comments</comments><description>&lt;p&gt;El azul es mi color favorito, no sé si es por ser acuario. Tengo el mar a mi lado, tenemos un cielo azul la mayor parte del año, etc…&lt;/p&gt;  &lt;p&gt;Eso sí, cuando lo veo mostrado por Windows se transforma! :-)))&lt;/p&gt;  &lt;p&gt;Está claro que ese bonito color azul no es más ni menos que una &lt;strong&gt;&lt;em&gt;BSOD (&lt;/em&gt;&lt;/strong&gt;Blue Screen Of Death), la pantalla azul de la muerte.&lt;/p&gt;  &lt;p&gt;Una de las primeras cosas que se me vienen a la cabeza es, simplemente, que el equipo ha petado. Y ya en lo de petar, una de las primeras confusiones al respecto es la diferencia entre petar y petar. ¿Ha petado porque ha petado? o ¿Simplemente ha petado? :-) &lt;/p&gt;  &lt;p&gt;Me explico: En inglés hablan de Crash y de Hang, que a veces van relacionados, es decir, que a veces un Hang es una consecuencia directa de un Crash. Yo siempre digo que ha petado o ha petado, pero parece que no es lo mismo, me explico.&lt;/p&gt;  &lt;p&gt;Petar (&lt;strong&gt;Crash&lt;/strong&gt;): La cpu no puede llevar a cabo su trabajo por una instrucción (cálculo, lectura/escritura) incorrecta. En cuanto sucede esto, Windows es tan listo que inicia una recogida de datos y los guarda para analizarlos. Si el pete es del propio sistema operativo, además, nos regala con una pantalla azul llena de garabatos y la información de la memoria del kernel o de la totalidad de la memoria física(dependerá de la configuración) la guardará en un archivo denominado &lt;em&gt;&lt;strong&gt;DUMP&lt;/strong&gt;&lt;/em&gt;, un archivo de volcado de memoria. Si el pete ha sido de una aplicación o servicio el dump será de la memoria de usuario. Este último lo llaman muchas veces el archivo de volcado de memoria post-mortem y que podemos enviar a un depurador post-mortem, que aunque pueden ser varios los depuradores se ejecutará el especificado en el registro.&lt;/p&gt;  &lt;p&gt;Petar (&lt;strong&gt;Hang&lt;/strong&gt;): Este también podemos analizarlo con un dump. La primera diferencia es que se manifiestan de forma diferente (¿petar&amp;lt;&amp;gt;petar? Me pierdo.) &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Veamos como peta (Crash) una aplicación (proceso):&lt;/u&gt; plas! peta y desaparece de la lista de procesos en ejecución; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;¿y como peta (Hang)?&lt;/u&gt;&lt;/em&gt; Pues se queda ahí, como embobado, esperando no se sabe a qué, COLGADO vamos…&lt;/p&gt;  &lt;p&gt;Los cuelgues de aplicaciones o sistema se producen por ciertos fenómenos de mala entrega de mensajes. Las aplicaciones, o componentes del propio sistema se relacionan entre sí por ese medio, se mandan mensajitos. Y claro, esperan respuesta, y aquí está el quid de la cuestión, que se quedan esperando, esperando, esperando…&lt;/p&gt;  &lt;p&gt;Y no hay nada más colgado que dos aplicaciones en ejecución que se esperan una a otra.&lt;/p&gt;  &lt;p&gt;El &lt;strong&gt;&lt;em&gt;dilema de Windows&lt;/em&gt;&lt;/strong&gt;: ¿Qué hacer ante una excepción ilegal? Alguien está intentando hacer algo que se supone que no debería hacer y para más inri dispone de privilegios de acceso elevados. ¿Entonces? ¿Por qué acaba colgándose? ¿No podría ignorar dicha excepción y permitir al controlador o subsistema seguir como si no hubiera pasado nada? De hecho podría hacerlo y pensar que el error es aislado y el componente, de alguna manera, podrá recuperarse. Pero, lo más probable es que acabe con problemas mayores y es un riesgo muy alto.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;La pantalla azul&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms801645.aspx"&gt;KeBugCheckEx&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;, documentada en el WDK (&lt;a href="http://www.microsoft.com/whdc/devtools/wdk/default.mspx"&gt;Windows Driver Kit&lt;/a&gt;), es la encargada de dar el pantallazo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8664.bsod_5F00_089B8EDA.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="bsod" border="0" alt="bsod" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0654.bsod_5F00_thumb_5F00_02E305E5.jpg" width="450" height="343" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;KeBugCheckEx&lt;/em&gt; muestra en pantalla los garabatos que nos servirán para ir investigando. El código de stop y tras la palabra STOP muestra el código numérico y 4 parámetros.&lt;/p&gt;  &lt;p&gt;En la imagen(provocada por cierto), el código que se muestra es: &lt;strong&gt;DRIVER_IRQL_NOT_LESS_OR_EQUAL&lt;/strong&gt;, el equivalente al código numérico detrás del &lt;strong&gt;STOP: 0x000000D1&lt;/strong&gt;. Cuando un parámetro contiene una dirección al código de parte del sistema operativo o controlador de dispositivo, Windows muestra la dirección base del módulo donde se presume el fallo, la fecha y el nombre del controlador. Con esta sola información ya podríamos localizar el componente que está fallando.&lt;/p&gt;  &lt;p&gt;Aunque hay más de 300 códigos de stop, la mayoría no se suelen ver. No demasiados representan la mayoría de los cuelgues de Windows. El significado de los cuatro parámetros adicionales dependerá del código de stop (que no se dan en todos). Aún así con el código de stop y los parámetros (si los muestra) pueden, al menos, darnos la posibilidad de diagnosticar el componente que está fallando ( o el controlador de dispositivo que causa el cuelgue).&lt;/p&gt;  &lt;p&gt;Podemos encontrar la información de los errores de stop en el archivo de ayuda de las herramientas de depuración para Windows, sección Bug Checks (Blue Screens) o, basándonos en el código del error o en el nombre del hardware o aplicación sospechosa, buscarla en la Knowledge Base. Siempre podemos encontrar información sobre alternativas, actualizaciones, services pack que arreglen el problema que se está padeciendo. El archivo Bugcodes.h del WDK contiene una lista completa de los aproximadamente 300 códigos de error de stop con detalles y razones adicionales en algunos casos.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1727528" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Los contadores de rendimiento: Procesador</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/24/los-contadores-de-rendimiento-procesador.aspx</link><pubDate>Mon, 24 Aug 2009 09:37:07 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1717837</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1717837</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/24/los-contadores-de-rendimiento-procesador.aspx#comments</comments><description>&lt;p&gt;&lt;u&gt;Procesador&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Processor(_Total)\% Processor Time Counter (&lt;/strong&gt;\Procesador(*)\% de tiempo de procesador&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="662"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Intervalo (% Ocupado)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Media de uso global del procesador en el intervalo. Cada intervalo en el que el procesador no ejecuta el hilo IDLE se supone que está ocupado por alguna carga de trabajo real.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Se toma una muestra del estado del procesador una vez cada periodo del intervalo por una función de medida del sistema. El contador % de tiempo de procesador se computa desde un ratio de muestras comparadas entre su ejecución e IDLE.          &lt;br /&gt;&lt;em&gt;(100% – ((Muestras – Idle) / Muestras * 100)&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador del uso global del procesador.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador para determinar si el procesador es un cuello de botella.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Tendencia y previsión del uso del procesador.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Periodos sostenidos de uso del 100% pueden significar un proceso fuera de control.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;80/90%&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;&lt;strong&gt;Processor(_Total)\% Privileged Time&lt;/strong&gt;&lt;/em&gt; (&lt;/strong&gt;\Procesador(*)\% de tiempo privilegiado&lt;strong&gt;)              &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;Processor(_Total)\% User Time&lt;/em&gt; (&lt;/strong&gt;\Procesador(*)\% de tiempo de usuario&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;             &lt;br /&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;&lt;strong&gt;Processor(n)\% Processor Time&lt;/strong&gt;&lt;/em&gt; (&lt;/strong&gt;\Procesador(*)\% de tiempo de procesador&lt;strong&gt;)                &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;&lt;strong&gt;&lt;em&gt;Process(n)\% Processor Time&lt;/em&gt; (&lt;/strong&gt;\Proceso(*)\% de tiempo de procesador&lt;strong&gt;)                  &lt;br /&gt;Thread(n/Index#)\% Processor Time (&lt;/strong&gt;\Subproceso(*)\% de tiempo de procesador&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt; &lt;em&gt;&lt;strong&gt;System\Processor Queue Lenght Counter (&lt;/strong&gt;\Sistema\Longitud de la cola del procesador&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="662"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Instantáneo&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Número de subprocesos que se han observado como retrasados en la cola del procesador y que esperan para su programación de ejecución. Se ordenan por prioridad, la mayor prioridad se programa para ejecutarse en cuanto el procesador entra en el subproceso IDLE.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Se toma una muestra cada periodo de tiempo de un intervalo. La muestra informa el valor último visto en la medida, obtenido por la función de medida del procesador que se ejecuta periódicamente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Muchos procesos de programas están dormidos en estados voluntarios de espera. El subconjunto de subprocesos activos establece un límite superior práctico de la longitud de la cola del procesador que puede observarse.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador secundario para determinar si el procesador es un cuello de botella.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Una indicación de la limitación de la capacidad del procesador por causa de excesivos retrasos de aplicaciones.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;Longitud mayor de 5.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;em&gt;&lt;em&gt;&lt;strong&gt;Thread(parent-process\Index#)\Thread State (&lt;/strong&gt;\Subproceso(*)\Estado de subproceso&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt; &lt;/em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1717837" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Los contadores de rendimiento: el sistema</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/18/los-contadores-de-rendimiento-el-sistema.aspx</link><pubDate>Tue, 18 Aug 2009 08:56:24 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1716429</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1716429</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/18/los-contadores-de-rendimiento-el-sistema.aspx#comments</comments><description>&lt;p&gt;Los contadores disponibles en un equipo que ejecuta Windows Server 2003 son diversos y son utilizados para informar sobre el sistema, las aplicaciones y el rendimiento. &lt;/p&gt;  &lt;p&gt;** Hay que tener en cuenta el idioma del sistema operativo. Yo suelo usarlo en inglés y le aplico el MUI en español para los usuarios que no se encuentran cómodos con este idioma. Lo digo por los nombres de contador, intentaremos poner el nombre usado en ambos idiomas pero prima siempre el original en inglés.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Disponibilidad del Sistema&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;System\System Up Time (&lt;/strong&gt;\Sistema\Tiempo de actividad del sistema&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="662"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Tiempo transcurrido&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Nos muestra el tiempo, en segundos, que el equipo lleva activo desde el último inicio/reinicio.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Sus valores son acumulados hasta que se reinicia el sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Indicador primario de la disponibilidad del sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;Informa de la disponibilidad del sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="499"&gt;&lt;em&gt;&lt;strong&gt;Process(n)\Elapsed Time (&lt;/strong&gt;\Proceso(*)\Tiempo transcurrido&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Process(n)\Elapsed Time (&lt;/strong&gt;\Proceso(*)\Tiempo transcurrido&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="664"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Tipo de contador:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Tiempo transcurrido&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Descripción:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Nos muestra el tiempo, en segundos, que el proceso lleva activo desde el último inicio/reinicio.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medición:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;La instancia de proceso sólo existe durante un intervalo en el cual se encontró al proceso en ejecución al final del intervalo. Los valores son acumulados a través de intervalos medidos mientras el proceso se está ejecutando.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Uso:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Indicador primario de la disponibilidad de la aplicación. En el caso de servicios del sistema, comparándolo con &lt;em&gt;&lt;strong&gt;System\System Up Time (&lt;/strong&gt;\Sistema\Tiempo de actividad del sistema&lt;strong&gt;) &lt;/strong&gt;&lt;/em&gt;nos servirá para determinar si la aplicación ha estado disponible continuamente desde que el equipo se inició/reinició.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Rendimiento:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Programación:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Que hace:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;Informa de la disponibilidad del sistema.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Alerta de umbral:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&lt;em&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="155"&gt;&lt;em&gt;Medidas relacionadas:&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="501"&gt;&lt;em&gt;&lt;strong&gt;System\System Up Time (&lt;/strong&gt;\Sistema\Tiempo de actividad del sistema&lt;strong&gt;)&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Otras posibles mediciones que nos sirvan para ver la disponibilidad del sistema pueden ser los contadores: &lt;em&gt;&lt;strong&gt;TCP\Connections Active (&lt;/strong&gt;&lt;/em&gt;\TCPv4\Conexiones activas&lt;em&gt;&lt;strong&gt;)&lt;/strong&gt; y &lt;strong&gt;Server\Server Sessions (&lt;/strong&gt;&lt;/em&gt;\Servidor\Sesiones del servidor&lt;strong&gt;&lt;em&gt;)&lt;/em&gt;&lt;/strong&gt;, que indican el estado de la conectividad de red. Un sistema que está en ejecución y no puede comunicarse con otros equipos es más que probable que esté inutilizable. En caso de hosting web, habría que separar los contadores de &lt;strong&gt;&lt;em&gt;FTP Service\FTP Service Uptime () &lt;/em&gt;&lt;/strong&gt;y &lt;strong&gt;&lt;em&gt;Web Service\Service Uptime ()&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1716429" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Configurar archivos seguimiento con Logman</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/14/configurar-archivos-seguimiento-con-logman.aspx</link><pubDate>Fri, 14 Aug 2009 09:33:55 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1715600</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1715600</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/14/configurar-archivos-seguimiento-con-logman.aspx#comments</comments><description>&lt;p&gt;También podemos usar Logman para generar los archivos de seguimiento de sucesos.&lt;/p&gt;  &lt;p&gt;Sintaxis:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="992"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="208"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Comando de logman&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="776"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Qué hace&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;&lt;em&gt;create trace &amp;lt;nombre&amp;gt;&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Crea una colección de consultas o de registro de contador o de sesión de seguimiento.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;update &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Actualiza una colección existente modificando los parámetros.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;delete &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Elimina una colección existente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;query &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Lista las colecciones definidas y su estado sin el &amp;lt;nombre&amp;gt; con él mostrará las propiedades de la colección especificada. Si es en equipos remotos añadiremos la opción –&lt;strong&gt;&lt;em&gt;s&lt;/em&gt;&lt;/strong&gt;.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;query providers &amp;lt;proveedor&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Mostrará en pantalla una lista de los parámetros que pueden establecerse para el proveedor especificado, sus valores y descripciones de lo que habilitan. Esto depende del proveedor.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;start &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Inicia una sesión manualmente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="208"&gt;stop &amp;lt;nombre&amp;gt;&lt;/td&gt;        &lt;td valign="top" width="776"&gt;Detiene una sesión manualmente.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Las colecciones creadas con Logman tienen las mismas propiedades de configuración que las creadas con el elemento de Alertas y registros de rendimiento, y desde el podemos ver cualquier colección que hayamos creado con Logman. Asimismo, si usamos el parámetro –&lt;strong&gt;query&lt;/strong&gt; con Logman para ver una lista de colecciones en el equipo, también veremos los creados desde Alertas y registros de rendimiento.&lt;/p&gt;  &lt;p&gt;El conmutador –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt; se usa para establecer una sesión de seguimiento de sucesos interactiva. Sin él, Logman asume que la colección es programada. Cuando usamos –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt;, Logman no verá ninguna configuración de sesión previamente guardada. Los parámetros se le pasan directamente a la sesión sin guardarse o programarse. Con el conmutador –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt; podemos crear múltiples sesiones de seguimiento de sucesos por ventana de consola.&lt;/p&gt;  &lt;p&gt;Un ejemplo de secuencia de comandos:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;logman create trace &amp;quot;&lt;/strong&gt;miseguimiento&amp;quot; –&lt;strong&gt;pf &lt;/strong&gt;&lt;/em&gt;deIIS.txt –&lt;strong&gt;&lt;em&gt;bs&lt;/em&gt;&lt;/strong&gt; 64 –&lt;strong&gt;&lt;em&gt;o&lt;/em&gt;&lt;/strong&gt; miseguimiento.etl     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman start &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot; &lt;strong&gt;&lt;em&gt;–ets&lt;/em&gt;&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman stop &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot; –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La sesión iniciada con el segundo comando NO es la única creada por el primero. El segundo comando iniciará la sesión &lt;em&gt;miseguimiento&lt;/em&gt; con la configuración predeterminada ya que se ha especificado –&lt;strong&gt;ets&lt;/strong&gt; sin otros argumentos. Sin embargo, este mismo comando no borrara la configuración guardada por el primer comando.&lt;/p&gt;  &lt;p&gt;Por contra, si no se especifica –&lt;strong&gt;ets&lt;/strong&gt;:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;logman create trace &amp;quot;&lt;/strong&gt;miseguimiento&amp;quot; –&lt;strong&gt;pf &lt;/strong&gt;&lt;/em&gt;deIIS.txt –&lt;strong&gt;&lt;em&gt;bs&lt;/em&gt;&lt;/strong&gt; 64 –&lt;strong&gt;&lt;em&gt;o&lt;/em&gt;&lt;/strong&gt; miseguimiento.etl     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman start &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot;     &lt;br /&gt;&lt;strong&gt;&lt;em&gt;logman stop &amp;quot;&lt;/em&gt;&lt;/strong&gt;miseguimiento&amp;quot;&lt;/p&gt;  &lt;p&gt;El segundo y tercer comando recuperan la configuración de la sesión guardada, inician y paran la sesión. Si observamos la secuencia ésta es como una sesión interactiva pero sin –&lt;strong&gt;&lt;em&gt;ets&lt;/em&gt;&lt;/strong&gt;, los comandos pasan por el servicio de programación, incluido su inicio/detención.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Proveedores&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;El subcomando –&lt;strong&gt;&lt;em&gt;query providers&lt;/em&gt;&lt;/strong&gt; nos permite determinar desde qué proveedores de seguimiento podemos reunir datos de seguimiento.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3247.logmanqueryproviders_5F00_5E020DAD.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="logmanqueryproviders" border="0" alt="logmanqueryproviders" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/4721.logmanqueryproviders_5F00_thumb_5F00_73A6890E.jpg" width="377" height="255" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;*Por supuesto si la aplicación o servicio asociado al proveedor no está activa en el equipo, el proveedor no está habilitado para recoger los sucesos correspondientes.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Algunos proveedores disponen de opciones adicionales que podemos seleccionar entre los sucesos que estos proveedores pueden seguir.&lt;/p&gt;  &lt;p&gt;Parámetros de Logman para el seguimiento:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="904"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="145"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Parámetro&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="249"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Sintaxis&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="222"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Función&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="276"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Observaciones&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Activar proveedor(es) de seguimiento&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-p {GUID} [(flags[,flags…])] Level |&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Proveedores a utilizar en la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Con –&lt;em&gt;&lt;strong&gt;pf &lt;/strong&gt;archivo&lt;/em&gt; para usar los de un archivo de configuración.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Tamaño búfer&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-bf valor&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Tamaño en KB del búfer de la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;En caso de ocurrir sucesos más rápido que su guardado en disco y para evitar su pérdida, un tamaño grande de búfer será de gran ayuda.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Número de búferes&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;nb min max&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Cantidad mínima/máxima de búferes para la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;El mínimo predeterminado es el número de procesadores más 2 y como máximo 25.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Establecer opciones de modo de seguimiento&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-mode [modo[modo…]]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;El modo puede ser &lt;em&gt;globalsequence, localsequence o pagedmemory.&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="276"&gt;La opción &lt;em&gt;pagedmemory&lt;/em&gt; utiliza búferes de memoria paginable.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Resolución del reloj&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ct {system | perf | ciclo}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;perf y ciclo usan 100 ns de temporizador contra un ms del reloj del sistema.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&lt;em&gt;ciclo&lt;/em&gt; usa menos tiempo de proceso.           &lt;br /&gt;&lt;em&gt;perf&lt;/em&gt; proporciona una resolución de temporizador más exacto.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Creación e inicio de sesión de seguimiento&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ets&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Iniciar una sesión usando los parámetros definidos en el símbolo del sistema para esta sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Equipo&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-s Equipo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Especifica el equipo del que se quieren recoger los contadores.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Si no se especifica se toma el equipo local.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Sesión en tiempo real&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-rt&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Muestra en pantalla los datos en tiempo real. No los guarda en ningún archivo.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Seguimiento en modo usuario&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ul&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;El seguimiento se realiza en modo usuario.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;En este modo, un proveedor puede habilitarse para la sesión de seguimiento de sucesos.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Nombre archivo de salida&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-o {Ruta |&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Se especifica el archivo de salida, si no existe, se crea.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Es obligatorio. Los archivos son en formato binario con la extensión *.etl.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Nombrado archivos&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;- v {NNNNNN | MMDDHHMM}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Genera archivos con nombres únicos sea numerándolos consecutivamente o añadiendo la hora y la fecha al nombre.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Vaciado de búferes&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-ft [[HH]:MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Los búferes se vacían después del tiempo especificado.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Límite tamaño archivo&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-max valor&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Tamaño máximo del archivo o BD en MB.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;El registro finaliza al alcanzar el tamaño.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;LoggerName&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;ln LoggerName&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Un nombre definido de usuario para la sesión.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Predeterminadamente este nombre es el de la colección.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Añadir&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-a&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Añade los datos de salida a un archivo existente.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Comienzo sesión&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-b M/D/YYYY H:MM:SS [{AM | PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Inicia la sesión en la fecha y hora designada.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Fin de sesión&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-e M/D/YYYY H:MM:SS [{AM | PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Finaliza la sesión en la fecha y hora designada.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Con –&lt;strong&gt;r&lt;/strong&gt; se establece la duración de sesión.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;duración&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-rf [[HH:]MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Finaliza la sesión pasado el tiempo especificado.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;Con –&lt;strong&gt;e &lt;/strong&gt;se establece la fecha y hora de finalización.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Repetir&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-r&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Repetición cada día a la misma hora. El periodo de tiempo se basa en alguna de las opciones –&lt;strong&gt;b &lt;/strong&gt;con –&lt;strong&gt;rf&lt;/strong&gt;, o –&lt;strong&gt;b &lt;/strong&gt;con –&lt;strong&gt;e&lt;/strong&gt;.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;uso conjuntamente con las opciones –&lt;strong&gt;cnf&lt;/strong&gt;, –&lt;strong&gt;v&lt;/strong&gt; y –&lt;strong&gt;rc&lt;/strong&gt;.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Inicio y detención de colección&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-m [start] [stop]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Inicio y detención de la sesión interactiva manualmente.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="145"&gt;Usuario y contraseña&lt;/td&gt;        &lt;td valign="top" width="249"&gt;&lt;em&gt;-u usuario contraseña&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="222"&gt;Se especifica usuario y contraseña para acceso a equipo remoto.&lt;/td&gt;        &lt;td valign="top" width="276"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;u&gt;Marcas de hora de suceso&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Si las entradas de sucesos aparecen como fuera de hora, podemos necesitar usar un reloj de alta resolución. Algunas veces, si usamos la hora del sistema como reloj, la resolución (10ms) puede no ajustarse lo suficiente para ciertas secuencias de sucesos. Cuando un conjunto de sucesos muestran el mismo valor de marca de hora, el orden en que aparecen en el visor de sucesos no garantiza que sea en el mismo orden en que sucedieron. Si observamos que algo de esto está pasando, usaremos &lt;em&gt;perf&lt;/em&gt; –que tiene una resolución más ajustada (100ns). Con Logman, el parámetro –&lt;strong&gt;&lt;em&gt;ct perf&lt;/em&gt;&lt;/strong&gt; obliga al uso del reloj &lt;em&gt;perf&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Comprobación del límite de tamaño del archivo.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Si especificamos un límite de tamaño de archivo con la opción –&lt;em&gt;max&lt;/em&gt;, el sistema de archivos en el que queremos crear el archivo de seguimiento lo evalúa antes de iniciar la sesión para ver si existe el espacio suficiente para ejecutar adecuadamente el seguimiento. Este límite de tamaño sólo se lleva a cabo cuando el archivo se almacena en la unidad del sistema. Si éste tuviera espacio insuficiente, la sesión fallará, apareciendo un error genérico de &lt;strong&gt;smlogsvc&lt;/strong&gt; en el visor de sucesos.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Informes del seguimiento de sucesos.&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Con Tracerpt.exe podemos convertir uno o más archivos *.etl al formato *.csv y ver su contenido.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;tracerpt&lt;/strong&gt; archivo.etl &lt;strong&gt;–o&lt;/strong&gt; archivo.csv&lt;/p&gt;  &lt;p&gt;Estos archivos podemos abrirlos con Excel y ver, secuencialmente, lo grabado.&lt;/p&gt;  &lt;p&gt;Si se usa la opción –&lt;strong&gt;&lt;em&gt;report&lt;/em&gt;&lt;/strong&gt; con alguno de los proveedores, windows kernel trace, IIS, spooler o AD, se generan tablas adicionales en el informe que contienen los datos relacionados con un pre-formato. Por ejemplo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;tracerpt&lt;/em&gt;&lt;/strong&gt; archivo.etc archivo2.etl &lt;strong&gt;&lt;em&gt;–report&lt;/em&gt;&lt;/strong&gt; archivo.html &lt;em&gt;&lt;strong&gt;–f&lt;/strong&gt;&lt;/em&gt; html&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1715600" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item><item><title>Investigación de eventos</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/11/investigaci-243-n-de-eventos.aspx</link><pubDate>Tue, 11 Aug 2009 09:22:23 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1714862</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1714862</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/11/investigaci-243-n-de-eventos.aspx#comments</comments><description>&lt;p&gt;En Windows disponemos de la posibilidad de seguimiento de eventos ETW (Event Tracing for Windows). Este seguimiento puede terminar en un informe relacionado a los eventos de rendimiento cuando estos ocurren, eventos como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Cambios de contexto &lt;/li&gt;    &lt;li&gt;Errores de página &lt;/li&gt;    &lt;li&gt;Solicitudes E/S de archivo &lt;/li&gt;    &lt;li&gt;Creación y finalización de procesos &lt;/li&gt;    &lt;li&gt;Creación y finalización de hilos &lt;/li&gt;    &lt;li&gt;Solicitudes de conexión, envíos y recepciones TCP. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Además, aplicaciones como IIS o el propio Directorio Activo también están preparados para ofrecernos un diagnóstico sobre el seguimiento de eventos. En IIS por ejemplo, el controlador HTTP, Inetinfo, filtro ISAPI, peticiones CGI e incluso peticiones ASP, que proporcionan eventos de inicio y fin de solicitudes específicas nos permiten seguir el camino seguido por una solicitud GET HTTP individual en diferentes etapas de su proceso por entre dichos componentes.&lt;/p&gt;  &lt;p&gt;Seguimiento de eventos no sólo graba cuando ocurren los eventos, sino que también captura información especifica que puede usarse para identificar el propio evento y la aplicación que lo causa. Los eventos se registran en un archivo que podemos consultar. El seguimiento de eventos es una técnica que la podemos utilizar para diagnosticar problemas de rendimiento que no nos son fáciles de resolver mediante otras herramientas ya vistas.&lt;/p&gt;  &lt;p&gt;Como gran beneficio tenemos a su gran precisión. Podemos saber exactamente que ha pasado y cuando. Aunque en su contra hay inconvenientes que debemos conocer. Uno de los&amp;#160; inconvenientes es la posibilidad de que se generen cantidades de datos muy grandes y que complican su propio análisis. Otro es que un análisis manual resulta complejo, aunque Windows Server 2003 incluye una herramienta llamada &lt;strong&gt;&lt;em&gt;tracerpt.exe&lt;/em&gt;&lt;/strong&gt; que simplifica la cosa. Si deseamos conocer un contador solamente de entre muchos eventos, lo normal sería usar el monitor del sistema, si por el contrario, necesitamos entender con detalle la secuencia de eventos asociados a un problema de rendimiento, entonces usar &lt;em&gt;Seguimiento de eventos&lt;/em&gt;, que nos proporcionará una extensa variedad de eventos de sistema y aplicaciones.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8831.TRACERPT_5F00_12E76873.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="TRACERPT" border="0" alt="TRACERPT" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6378.TRACERPT_5F00_thumb_5F00_3156CABE.jpg" width="248" height="319" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Investigar datos en Windows Server 2003 se compone de recoger y reunirlos usando sesiones de registro que los graben en un archivo. Podemos crear y administrar las sesiones de seguimiento con Log manager. Contamos además con los registros de seguimiento facilitados por &lt;strong&gt;Alertas y registros de rendimiento&lt;/strong&gt; en la consola de &lt;strong&gt;&lt;em&gt;Rendimiento&lt;/em&gt;&lt;/strong&gt; que nos ofrece ciertas facilidades interactivas para definir sesiones de seguimiento de eventos, iniciarlas o detenerlas. Aunque estas facilidades interactivas no sean más que un subconjunto de opciones de definición de seguimiento de las que dispone Logman. Logman tiene además la ventaja que puede usarse junto a scripts para automatizar todos los aspectos del registro de seguimiento de eventos. Tracerpt.exe formatea los datos y proporciona varios informes integrados.&lt;/p&gt;  &lt;p&gt;En una sesión de seguimiento, nos comunicamos con los proveedores de datos de seguimiento seleccionados que son los responsables de informar siempre que ocurran los eventos. Cuando un evento ocurre, el proveedor devuelve información sobre el mismo evento a la sesión de seguimiento, normalmente el servicio de Alertas y registros de rendimiento y éste a su vez graba una entrada en el archivo de registro.&lt;/p&gt;  &lt;p&gt;Los registros de seguimiento se guardan en formato binario y con la extensión *.etl. Podemos usar archivos de seguimiento circular o secuencial. Y como con los registros de contadores podemos establecer su límite de tamaño. Cuando un archivo circular alcanza el límite establecido el registro de eventos sigue, desde el inicio del archivo y reemplazando los datos antiguos, en uno secuencial la sesión de seguimiento finaliza.&lt;/p&gt;  &lt;p&gt;Luego, para ver los archivos de una forma aceptable necesitamos una herramienta de análisis como Tracerpt.exe que procesa el archivo de registro de salida y transforma los datos binarios en CSV (separado por comas). Disponemos también de informes usando la opción –&lt;strong&gt;&lt;em&gt;report&lt;/em&gt;&lt;/strong&gt; de tracerpt.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Alertas y registros de rendimiento&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Cuando abrimos el monitor de rendimiento observamos en el árbol del panel izquierdo la función de Alertas y registros de rendimiento y de ella cuelgan tres componentes: &lt;em&gt;registros de contador, registros de seguimiento y alertas.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1565.registroseguimiento01_5F00_17F15835.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento01" border="0" alt="registroseguimiento01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8015.registroseguimiento01_5F00_thumb_5F00_30175341.jpg" width="403" height="312" /&gt;&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Podemos crear registros de seguimiento desde aquí cuando queramos, con capacidades similares a las que hay disponibles para los registros de contador, como:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Administrar múltiples sesiones de registro de seguimiento desde una única consola(Aunque podemos tener definidas muchísimas más sesiones, hay un límite de 32 activas simultáneamente). &lt;/li&gt;    &lt;li&gt;Iniciar y detener manualmente, bajo demanda, automáticamente o programando el horario de cada registro de las sesiones. &lt;/li&gt;    &lt;li&gt;Detener cada registro según el tiempo transcurrido o del tamaño actual del archivo. &lt;/li&gt;    &lt;li&gt;Especificar esquemas de nombrado automático e indicar un programa que se ejecutará cuando un registro de seguimiento se detiene. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;El proceso del servicio de Alertas y registros de rendimiento &lt;strong&gt;&lt;em&gt;Smlogsvc.exe&lt;/em&gt;&lt;/strong&gt; es el responsable de ejecutar las funciones del registro de seguimiento que hayamos definido.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Configurar un registro de rendimiento&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Pulsamos en Registros de seguimiento en la consola (ver imagen anterior), en el panel derecho se nos mostrarán, si las hubiesen, las ya definidas.&amp;#160; &lt;/li&gt;    &lt;li&gt;Clic derecho sobre el panel, el menú contextual nos muestras dos opciones de creación de nuevos registros:      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7357.registroseguimiento02_5F00_7B0D54C1.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento02" border="0" alt="registroseguimiento02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5707.registroseguimiento02_5F00_thumb_5F00_6A2B4182.jpg" width="244" height="183" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Se nos pide un nombre para el registro:      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2146.registroseguimiento03_5F00_3DA4A24D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento03" border="0" alt="registroseguimiento03" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6355.registroseguimiento03_5F00_thumb_5F00_0D112495.jpg" width="244" height="105" /&gt;&lt;/a&gt;       &lt;br /&gt;y se muestra el cuadro de configuración.       &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.registroseguimiento04_5F00_5873590A.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento04" border="0" alt="registroseguimiento04" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2577.registroseguimiento04_5F00_thumb_5F00_608D1610.jpg" width="234" height="244" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Elegiremos entre los eventos del proveedor del sistema o de alguno de los proveedores de aplicación disponibles. Clic en el botón de Estado de proveedores para ver aquéllos proveedores específicos que están instalados en el equipo.      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8816.registroseguimiento08_5F00_04B50151.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento08" border="0" alt="registroseguimiento08" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8400.registroseguimiento08_5F00_thumb_5F00_4102E79D.jpg" width="244" height="217" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Pasaremos por el resto de pestañas: Archivos de registro, Programación y Avanzadas para establecer las diferentes opciones.      &lt;br /&gt;      &lt;table border="0" cellspacing="2" cellpadding="2" width="764"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="154"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0412.registroseguimiento05_5F00_5039506A.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento05" border="0" alt="registroseguimiento05" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2148.registroseguimiento05_5F00_thumb_5F00_3AE0BC64.jpg" width="234" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td valign="top" width="134"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6765.registroseguimiento06_5F00_032E0234.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento06" border="0" alt="registroseguimiento06" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7357.registroseguimiento06_5F00_thumb_5F00_227339B8.jpg" width="234" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;            &lt;td valign="top" width="466"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0508.registroseguimiento07_5F00_5F96F53D.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="registroseguimiento07" border="0" alt="registroseguimiento07" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7345.registroseguimiento07_5F00_thumb_5F00_314290F2.jpg" width="235" height="244" /&gt;&lt;/a&gt; &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Los proveedores de eventos&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Los proveedores de eventos son los responsables del envío de información sobre un evento al servicio de alertas y registro de rendimiento en cuanto ocurre. De forma predeterminada, en la pestaña General, la opción Proveedores que no son de sistema está marcada para mantener el registro de seguimiento por encima de un mínimo. Pulsaremos en el botón Agregar para incluir datos desde estos proveedores en el registro de seguimiento. Entre los proveedores de aplicaciones están Active Directory, MMQ, IIS, y la cola de impresión.&lt;/p&gt;  &lt;p&gt;Si pulsamos en Sucesos registrados por el proveedor del sistema, se usa un proveedor compilado para eventos del kernel de Windows para monitorizar los procesos, hilos y otras actividades. Marcaremos las casillas que deseamos definir para el seguimiento.&lt;/p&gt;  &lt;p&gt;*Creación /eliminación de procesos y/o subprocesos.&lt;/p&gt;  &lt;p&gt;*E/S de disco&lt;/p&gt;  &lt;p&gt;*TCP/IP de red&lt;/p&gt;  &lt;p&gt;*Errores de página&lt;/p&gt;  &lt;p&gt;*Detalles de archivo&lt;/p&gt;  &lt;p&gt;Antes de conectar el seguimiento de una clase de suceso debemos tener claro el impacto sobre el rendimiento que causará. Si queremos hacer una prueba, con el monitor del sistema podemos seguir algunos contadores que usen sucesos que el proveedor del kernel pueda seguir durante varios minutos, comprobaremos entonces el tamaño de los archivos producidos y el sobreuso consumido por el seguimiento, que será proporcional a los sucesos ocurridos.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\Sistema\Operaciones de lectura de archivo/s&lt;/strong&gt; (\System\File Data Operations/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\Sistema\Operaciones de control de archivo/s&lt;/strong&gt; (\System\File Control Operations/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\Memoria\Errores de página/s&lt;/strong&gt; (\Memory\Page faults/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;\TCPv4\Segmentos/s&lt;/strong&gt; (\TCPv4\Segments/sec)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Configuración de las propiedades del registro&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Las hojas de propiedades nos permiten establecer el seguimiento automatizado. Las opciones de archivo y programación son similares a las disponibles para registro de contadores. La pestaña de archivos de registro se usa para seleccionar el tipo de archivo y las opciones de nombrado automático. En la de programación podremos escoger las opciones de inicio manual o automático, establecer la hora en la que queremos que termine la sesión, determinando una hora o especificando una duración en segundos, minutos, horas, o días; o también indicando que se detenga cuando el archivo de registro alcance su tamaño límite especificado.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="1007"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="116"&gt;         &lt;p align="center"&gt;&lt;em&gt;Pestaña&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="374"&gt;         &lt;p align="center"&gt;&lt;em&gt;Configuración&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="507"&gt;         &lt;p align="center"&gt;&lt;em&gt;Notas&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;General&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Selección de proveedores          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Cuenta y contraseña.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;Podemos reunir datos desde el equipo local únicamente. Configura los sucesos del proveedor del sistema.          &lt;br /&gt;          &lt;br /&gt;Podemos usar Ejecutar como (Run As) para proporcionar usuario y contraseña en caso de equipos remotos.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;Archivos de registro&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Tipo de archivo.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Nombrado automático.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;Los archivos de seguimiento son archivos binarios con la extensión *.etl. Podemos seleccionar o binarios circulares –cuando llegan al final comienzan de nuevo por el principio del archivo sobrescribiendo los existentes-, o binarios secuenciales. Configuración de ubicación, nombre y tamaño de archivo.          &lt;br /&gt;          &lt;br /&gt;Podemos elegir una secuencia de números a añadir o la hora y la fecha, para identificar al archivo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;Programación&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Métodos de inicio/detención manual o automáticos.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Horas de inicio/detención automáticos.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Detención automática cuando el archivo alcanza su límite de tamaño.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Proceso cuando el archivo se cierra.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;Podemos especificar que se detenga la recogida de datos cuando el archivo esté lleno.          &lt;br /&gt;          &lt;br /&gt;Inicio y detención según la hora del día, o especificar la hora de inicio y su duración.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;En casos de recogida de datos continua, iniciar un archivo nuevo en cuanto el archivo se cierra. También podemos iniciar automáticamente la ejecución de un comando al cerrarse el archivo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="116"&gt;Avanzada&lt;/td&gt;        &lt;td valign="top" width="374"&gt;Tamaño de búfer.          &lt;br /&gt;          &lt;br /&gt;Búferes mínimos y máximos.           &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Transferencia de datos desde el búfer al archivo de registro.&lt;/td&gt;        &lt;td valign="top" width="507"&gt;         &lt;br /&gt;          &lt;br /&gt;Aumentar el número de búferes en caso de seguimiento de demasiados sucesos.           &lt;br /&gt;          &lt;br /&gt;El tiempo máximo en segundos, que las entradas de seguimiento se mantienen en memoria sin transferirse al archivo de seguimiento en el disco.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1714862" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>¿Cómo obtienen los datos las herramientas de rendimiento?</title><link>http://msmvps.com/blogs/juansa/archive/2009/08/03/191-c-243-mo-obtienen-los-datos-las-herramientas-de-rendimiento.aspx</link><pubDate>Mon, 03 Aug 2009 18:31:54 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1712533</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1712533</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/08/03/191-c-243-mo-obtienen-los-datos-las-herramientas-de-rendimiento.aspx#comments</comments><description>&lt;p&gt;Monitor del sistema, alertas y registros de rendimiento, Logman, Relog y Typeperf, todas sacan información de alguna parte: usando librerías dinámicas como intermediarias, las PDH(Performance Data Helper). Cada una de las herramientas citadas colecta contadores usando el interfaz PDH, luego es responsable ella misma de realizar los cálculos de conversión de los datos de los intervalos de contadores y de formatearlos para generar informes y archivos de salida.&lt;/p&gt;  &lt;p&gt;Las *dll de rendimiento (Perflib) proporcionan los datos para todas las medidas de los contadores en el monitor del sistema. El sistema operativo provee de un conjunto básico de librerías de rendimiento para monitorizar el comportamiento de los recursos, como la memoria, procesador, discos, adaptadores de red y protocolos. Por supuesto hay muchas otras aplicaciones y servicios dentro de Windows Server 2003 que proporcionan sus propias *dll que instalan contadores y que podemos usar para montorizar sus operaciones. Todas estas librerías instaladas en el equipo están registradas en las sub-claves de Performance bajo la clave &lt;em&gt;HKLM\SYSTEM\CurrentControlSet\Services\&lt;/em&gt;&lt;strong&gt;nombre_del_servicio&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7701.perfdelsistema_5F00_72FC068E.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="perfdelsistema" border="0" alt="perfdelsistema" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7384.perfdelsistema_5F00_thumb_5F00_68CA6C21.jpg" width="466" height="172" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5722.perfWEB_5F00_53DB7A5F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="perfWEB" border="0" alt="perfWEB" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3187.perfWEB_5F00_thumb_5F00_5371D81B.jpg" width="473" height="199" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="843"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Library&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Archivo y ruta de la *.dll&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Open&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Punto de entrada para la rutina a llamar cuando se inicie una sesión.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Open Timeout&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;El tiempo que esperará para llamar a la rutina de Open antes de caducar.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Collect&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Punto de entrada para llamar a cualquier intervalo de muestra para recuperar datos del contador.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Collect Timeout&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;El tiempo de espera antes de caducar la llamada a la rutina Collect.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;&lt;strong&gt;Close&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="693"&gt;Punto de entrada para la rutina de cierre a llamar para limpieza antes de terminar.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Estos campos se usan por las rutinas PDH para cargar las *.dll, inicializarlas para su uso en la recogida de datos de rendimiento y cerrarlas cuando la sesión termina.&lt;/p&gt;  &lt;p&gt;Para ahorrar espacio en el registro, las variables REG_MULTI_SZ de texto grandes que componen nombres y texto explicativo de los contadores de rendimiento se guardan en archivos de cadenas de texto fuera del registro. Estos archivos están mapeados dentro del registro, como si fuesen claves normales para usuarios y aplicaciones. Los archivos son:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;%windir%\system32\&lt;/strong&gt;&lt;em&gt;perfc009.dat&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;%windir%\system32\&lt;/strong&gt;&lt;em&gt;perfh009.dat&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Al guardarlos separadamente se indica el ID del lenguaje del país: 09 = inglés, 0A=español,…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/1031.perfFILES_5F00_299163E6.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="perfFILES" border="0" alt="perfFILES" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5734.perfFILES_5F00_thumb_5F00_3B708864.jpg" width="493" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;El proceso de PDH al ser requerido por una aplicación de monitorización de rendimiento sería:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;PDH accede a los archivos perfc00A.dat y perfh00A.dat (si el lenguaje es el español) que contiene el texto que define los objetos de rendimiento y los nombres de los contadores instalados en el equipo, junto con sus textos explicativos asociados. &lt;/li&gt;    &lt;li&gt;PDH realiza inventario de la clave &lt;em&gt;&lt;strong&gt;HKLM\SYSTEM\CurrentControlSet\Services\&lt;/strong&gt;nombre_del_servicio&lt;strong&gt;\&lt;/strong&gt;&lt;/em&gt; para determinar que *.dll de Perflib están disponibles en el equipo. &lt;/li&gt;    &lt;li&gt;Para cada clave hallada, PDH carga la *.dll Perflib. &lt;/li&gt;    &lt;li&gt;Después de la carga de *.dlls, PDH llama a la rutina &lt;strong&gt;Open&lt;/strong&gt;. La rutina devuelve la información que describe los objetos y contadores que la *.dll soporta. La aplicación de monitorización podrá usar esta información para montar un menú de selección de objetos y contadores como el formulario &lt;strong&gt;&lt;em&gt;Añadir contadores&lt;/em&gt;&lt;/strong&gt; del monitor del sistema.      &lt;br /&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0535.agregarcontadores_5F00_31AB20EC.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="agregarcontadores" border="0" alt="agregarcontadores" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/3187.agregarcontadores_5F00_thumb_5F00_515C8B65.jpg" width="244" height="217" /&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;En el primer intervalo de muestra, PDH llama a la rutina &lt;strong&gt;Collects&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;para reunir los contadores de rendimiento, la aplicación puede realizar llamadas PDH adicionales para formatear estos contadores para mostrarlos por pantalla. &lt;/li&gt;    &lt;li&gt;Cuando termina, PDH llama a la rutina &lt;strong&gt;Close&lt;/strong&gt; para todas las Perflibs activas hasta que finalizan su procesamiento con corrección. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;El procesamiento PDH oculta la mayoría de detalles de estos pasos en aplicaciones de monitorización, como el monitor del sistema y Log manager. La herramienta &lt;strong&gt;&lt;em&gt;Extensible Counter List&lt;/em&gt;&lt;/strong&gt; (exctrlst.exe, incluida en las &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6ec50b78-8be1-4e81-b3be-4e7ac4f0912d&amp;amp;DisplayLang=en"&gt;Windows Support Tools de Windows Server 2003&lt;/a&gt;) ilustra el paso 2 del procesamiento. Si la iniciamos desde el símbolo del sistema (escribiendo exctrlst en una cmd) obtenemos:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/5340.exctrlst_5F00_67B230AA.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="exctrlst" border="0" alt="exctrlst" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/0363.exctrlst_5F00_thumb_5F00_38EF08B9.jpg" width="402" height="281" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Es decir, un completo inventario de librerías de rendimiento (DLLS) registradas en el equipo.&lt;/p&gt;  &lt;p&gt;* Si una llamada a una función Perflib falla o devuelve error, las rutinas PDH añaden un campo opcional a la sub-clave &lt;strong&gt;&lt;em&gt;Disable Performance Counters&lt;/em&gt;&lt;/strong&gt;. Se genera un mensaje de error en el registro de eventos si PDH halla un error. Si se establece un marcador en la sub-clave, las rutinas PDH no intentarán cargar, ni recoger datos desde dicha librería hasta que se resuelva el fallo y se eliminen los marcadores mediante la herramienta &lt;strong&gt;&lt;em&gt;Extensible Counter List&lt;/em&gt;&lt;/strong&gt; siempre mejor que editando el registro.&lt;/p&gt;  &lt;p&gt;* Aún así, disponemos de entradas en el registro en &lt;strong&gt;&lt;em&gt;HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib&lt;/em&gt;&lt;/strong&gt; que pueden ayudarnos cuando suframos problemas dentro de las *.dll.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1712533" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Typeperf: Desde el símbolo de comando</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/31/typeperf-desde-el-s-237-mbolo-de-comando.aspx</link><pubDate>Fri, 31 Jul 2009 08:24:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1711315</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1711315</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/31/typeperf-desde-el-s-237-mbolo-de-comando.aspx#comments</comments><description>&lt;p&gt;Una vez conocidos los contadores de rendimiento instalados en el equipo, podemos monitorizar el rendimiento. Para ello, iniciaremos Typeperf seguido de una lista de contadores, por ejemplo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;*El sistema que yo uso es en español.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/8015.typeperf01_5F00_729BE889.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="typeperf01" border="0" alt="typeperf01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2664.typeperf01_5F00_thumb_5F00_4F04DB93.jpg" width="358" height="197" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Typeperf comienza de inmediato la monitorización de los bytes disponibles de memoria y los va mostrando en la ventana en tiempo real; continuará hasta que usemos la secuencia de teclas &lt;strong&gt;CRTL+C&lt;/strong&gt; para finalizar la sesión.&lt;/p&gt;  &lt;p&gt;Si queremos monitorizar más de un contador sólo tenemos que añadirlos entrecomillados siguiendo al anterior,&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot; &amp;quot;Memoria\Bytes de caché&amp;quot; &lt;em&gt;&amp;quot;Memoria\Páginas/s&amp;quot;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="typeperf02" border="0" alt="typeperf02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/2161.typeperf02_5F00_thumb_5F00_00FF0CCF.jpg" width="374" height="198" /&gt;&lt;/p&gt;  &lt;p&gt;Como alternativa, podemos tener las rutas en un archivo y referenciarlo en el comando usando el parámetro –&lt;strong&gt;cf&lt;/strong&gt;, parecido a &lt;strong&gt;Relog&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Si queremos hacerlo a equipos remotos:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;&lt;a&gt;&lt;em&gt;\\Equipo\Memoria\Bytes disponibles&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot;&lt;/em&gt; o, &lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; &lt;strong&gt;–s&lt;/strong&gt; Equipo&lt;/p&gt;  &lt;p&gt;De forma predeterminada las medidas o muestras de los datos de rendimiento son de una vez por segundo hasta que se pulsa &lt;strong&gt;CRTL+C&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Nosotros no podemos hacer que el comando se ejecute durante dos horas y se detenga (al menos desde sus parámetros), pero si podemos especificar el número de muestras o medidas a tomar durante su sesión, alcanzado dicho número se cerrará. Para ello utilizaremos el parámetro –&lt;strong&gt;sc&lt;/strong&gt; seguido del número, por ejemplo si queremos 100 muestras:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; –&lt;strong&gt;sc&lt;/strong&gt; &lt;em&gt;100&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Lo que supone 100 segundos.&lt;/p&gt;  &lt;p&gt;También podemos modificar la frecuencia de muestreo, sabemos que es una por segundo, 86400 en un día. Así que para hacerlo usaremos el parámetro –&lt;strong&gt;si&lt;/strong&gt; seguido del nuevo muestro en &lt;strong&gt;&lt;em&gt;segundos&lt;/em&gt;&lt;/strong&gt;, si lo queremos cada 5 minutos entonces 5*60=300:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; –&lt;strong&gt;si&lt;/strong&gt; &lt;em&gt;300&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Y finalmente un par de cuestiones: dirigir la salida hacia un archivo de registro y/o cambiar el formato del mismo.&lt;/p&gt;  &lt;p&gt;Redirigir la salida puede hacerse, como siempre hemos hecho desde el propio símbolo del sistema:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt; &amp;gt; &lt;em&gt;ruta\nombre_archivo&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;o, y mejorándolo creo, usar el parámetro del comando –&lt;strong&gt;o&lt;/strong&gt; junto al –&lt;strong&gt;f&lt;/strong&gt; y así redirigir y establecer el formato del archivo de salida.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; &amp;quot;Memoria\Bytes disponibles&amp;quot;&lt;/em&gt;&amp;#160;&lt;strong&gt;-o&lt;/strong&gt; &lt;em&gt;ruta\nombre_archivo.&lt;strong&gt;extension&lt;/strong&gt; –&lt;/em&gt;&lt;strong&gt;f &lt;em&gt;tipo_formato&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Donde &lt;strong&gt;extensión&lt;/strong&gt; irá en consonancia(*.csv, *.tsv, *.log) con el &lt;strong&gt;tipo_formato&lt;/strong&gt; (bin, csv, tsv, SQL)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1711315" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Utilizando Typeperf: recogiendo datos</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/29/utilizando-typeperf-recogiendo-datos.aspx</link><pubDate>Wed, 29 Jul 2009 10:33:47 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1710711</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1710711</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/29/utilizando-typeperf-recogiendo-datos.aspx#comments</comments><description>&lt;p&gt;Antes de poder monitorizar el rendimiento en un equipo necesitamos conocer qué contadores se encuentran disponibles en el mismo. Aunque un juego predeterminado de contadores de rendimiento se instala junto al sistema operativo, los contadores actuales en un determinado equipo dependerá de muchas cosas: sistema operativo instalado, ya que cada uno instala un juego distinto de contadores predeterminados; servicios y aplicaciones instaladas, ya que muchas de ellas puede que proporcionen su propio juego de contadores en el momento de instalarlas; si los contadores se han deshabilitado o se han corrompido.&lt;/p&gt;  &lt;p&gt;Recuperar una lista de todos los contadores (sin instancias) disponibles en un equipo es tan sencillo como usar &lt;em&gt;Typeperf&lt;/em&gt; con el parámetro –&lt;strong&gt;q&lt;/strong&gt;.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf –q&amp;#160; NOTA:&lt;/strong&gt; Os recomiendo redirigirlo a un archivo, sea con &lt;strong&gt;Typeperf –q &amp;gt;&lt;/strong&gt; ruta\typeperf.txt &lt;strong&gt;o Typeperf –q –o&lt;/strong&gt;&amp;#160; ruta\typeperf.txt &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;De forma sucesiva, Typeperf muestra en pantalla las rutas de los contadores de rendimiento instalados en el equipo. Extraídas de la ejecución del comando en un Win7:&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="438"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="432"&gt;         &lt;p&gt;\Processor Information(*)\Marcas de estado del procesador            &lt;br /&gt;\Processor Information(*)\% de frecuencia m xima             &lt;br /&gt;\Processor Information(*)\Frecuencia del procesador             &lt;br /&gt;\Processor Information(*)\Estado de detenci¢n             &lt;br /&gt;\Processor Information(*)\% de tiempo en prioridad             &lt;br /&gt;\Processor Information(*)\Transiciones C3/s             &lt;br /&gt;\Processor Information(*)\Transiciones C2/s             &lt;br /&gt;\Processor Information(*)\Transiciones C1/s             &lt;br /&gt;\Processor Information(*)\% de tiempo C3             &lt;br /&gt;\Processor Information(*)\% de tiempo C2             &lt;br /&gt;\Processor Information(*)\% de tiempo C1             &lt;br /&gt;\Processor Information(*)\% de tiempo de inactividad             &lt;br /&gt;\Processor Information(*)\Velocidad de DPC             &lt;br /&gt;\Processor Information(*)\DPC en cola/s             &lt;br /&gt;\Processor Information(*)\% de tiempo de interrupci¢n             &lt;br /&gt;\Processor Information(*)\% de tiempo de DPC             &lt;br /&gt;\Processor Information(*)\Interrupciones/s             &lt;br /&gt;\Processor Information(*)\% de tiempo privilegiado             &lt;br /&gt;\Processor Information(*)\% de tiempo de usuario             &lt;br /&gt;\Processor Information(*)\% de tiempo de procesador&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Si queremos incluir las instancias usaremos el parámetro –&lt;strong&gt;qx&lt;/strong&gt;.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;Typeperf –qx&amp;#160; NOTA: Os recomiendo redirigirlo a un archivo, sea con Typeperf –qx &amp;gt; ruta\typeperf.txt o &lt;strong&gt;Typeperf –qx –o&lt;/strong&gt;&amp;#160; ruta\typeperf.txt &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La lista ya puede ser grande con el –&lt;strong&gt;q&lt;/strong&gt; así que el –&lt;strong&gt;qx&lt;/strong&gt; es mucho mayor, por ello si lo redirigimos a un archivo de texto los tendremos todos.&lt;/p&gt;  &lt;p&gt;También podemos recuperar la lista de contadores desde equipos remotos, para ello usaremos la ruta UNC:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;Typeperf –q &lt;/strong&gt;&lt;a&gt;\\Equiporemoto&lt;/a&gt;&amp;#160; &lt;strong&gt;Typeperf –q &lt;/strong&gt;&lt;a&gt;\\Equiporemoto\Memory&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Typeperf no proporciona ninguna vía de conexión con usuario y contraseña alternativos, pero podemos conectar con el equipo remoto primero usando &lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;net use &lt;/strong&gt;&lt;a&gt;\\Equiporemoto\ipc$&lt;/a&gt; /user:&lt;strong&gt;USUARIO CONTRASEÑA &lt;/strong&gt;y usar el comando en el equipo remoto.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1710711" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Utilizando Typeperf: sintaxis</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/27/utilizando-typeperf-sintaxis.aspx</link><pubDate>Mon, 27 Jul 2009 18:17:13 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1710362</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1710362</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/27/utilizando-typeperf-sintaxis.aspx#comments</comments><description>&lt;p&gt;La herramienta &lt;strong&gt;&lt;em&gt;Typeperf&lt;/em&gt;&lt;/strong&gt; proporciona una alternativa desde la línea de comandos al monitor del sistema. Puede proporcionarnos una lista de valores de contador de rendimiento en ejecución, dándonos un control detallado del rendimiento en tiempo-real. También supone menor sobrecarga que el monitor del sistema, lo que puede ser importante si el equipo que estamos controlando es ya lento o bajo rendimiento.&lt;/p&gt;  &lt;p&gt;Para asistir en la construcción de procedimientos de control automatizados, &lt;strong&gt;Typeperf&lt;/strong&gt; dispone de una manera fácil de recuperar una lista de todos los contadores de rendimiento instalados sobre un determinado equipo.(Aunque es posible ver el conjunto de contadores de rendimiento instalados con el monitor del sistema, no hay forma de revisarlos o de guardar la lista entera.) Con &lt;strong&gt;Typeperf&lt;/strong&gt;, podemos listarlos y guardar la lista en un archivo de texto que puede editarse después para usarse como archivo de configuración con &lt;strong&gt;Logman&lt;/strong&gt; o &lt;strong&gt;Relog&lt;/strong&gt;. Este diseño es un complemento pues a &lt;strong&gt;Logman&lt;/strong&gt; y &lt;strong&gt;Relog&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Typeperf&lt;/strong&gt; es compatible con un conjunto de parámetros en tiempo de ejecución para la definición de consultas de registro de contador,y junto a opciones, reunir contadores en tiempo-real. Los parámetros utilizan una sintaxis y llevan a cabo funciones similares a Logman y Relog.&lt;/p&gt;  &lt;table border="0" cellspacing="2" cellpadding="2" width="1136"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="150"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Parámetro&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="167"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Sintaxis&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="424"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Función&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="383"&gt;         &lt;p align="center"&gt;&lt;strong&gt;&lt;em&gt;Observaciones&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Consulta&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-q &lt;/strong&gt;&lt;em&gt;{Path [Path…]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Devuelve una lista de contadores, uno por línea con su ruta.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;–&lt;strong&gt;o&lt;/strong&gt; para dirigir la salida a un archivo de texto.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Consulta extendida&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-qx&lt;/strong&gt; &lt;em&gt;{Path [Path…]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Devuelve una lista de contadores con instancias.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;La salida es pormenorizada.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Archivo configuración&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-config &lt;/strong&gt;&lt;em&gt;nombre_archivo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Uso de los parámetros definidos en el archivo.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;Cada contador con su ruta en una línea.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Contadores&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-c &lt;/strong&gt;&lt;em&gt;{Path [Path…]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Especifica contadores a recoger.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;&lt;strong&gt;-cf&lt;/strong&gt;&lt;em&gt; archivo&lt;/em&gt; para utilizar un archivo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Intervalo de muestra&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-si&lt;/strong&gt; &lt;em&gt;[[HH:]MM:]SS]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Especifica intervalo de muestra para reunir datos.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;Predeterminado 1 segundo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;# de muestras&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-sc&lt;/strong&gt; &lt;em&gt;muestras&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Número de muestras de datos a reunir.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Nombre archivo salida&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-o &lt;/strong&gt;&lt;em&gt;(archivo)&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Nombre de archivo de salida, si no existe lo creará.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;Redirige la salida hacia un archivo. Predeterminado &lt;em&gt;&lt;strong&gt;stdout&lt;/strong&gt;&lt;/em&gt;(la pantalla normalmente)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Formato archivo&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-f &lt;/strong&gt;&lt;em&gt;{bin|csv|tsv|SQL}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Elección del formato del archivo de salida.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;Predeterminado csv.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="150"&gt;Equipo&lt;/td&gt;        &lt;td valign="top" width="167"&gt;&lt;strong&gt;-s &lt;/strong&gt;&lt;em&gt;Equipo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="424"&gt;Especifica el equipo del que queremos la información.&lt;/td&gt;        &lt;td valign="top" width="383"&gt;Si no se indica equipo se asume que es el equipo local.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1710362" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Resumiendo archivos de registro con Relog</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/15/resumiendo-archivos-de-registro-con-relog.aspx</link><pubDate>Wed, 15 Jul 2009 07:51:15 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1701816</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1701816</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/15/resumiendo-archivos-de-registro-con-relog.aspx#comments</comments><description>&lt;p&gt;Relog nos permite reducir el tamaño de los archivos de salida creados mediante la escritura de uno de cada &lt;strong&gt;&lt;em&gt;n&lt;/em&gt;&lt;/strong&gt; registros, donde &lt;strong&gt;&lt;em&gt;n&lt;/em&gt;&lt;/strong&gt; es un parámetro que nosotros especificamos usando la opción –&lt;strong&gt;t&lt;/strong&gt;. Esto tiene el efecto de resumir el intervalo y las medias de contadores. Los intervalos son algo como &lt;em&gt;\Processor\Interrupts/sec &lt;/em&gt;y &lt;em&gt;\Process\% Processor Time &lt;/em&gt;que informan un ratio de actividad sobre la medida del intervalo. Las medias como &lt;em&gt;\Physical Disk\Avg.Disk sec/transfer &lt;/em&gt;son las que informan un valor de media sobre la medida.&lt;/p&gt;  &lt;p&gt;El parámetro –&lt;strong&gt;t&lt;/strong&gt; nos permite extraer cada e&lt;strong&gt;n&lt;/strong&gt;ésimo registro desde los registros de contador de entrada y pasarlos al archivo de salida. –&lt;strong&gt;t&lt;/strong&gt; &lt;em&gt;40&lt;/em&gt; selecciona cada 40 registros;&lt;strong&gt; –t&lt;/strong&gt; &lt;em&gt;4 &lt;/em&gt;selecciona cada 4 registros. Si el registro de contador de entrada original se guardó con una muestra de intervalo de una vez cada 15 segundos, usando &lt;strong&gt;Relog &lt;/strong&gt;con el parámetro –&lt;strong&gt;t &lt;/strong&gt;&lt;em&gt;4&lt;/em&gt; resulta en un archivo de salida con datos grabados en intervalos de un minuto. El mismo archivo de salida con –&lt;strong&gt;t &lt;/strong&gt;&lt;em&gt;240&lt;/em&gt; resulta en datos grabados en intervalos de 1 hora.&lt;/p&gt;  &lt;p&gt;Resumiendo usando Relog supone un nuevo muestreo del archivo de entrada. El archivo resultante no es sólo más conciso además contiene valores de contador resumidos sobre intervalos largos. Podemos esperar que algunos datos se han atenuado como resultado de este orden de resumen, pero nada que distorsionaría la normalidad de la distribución subrayada y sea difícil de interpretar.&lt;/p&gt;  &lt;p&gt;No todos los contadores que reunimos pueden resumirse con este estilo, sin embargo, para un contador instantáneo como &lt;em&gt;\Memory\Available Bytes&lt;/em&gt;, relog simplemente baja las observaciones de muestra. Si usamos relog con contadores instantáneos con extensión suficientemente larga, podríamos encontrarnos con un archivo de salida con tan pocas observaciones que no tendríamos una muestra lo suficientemente grande para interpretar las mediciones de manera significativa. En este punto es probablemente mejor usar una lista de contadores con relog para disminuir los contadores instantáneos desde el archivo de salida.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1701816" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Administrar registros de rendimiento: Relog</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/08/administrar-registros-de-rendimiento-relog.aspx</link><pubDate>Wed, 08 Jul 2009 09:01:38 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1698700</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1698700</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/08/administrar-registros-de-rendimiento-relog.aspx#comments</comments><description>&lt;h5&gt;Unión de registros de contador con Relog&lt;/h5&gt;  &lt;p&gt;Podemos utilizar Relog para unir datos de múltiples registros de rendimiento en un único archivo. Se especifica la ruta y los nombres de archivos de los diversos registros de rendimiento como parte del parámetro inicial:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;&lt;em&gt;relog c:\registros\registro1.blg c:\registros\registro2.blg c:\registros\registro3.blg –o c:\misRegistros\RegistroDestino.blg –a&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Usamos el parámetro –&lt;strong&gt;a&lt;/strong&gt; para indicarle a Relog que debe añadir la salida de cualesquiera datos al archivo de salida cuando se unen datos de múltiples registros.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Los registros almacenados en equipos remotos también pueden unirse mediante el uso de la ruta UNC en lugar de la ruta local.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;a&gt;&lt;strong&gt;&lt;em&gt;relog &lt;/em&gt;&lt;/strong&gt;&lt;/a&gt;&lt;a&gt;\\servidor01\registros\reg1.blg&lt;/a&gt;&lt;/a&gt; &lt;a&gt;\\servidor02\registros\reg2.blg&lt;/a&gt; &lt;a&gt;\\servidor03\registros\reg3.blg&lt;/a&gt; –o c\misRegistros\RegDestino.blg –a –f blg&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Las rutas individuales no deben superar los 1024 caracteres.&lt;/em&gt;&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Formato del archivo de salida de Relog&lt;/h5&gt;  &lt;p&gt;Relog es compatible con los mismos formatos de archivos de entrada y salida como Logman a excepción del binario circular y de establecer tamaños límite de archivo. Si se crea un nuevo archivo de salida éste tendrá el formato binario de forma predeterminada. Relog sólo puede añadir datos sobre archivos existentes, y los archivos de entrada y salida están en formato binario.&lt;/p&gt;  &lt;p&gt;Cuando creamos un nuevo archivo de salida podemos usar el parámetro –&lt;strong&gt;f&lt;/strong&gt; para especificar uno de los formatos: bin (formato binario, predeterminado), csv (valores separados por comas), tsv (Valores separados por tabulación) o SQL (formato SQL).&lt;/p&gt;  &lt;h5&gt;Filtrar archivos de registro con Relog&lt;/h5&gt;  &lt;p&gt;Relog tiene capacidad de filtrado, que puede usarse para la extracción de datos de rendimiento desde un registro de contador de entrada basado en los siguientes criterios:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Una lista de contadores, especificados con sus rutas. &lt;/li&gt;    &lt;li&gt;Un rango especificado de fecha y hora. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Sólo los contadores que cumplan los criterios especificados se escribirán en el archivo de salida que Reglog cree.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Filtrado por contador&lt;/em&gt;&lt;/strong&gt;&amp;#160;&amp;#160; Se basa en una lista de contadores, especificados en la la línea de comandos o en un archivo de configuración. Relog grabará en el archivo designado de salida sólo aquéllos valores de los contadores especificados.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog&lt;/strong&gt;&lt;em&gt; c:\registros\reg01.txt –&lt;/em&gt;&lt;strong&gt;o &lt;/strong&gt;&lt;em&gt;c:\registros\nuevoreg.txt –&lt;/em&gt;&lt;strong&gt;f &lt;/strong&gt;&lt;em&gt;csv –&lt;/em&gt;&lt;strong&gt;c&lt;/strong&gt; &amp;quot;&lt;em&gt;\Memory\Available Bytes&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Para la extracción de datos de más de un contador, se incluye cara ruta del contador como parte del parámetro –&lt;strong&gt;c&lt;/strong&gt;.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog&lt;/strong&gt;&lt;em&gt; c:\registros\reg01.txt –&lt;/em&gt;&lt;strong&gt;o &lt;/strong&gt;&lt;em&gt;c:\registros\nuevoreg.txt –&lt;/em&gt;&lt;strong&gt;f &lt;/strong&gt;&lt;em&gt;csv –&lt;/em&gt;&lt;strong&gt;c&lt;/strong&gt; &amp;quot;&lt;em&gt;\Memory\Available Bytes&amp;quot;&lt;/em&gt; &amp;quot;\Memory\Pages/sec&amp;quot; &amp;quot;\Memory\Cache Bytes&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="10" width="950"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="948"&gt;&lt;em&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Relog no realiza monitorización por sí mismo; todo lo que hace es recoger datos desde registros de rendimiento existentes. Si especificamos un contador que no se encuentra en ninguno de los archivos de entrada, el contador no aparecerá en el archivo de salida.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Si nuestro registro de entrada contiene datos de múltiples equipos, se incluye el nombre del equipo como parte de la ruta del contador.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog&lt;/strong&gt;&lt;em&gt; c:\registros\reg01.txt –&lt;/em&gt;&lt;strong&gt;o &lt;/strong&gt;&lt;em&gt;c:\registros\nuevoreg.txt –&lt;/em&gt;&lt;strong&gt;f &lt;/strong&gt;&lt;em&gt;csv –&lt;/em&gt;&lt;strong&gt;c&lt;/strong&gt; &amp;quot;&lt;em&gt;&lt;strong&gt;\\EQUIPO&lt;/strong&gt;\Memory\Available Bytes&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;En lugar de escribir una gran cantidad de contadores de rendimiento como parte del comando, podemos usar un archivo de configuración, un simple archivo de texto conteniendo las rutas de cada contador en una fila.&lt;/p&gt;  &lt;p&gt;Para filtrar los archivos de entrada que sólo tengan aquéllos contadores que estén en el de salida, usar el parámetro –&lt;strong&gt;cf&lt;/strong&gt; seguido de la ruta del archivo de configuración.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filtrado por fecha&amp;#160;&amp;#160; &lt;/strong&gt;Relog proporciona la habilidad de extraer subconjuntos de datos basados en fecha y hora. Para ello se especifica la hora de comienzo (parámetro –&lt;strong&gt;b&lt;/strong&gt;) y la hora final (parámetro –&lt;strong&gt;e&lt;/strong&gt;) como parte de nuestro comando. Tanto uno como otro parámetros expresan fechas y horas usando el formado mm-dd-yyyy hh:mm:ss, més día año, hora, minuto y segundos, la hora se expresa en formato 24 horas.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;relog &lt;/strong&gt;c:\registros\reg01.txt –&lt;strong&gt;f &lt;/strong&gt;csv –&lt;strong&gt;o&lt;/strong&gt; c:\registros\Nuevoreg.txt –&lt;strong&gt;b &lt;/strong&gt;07-07-2009 09:30:00 –&lt;strong&gt;e&lt;/strong&gt; 07-08-2009 11:00:00&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Si sólo indicamos las horas, se asume la fecha del día actual.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;relog &lt;/strong&gt;c:\registros\reg01.txt –&lt;strong&gt;o&lt;/strong&gt; c:\registros\Nuevoreg.txt –&lt;strong&gt;b &lt;/strong&gt;09:30:00 –&lt;strong&gt;e&lt;/strong&gt; 11:00:00&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1698700" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Administrar registros de rendimiento</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/03/administrar-registros-de-rendimiento.aspx</link><pubDate>Fri, 03 Jul 2009 10:31:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1697668</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1697668</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/03/administrar-registros-de-rendimiento.aspx#comments</comments><description>&lt;p&gt;Tanto Las Alertas y registros de rendimiento como Logman nos permiten cierta flexibilidad en la recogida de estadísticas de rendimiento. La herramienta &lt;strong&gt;&lt;em&gt;Relog (relog.exe)&lt;/em&gt;&lt;/strong&gt; es una herramienta de línea de comandos que nos permite administrar los registros de contador que hemos creado. Con Relog podemos llevar a cabo las siguientes tareas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Combinar múltiples registros de contador en un único archivo de registro. Podemos listar los nombres de archivo de todos los contadores que queremos que Relog procese separadamente, o podemos usar caracteres comodín (como *) para identificarlos. Los registros que combinemos pueden contener contadores de un sólo equipo o de varios. &lt;/li&gt;    &lt;li&gt;Crear resúmenes de archivos de salida desde un archivo o archivos de entrada. &lt;/li&gt;    &lt;li&gt;Editar el contenido de un registro contador, permitiendo saltar los contadores por nombre o todos aquéllos que no han recogido datos durante un intervalo de tiempo determinado. &lt;/li&gt;    &lt;li&gt;Convertir datos de contador de un formato a otro. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;strong&gt;Nota: &lt;/strong&gt;Logman puede recoger datos de rendimiento en múltiples equipos y guardarlos en un sólo archivo de registro. Sin embargo, esto puede resultar en una cantidad de tráfico considerable e indeseado. Relog nos permite monitorizar el rendimiento localmente, y entonces recuperar los datos según se necesiten. Colocando los comando de Relog en un archivo de lotes, los datos pueden recuperarse de forma programada, en momentos que el tráfico de la red es bajo.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;La herramienta Relog&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Relog necesita dos parámetros: la ruta de un archivo existente (de entrada) y la ruta para un archivo (de salida) nuevo(parámetro –&lt;strong&gt;o&lt;/strong&gt;).&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;em&gt;&lt;strong&gt;relog&lt;/strong&gt; C:\archivodeentrada.blg &lt;strong&gt;–o&lt;/strong&gt; C:\archivonuevodesalida.blg&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Relog reune datos desde uno o más registros de rendimiento y los combina en un archivo de salida único. Podemos especificar un archivo de entrada único o una cadena de archivos de entrada.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;relog &lt;/strong&gt;C:\archivodeentrada.blg c:\archivodeentrada2.blg c:\archivodeentrada3.blg –&lt;strong&gt;o &lt;/strong&gt;c:\archivonuevodesalida.blg&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sintaxis&lt;/strong&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="1132"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="172"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Parámetro&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="241"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Sintaxis&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="317"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Función&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="401"&gt;         &lt;p align="center"&gt;&lt;em&gt;&lt;strong&gt;Notas&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Archivo configuración&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;em&gt;&lt;strong&gt;-config &lt;/strong&gt;archivo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Usa los parámetros definidos en este archivo.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;Usar –&lt;strong&gt;i&lt;/strong&gt; en el archivo de configuración como emplazamiento para una lista de archivos de entrada.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Contadores&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;strong&gt;&lt;em&gt;-c&lt;/em&gt; &lt;/strong&gt;&lt;em&gt;{ruta [ruta …]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Especifica los contadores del archivo de entrada que queremos escribir en el archivo de salida. Si no se especifican, se escribirán todos.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;Usar –&lt;strong&gt;cf&lt;/strong&gt; &lt;em&gt;archivo &lt;/em&gt;para valores de contador de un archivo existente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Resumen intervalo&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;em&gt;&lt;strong&gt;-t &lt;/strong&gt;n&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Escribir la salida cada &lt;em&gt;n &lt;/em&gt;intervalo de los archivos de entrada.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;Predeterminado para crear salidas cada intervalo de entrada.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Nombre archivo de salida&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;em&gt;&lt;strong&gt;-o &lt;/strong&gt;{ruta|DSN!RegistroContador}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Especifica el archivo de salida.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;Obligatorio.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Formato archivo registro&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;em&gt;&lt;strong&gt;-f &lt;/strong&gt;bin | bincirc |csv | tsv| SQL&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Elección del formato del archivo de salida.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;Predeterminado formato binario.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Añadir&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;strong&gt;&lt;em&gt;-a&lt;/em&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Añade la salida desde la sesión de registro a un archivo existente.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;Sólo para archivos binarios de entrada y salida.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Comenzar Relogging&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;em&gt;&lt;strong&gt;-b &lt;/strong&gt;M/D/YYYY H:MM:SS [{AM|PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Especifica la fecha y la hora de inicio del archivo de salida.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="172"&gt;Finalizar Relogging&lt;/td&gt;        &lt;td valign="top" width="241"&gt;&lt;em&gt;&lt;strong&gt;-e&lt;/strong&gt; &lt;em&gt;M/D/YYYY H:MM:SS [{AM|PM}]&lt;/em&gt; &lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="317"&gt;Especifica la fecha y la hora de fin del archivo de salida.&lt;/td&gt;        &lt;td valign="top" width="401"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1697668" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Siguiendo con Logman</title><link>http://msmvps.com/blogs/juansa/archive/2009/07/01/siguiendo-con-logman.aspx</link><pubDate>Wed, 01 Jul 2009 10:06:34 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1697448</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1697448</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/07/01/siguiendo-con-logman.aspx#comments</comments><description>&lt;p&gt;Con Logman podemos programar opciones que nos permitan la programación de la recogida de datos en horas específicas durante el día. Mediante intervalos de muestra diferentes podemos tener también a Logman recogiendo datos en intervalos regulares. Lo que no podemos hacer es programar la recogida de datos de en horarios irregulares. Por ejemplo: los 10 primeros minutos de cada hora.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Podemos con Typeperf hacerlo. Creamos un archivo de lotes que configure Typeperf&lt;/em&gt;&amp;#160; para tomar muestras sólo 10 minutos y luego programamos que el archivo de lotes se ejecute una vez cada hora con el Administrador de tareas.&lt;/p&gt;  &lt;p&gt;Sin embargo, ya que Logman es scriptable, podemos combinar WSH y Logman para programar la recogida de datos usando intervalos irregulares. Un script:&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; WshShell = WScript.CreateObject(&lt;span style="color:#006080;"&gt;&amp;quot;WScript.Shell&amp;quot;&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Do&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC% /c logman -start dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     Script.Sleep 300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC% /c logman -stop dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     WScript.Sleep 3300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Loop&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Inicia Logman y se para por cinco minutos, tiempo que Logman recoge datos, luego lo detiene y permanece 55 minutos inactiva hasta volver a activar el Ciclo(Loop).&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Set&lt;/span&gt; WshShell = WScript.CreateObjetc(&lt;span style="color:#006080;"&gt;&amp;quot;WScript.Shell&amp;quot;&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;For&lt;/span&gt; i = 1 &lt;span style="color:#0000ff;"&gt;to&lt;/span&gt; 24&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC /c logman -start dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     WScript.Sleep 300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     WshShell.Run &lt;span style="color:#006080;"&gt;&amp;quot;%COMPSEC /c logman -stop dns_log&amp;quot;&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     WScript.Sleep 3300000&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:white;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Next&lt;/span&gt; i&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt; WScript.Quit&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Este hace lo mismo pero se ejecuta 24 veces, una vez cada hora.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1697448" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Scripting/default.aspx">Scripting</category></item><item><title>Registros con Logman 2</title><link>http://msmvps.com/blogs/juansa/archive/2009/06/29/registros-con-logman-2.aspx</link><pubDate>Mon, 29 Jun 2009 09:48:27 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1697063</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1697063</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/06/29/registros-con-logman-2.aspx#comments</comments><description>&lt;p&gt;Antes de usar Log manager debemos crear una colección –conjunto de instrucciones que especifica que equipo monitorizar, que contadores recogerán información, con qué frecuencia la obtendrán y cualesquiera otros parámetros de recolección de datos de rendimiento.&lt;/p&gt;  &lt;p&gt;Una colección se crea utilizando el parámetro &lt;strong&gt;&lt;em&gt;create counter&lt;/em&gt;&lt;/strong&gt;, seguido del nombre de la colección y una lista de los contadores de rendimiento a monitorizar. Por ejemplo: &lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;logman create counter &lt;/strong&gt;&lt;em&gt;dns_server_log&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Esto creará un contador llamado dns_server_log, pero no especifica ningún contador de rendimiento. Para ello hemos de usar el parámetro –&lt;strong&gt;c&lt;/strong&gt; para indicar los contadores que tomarán muestras.&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;logman create counter &lt;/strong&gt;&lt;em&gt;dns_server_log –&lt;strong&gt;c&lt;/strong&gt; “\Memory\Available Bytes”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Aquí le hemos añadido un contador, aunque podrían ser varios.&lt;/p&gt;  &lt;p&gt;Como una alternativa a listar uno a uno los contadores, si estos fueran muchos, podemos crear un archivo de texto con un contador específico por línea y usarlo en el comando.&lt;/p&gt;  &lt;p&gt;Un archivo que contenga:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="461"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="459"&gt;         &lt;blockquote style="margin-right:0px;" dir="ltr"&gt;           &lt;p&gt;&amp;quot;\Memory\Available MBytes&amp;quot;              &lt;br /&gt;&amp;quot;\Memory\Pool Nonpaged Bytes&amp;quot;               &lt;br /&gt;&amp;quot;\Memory\Pool Paged Bytes&amp;quot;               &lt;br /&gt;&amp;quot;\PhysicalDisk(*)\Current Disk Queue Length&amp;quot;               &lt;br /&gt;&amp;quot;\PhysicalDisk(*)\Disk Reads/sec&amp;quot;               &lt;br /&gt;&amp;quot;\PhysicalDisk(*)\Disk Read Bytes/sec&amp;quot;               &lt;br /&gt;&amp;quot;\PhysicalDisk(*)\Disk Writes/sec&amp;quot;               &lt;br /&gt;&amp;quot;\PhysicalDisk(*)\Disk Write Bytes/sec&amp;quot;               &lt;br /&gt;&amp;quot;\Process(*)\% Processor Time&amp;quot;               &lt;br /&gt;&amp;quot;\Process(*)\Private Bytes&amp;quot; &amp;quot;\Process(*)\Virtual Bytes&amp;quot;&lt;/p&gt;         &lt;/blockquote&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Le damos un nombre, por ejemplo: &lt;em&gt;basico.config&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Una vez tenemos el archivo, utilizamos logman para:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;logman create counter&lt;/strong&gt; BASICO &lt;strong&gt;-f&lt;/strong&gt; bincirc &lt;strong&gt;-max&lt;/strong&gt; 500 &lt;strong&gt;-si&lt;/strong&gt; 2 &lt;strong&gt;--v -o&lt;/strong&gt; &amp;quot;e:\perflogs\SERVIDORBASE&amp;quot; &lt;strong&gt;–cf&lt;/strong&gt; &lt;a&gt;\basico.config&amp;quot;&amp;gt;\\&amp;lt;SERVIDOR&amp;gt;\basico.config&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;logman create counter&lt;/strong&gt; BASICO: Esto crea la colección BASICO en el equipo local. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;-f&lt;/strong&gt; bincirc &lt;strong&gt;-max&lt;/strong&gt; 500 &lt;strong&gt;-si&lt;/strong&gt; 2: Aquí especificamos que estamos creando un archivo binario circular con un tamaño máximo de 500 MB, estableciendo el intervalo de captura en 2 horas. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;--v -o&lt;/strong&gt; &amp;quot;e:\perflogs\SERVIDORBASE&amp;quot;: Desconectamos la información de versión y establecemos la ubicación de salida y el nombre del archivo. El registro se creará con la extensión .BLG. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;–cf&lt;/strong&gt; &lt;a&gt;\basico.config&amp;quot;&amp;gt;\\&amp;lt;SERVIDOR&amp;gt;\basico.config&lt;/a&gt;: Finalmente la ubicación del archivo de configuración estándar de contadores. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Una vez ejecutado el comando podemos ver si efectivamente se ha creado nuestra colección con el parámetro query,&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7776.logman01_5F00_76665FD3.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="logman01" border="0" alt="logman01" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7851.logman01_5F00_thumb_5F00_55E1B0D2.jpg" width="340" height="177" /&gt;&lt;/a&gt; &lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/7853.logman02_5F00_33207915.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="logman02" border="0" alt="logman02" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/juansa.metablogapi/6864.logman02_5F00_thumb_5F00_24785DE1.jpg" width="348" height="182" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Finalmente para iniciarlo:&lt;/p&gt;  &lt;p class="CodeBlock"&gt;&lt;strong&gt;logman start&lt;/strong&gt; BASICO&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1697063" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Registros de rendimiento con Logman</title><link>http://msmvps.com/blogs/juansa/archive/2009/06/26/registros-de-rendimiento-con-logman.aspx</link><pubDate>Fri, 26 Jun 2009 11:15:11 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1696781</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1696781</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/06/26/registros-de-rendimiento-con-logman.aspx#comments</comments><description>&lt;p&gt;Suponiendo que queremos monitorizar la medida de tráfico de red generado por un programa de copias de seguridad, ¿aplicación que se ejecuta a las 2 de la madrugada?. Un registro de contador en Alertas y registros de rendimiento nos permite registrar los datos de rendimiento en un archivo, de ese modo obtenemos una monitorización desatendida. Pero aún siendo una excelente herramienta para llevar a cabo estas tareas tiene ciertas limitaciones:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Cada configuración de registro de contador ha de crearse mediante el interfaz gráfico. Aunque esto hace que usuarios novatos puedan crear seguimientos de rendimiento, los usuarios experimentados pueden encontrar el proceso lento y menos eficiente que crearlo desde la línea de comandos. &lt;/li&gt;    &lt;li&gt;La configuración del registro de rendimiento creado con el snap-in no puede ser accedido desde scripts o archivos batch. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La herramienta Logman nos ayuda a superar esas limitaciones. Además, Logman está diseñado para trabajar con otras herramientas de línea de comando como Relog y Typeperf lo que nos permite la construcción fiable de procedimientos de monitorización del rendimiento automatizados.&lt;/p&gt;  &lt;p&gt;Más info sobre Logman: &lt;a title="http://technet.microsoft.com/es-es/library/bb490956(en-us).aspx" href="http://technet.microsoft.com/es-es/library/bb490956(en-us).aspx"&gt;http://technet.microsoft.com/es-es/library/bb490956(en-us).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Visión general&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Log Manager (Logman.exe) es una herramienta de línea de comandos que complementa al snap-in de Alertas y registros de rendimiento. Logman replica toda la funcionalidad en una única herramienta. Entre otras cosas, podemos:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Crear con rapidez configuraciones de registros de rendimiento desde la línea de comandos. &lt;/li&gt;    &lt;li&gt;Creación y uso de archivos de configuración personalizados que nos permitirán copiar la configuración de monitorización y reutilizarla en otros equipos. &lt;/li&gt;    &lt;li&gt;Llamar al registro de rendimiento desde archivos batch o scripts. Estos batch o scripts pueden copiarse y usarse en otros equipos. &lt;/li&gt;    &lt;li&gt;Recoger datos desde múltiples equipos simultáneamente. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Los datos que Logman reune se guardan en un archivo de registro de contador de rendimiento usando el formato que especifiquemos. Con system monitor podemos ver y analizar cualquier registros de contador que haya creado Logman.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sintaxis&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Logman funciona en uno de dos modos, &lt;strong&gt;modo interactivo&lt;/strong&gt;, podemos ejecutar Logman desde la línea de comandos e interactuar con la sesión de registro. O en &lt;strong&gt;segundo plano&lt;/strong&gt;, Logman crea configuraciones de registros de contador que son programadas y procesadas por el mismo servicio de Alertas y registros de contador que usa la misma consola.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Subcomandos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="1097"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="256"&gt;         &lt;p align="center"&gt;&lt;em&gt;Subcomando&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="839"&gt;         &lt;p align="center"&gt;&lt;em&gt;Función&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="256"&gt;&lt;strong&gt;Create counter&lt;/strong&gt; Nombre_colección&lt;/td&gt;        &lt;td valign="top" width="839"&gt;Crea una colección para una sesión de datos de contador&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="256"&gt;&lt;strong&gt;Update&lt;/strong&gt; Nombre_colección&lt;/td&gt;        &lt;td valign="top" width="839"&gt;Actualiza una colección existente para modificar los parámetros&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="256"&gt;&lt;strong&gt;Delete&lt;/strong&gt; Nombre_colección&lt;/td&gt;        &lt;td valign="top" width="839"&gt;Elimina una colección existente&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="256"&gt;&lt;strong&gt;Query&lt;/strong&gt; Nombre_colección&lt;/td&gt;        &lt;td valign="top" width="839"&gt;Lista la colección definida y su estado. Para equipos remotos usar la opción –&lt;strong&gt;s &lt;/strong&gt;&lt;em&gt;Equipo_remoto.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="256"&gt;&lt;strong&gt;Start&lt;/strong&gt; Nombre_colección&lt;/td&gt;        &lt;td valign="top" width="839"&gt;Inicia una sesión de registro manualmente&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="256"&gt;&lt;strong&gt;Stop&lt;/strong&gt; Nombre_colección&lt;/td&gt;        &lt;td valign="top" width="839"&gt;Detiene una sesión de registro manualmente&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Parámetros&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="1100"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;         &lt;p align="center"&gt;&lt;em&gt;Parámetro&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="251"&gt;         &lt;p align="center"&gt;&lt;em&gt;Sintaxis&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="381"&gt;         &lt;p align="center"&gt;&lt;em&gt;Función&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="333"&gt;         &lt;p align="center"&gt;&lt;em&gt;Notas&lt;/em&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Configuración de archivo&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-config &lt;/strong&gt;&lt;em&gt;archivo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Usa los parámetros definidos en este archivo.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Equipo&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-s &lt;/strong&gt;&lt;em&gt;Equipo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Especifica el equipo del que queremos reunir los contadores.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Si no se especifica se toma el equipo local.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Contadores&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-c &lt;/strong&gt;&lt;em&gt;{Ruta [Ruta…]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Especifica los contadores que queremos reunir.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Necesario. –&lt;strong&gt;cf &lt;/strong&gt;&lt;em&gt;Archivo&lt;/em&gt; para configuración de un registro existente.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Intervalo de muestra&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-si &lt;/strong&gt;&lt;em&gt;[[HH:]MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Especifica el intervalo entre las muestras de recogida de datos.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Predeterminado 15 segundos.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Nombre archivo de salida&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-o &lt;/strong&gt;&lt;em&gt;{Ruta\ DSN!RegistroContador}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Especificar el archivo de salida, si no existe se creará uno.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Necesario. –&lt;strong&gt;v&lt;/strong&gt; para generar nombres de archivo únicos.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Versión de archivo&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-v &lt;/strong&gt;&lt;em&gt;{NNNNNN | MMDDHHMM}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Genera nombres únicos, numerándolos consecutivamente o agregándoles la hora y la fecha.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Formato de archivo&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-f &lt;/strong&gt;&lt;em&gt;{bin | bincirc | csv | tsv | SQL}&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Elige el formato de salida del archivo.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Predeterminado Binario.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Límite de tamaño de archivo&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-max &lt;/strong&gt;&lt;em&gt;valor&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;El máximo valor de tamaño de archivo o BD en MB.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;El registro finaliza en cuanto se alcanza dicho tamaño.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Crear nuevo archivo al finalizar la sesión&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-cnf&lt;/strong&gt; &lt;em&gt;[[HH:]MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Crea un nuevo registro cuando el límite de tamaño o duración de registro se supera.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Necesita que&lt;strong&gt; –v &lt;/strong&gt;&lt;em&gt;versión &lt;/em&gt;se haya especificado para crear nombres únicos de archivo.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Ejecutar comando al finalizar la sesión&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-rc &lt;/strong&gt;&lt;em&gt;archivo&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Ejecuta este comando al finalizar la sesión.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Uso en conjunción con las opciones –&lt;strong&gt;cnf &lt;/strong&gt;y –&lt;strong&gt;v&lt;/strong&gt;.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Añadir&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-a &lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Añade la salida de este registro a un archivo existente.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Comenzar registro&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-b &lt;/strong&gt;&lt;em&gt;M/D/YYYY H:MM:SS [{AM | PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Comienza una sesión de registro automáticamente en la hora y fecha definidas.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Finalizar registro&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-e&lt;/strong&gt; &lt;em&gt;M/D/YYYY H:MM:SS [{AM | PM}]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Finaliza una sesión de registro automáticamente en la hora y fecha definidas.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;O usar –&lt;strong&gt;rf&lt;/strong&gt; para especificar la duración.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Duración del registro&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-rf&lt;/strong&gt; &lt;em&gt;[[HH:]MM:]SS&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Finaliza la sesión una vez alcanzada su duración.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;O usar –&lt;strong&gt;e&lt;/strong&gt; para especificar una fecha y hora de finalización.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Repetir&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-r &lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Repite cada día a la misma hora. El periodo de tiempo se basa en las opciones –&lt;strong&gt;b&lt;/strong&gt; y –&lt;strong&gt;rf&lt;/strong&gt;, o –&lt;strong&gt;b &lt;/strong&gt;y –&lt;strong&gt;e.&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="333"&gt;Uso en conjunción con las opciones –&lt;strong&gt;cnf, -rc &lt;/strong&gt;y –&lt;strong&gt;v&lt;/strong&gt;.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Iniciar y detener recogida de datos&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-m &lt;/strong&gt;&lt;em&gt;[start] [stop]&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Inicia o detiene una sesión de registro manualmente.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Usuario y contraseña&lt;/td&gt;        &lt;td valign="top" width="251"&gt;&lt;strong&gt;-u &lt;/strong&gt;&lt;em&gt;usuario contraseña&lt;/em&gt;&lt;/td&gt;        &lt;td valign="top" width="381"&gt;Especifica usuario y contraseña para acceso a un equipo remoto.&lt;/td&gt;        &lt;td valign="top" width="333"&gt;La cuenta de usuario debe pertenecer al grupo de usuarios de registro de rendimiento. Especificar &lt;strong&gt;*&lt;/strong&gt; para ser preguntado por la contraseña en la línea de comandos.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1696781" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item><item><title>Analizar registros de contador -1</title><link>http://msmvps.com/blogs/juansa/archive/2009/06/07/analizar-registros-de-contador-1.aspx</link><pubDate>Sun, 07 Jun 2009 11:56:20 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1694439</guid><dc:creator>juansa</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/juansa/rsscomments.aspx?PostID=1694439</wfw:commentRss><comments>http://msmvps.com/blogs/juansa/archive/2009/06/07/analizar-registros-de-contador-1.aspx#comments</comments><description>&lt;p&gt;Una vez creado el registro de contador, podemos utilizar el monitor del sistema para analizar los datos que contiene. Si necesitamos manipular más los datos de medición, con Relog podemos crear un archivo en formato de texto que podemos leer desde Excel mismo.&lt;/p&gt;  &lt;p&gt;Para analizar los datos desde el Monitor del sistema:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Abrimos el monitor del sistema y pulsamos el botón de &lt;em&gt;Ver datos de registro.&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;En la pestaña Origen, marcamos la opción de archivos de registro y con el botón &lt;em&gt;Agregar&lt;/em&gt; añadimos los archivos que deseamos analizar. Podemos marcar uno o varios o una Base de Datos de SQL. &lt;/li&gt;    &lt;li&gt;Pulsamos el botón de Intervalo de tiempo para establecer el inicio y el final del intervalo de tiempo a analizar con el control deslizante. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;Desde el monitor del sistema en vista gráfico sólo se muestran 100 puntos a la vez. Cuando informamos sobre datos de una archivo de registro, la vista de gráfico automáticamente resume secuencias mayores de 100 medidas de muestra para rellenar la pantalla. Si el contador contiene 500, las líneas de gráficos mostrarán la media de cada 5 puntos. El campo duración en la barra de valores mostrará en pantalla la duración del intervalo de tiempo que hemos seleccionado ver. También podemos usar las Vistas de Informe o Histograma para medias numéricas, valores mínimos y máximos para todos los contadores almacenados en el archivo de registro.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;u&gt;Nota:&lt;/u&gt; Cuando estamos trabajando con un archivo de registro de contador sólo podemos añadir contadores que se encuentran en el archivo para verlos o crear un informe.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Con clic derecho sobre la pantalla y eligiendo &lt;em&gt;Guardar como&lt;/em&gt; podemos guardar el archivo con distinto formato. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La ayuda de Windows Server 2003 nos describe como llevar a cabo la mayoría de las tareas comunes con alertas y registros, además de cómo crear y configurar los registros de contador.&lt;/p&gt;  &lt;p&gt;La mejor forma de:&lt;/p&gt;  &lt;p&gt;Exportar los datos a una hoja de cálculo: &lt;em&gt;Utilizar relog para volcar el archivo a un formato de texto csv o tsv (separado por coma o tabulación).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Grabar datos de forma intermitente: &lt;em&gt;No todos los formatos de archivo de registro de contador pueden acomodar los datos que no estén presentes al inicio de una sesión de registro, lo mejor es un formato como .blg.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Limitar el tamaño del archivo para evitar problemas de espacio en disco: &lt;em&gt;Si elegimos un contador automatizado sin inicio/fin programado, el archivo puede crecer hasta el máximo permitido según el espacio disponible en disco. Al establecer esta opción, debemos tomar en consideración el espacio del que disponemos y si hay establecidas cuotas de disco. Cambiar la ruta predeterminada hacia otra unidad de disco con un tamaño más adecuado. Si durante una sesión de registro el servicio de registros de contador se ve incapaz de actualizar el archivo debido a la carencia de espacio en disco, grabará un evento en el Registro de Aplicación mostrando un estado de error por “Error disco lleno”.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Nombres de archivo de fácil identificación: &lt;em&gt;Usar nombres con fin de nombre para una fácil identificación. Establecer un registro periódico como un registro diario, preparar un esquema de nombres con la base del equipo donde se registra, o el tipo de datos que reunimos, seguido de la fecha como sufijo. Por ejemplo &lt;strong&gt;Servidor01_070612.blg&lt;/strong&gt; grabado en el servidor01 el 7 de junio a las 12, si se estableció en fin de nombre en tipo mmddhh.&lt;/em&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1694439" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/juansa/archive/tags/Herramientas/default.aspx">Herramientas</category><category domain="http://msmvps.com/blogs/juansa/archive/tags/Windows+Server/default.aspx">Windows Server</category></item></channel></rss>