<?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>Daniel Martín's blog : Rendimiento</title><link>http://msmvps.com/blogs/dmartin/archive/tags/Rendimiento/default.aspx</link><description>Tags: Rendimiento</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Cómo analizar el rendimiento del arranque/apagado de Windows Vista</title><link>http://msmvps.com/blogs/dmartin/archive/2008/10/09/analizar-el-rendimiento-del-arranque-apagado-hibernaci-243-n-en-windows-vista.aspx</link><pubDate>Thu, 09 Oct 2008 20:06:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1650375</guid><dc:creator>dmartin</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/dmartin/rsscomments.aspx?PostID=1650375</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/dmartin/commentapi.aspx?PostID=1650375</wfw:comment><comments>http://msmvps.com/blogs/dmartin/archive/2008/10/09/analizar-el-rendimiento-del-arranque-apagado-hibernaci-243-n-en-windows-vista.aspx#comments</comments><description>&lt;p&gt;Una de los quejas que m&amp;aacute;s&amp;nbsp;se ven&amp;nbsp;en los foros de Windows Vista&amp;nbsp;es la siguiente:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;El sistema arranca/apaga/hiberna muy lentamente. Cuando inicio sesi&amp;oacute;n tengo que esperar un mont&amp;oacute;n de tiempo hasta que finalmente se apaga la luz del disco duro y puedo trabajar.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Como cada persona tiene su propia idea de lo que es &amp;quot;lento&amp;quot; y, ciertamente, es dif&amp;iacute;cil describir de manera precisa en qu&amp;eacute; fase concreta del arranque se consume una mayor cantidad de tiempo, lo que suelo indicar es que se utilice la infraestructura ETW (&lt;em&gt;Event Tracing for Windows&lt;/em&gt;) de Windows Vista para generar una traza detallada del arranque/apagado/hibernaci&amp;oacute;n para as&amp;iacute; determinar la causa del problema. Concretamente, la herramienta Xbootmgr&amp;nbsp;(&lt;a href="http://www.microsoft.com/whdc/system/sysperf/perftools.mspx"&gt;http://www.microsoft.com/whdc/system/sysperf/perftools.mspx&lt;/a&gt;), parte del&amp;nbsp;kit de herramientas&amp;nbsp;Windows Performance,&amp;nbsp;se apoya en la infraestructura ETW para generar una traza detallada del apagado, inicio, suspensi&amp;oacute;n e hibernaci&amp;oacute;n del equipo. &lt;/p&gt;
&lt;p&gt;Una vez instalado el software,&amp;nbsp;vamos a usar la herramienta Xbootmgr para generar una traza del arranque, por ejemplo. Antes de comenzar la prueba, es recomendable que:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No use el sistema durante la prueba, para que la medici&amp;oacute;n sea lo m&amp;aacute;s precisa posible.&lt;/li&gt;
&lt;li&gt;Desconecte toda conexi&amp;oacute;n de red, unidad de red, etc. que tenga en el equipo.&lt;/li&gt;
&lt;li&gt;Configure el sistema para iniciar sesi&amp;oacute;n&amp;nbsp;autom&amp;aacute;ticamente. Para ello, puede usar la powertoy &lt;a target="_blank" href="http://shellrevealed.com/files/folders/code/entry4411.aspx"&gt;Autologon&lt;/a&gt; de Windows Vista.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La sintaxis ser&amp;iacute;a:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;xbootmgr -trace boot -numRuns&amp;nbsp;2 -resultPath %systemdrive%\traces -prepSystem -traceflags base&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;El valor &lt;em&gt;boot&lt;/em&gt; del par&amp;aacute;metro -trace indica que queremos trazar el arranque del equipo. Podr&amp;iacute;amos poner &lt;em&gt;shutdown&lt;/em&gt; y estar&amp;iacute;amos trazando el apagado del equipo.&lt;/p&gt;
&lt;p&gt;El valor &lt;em&gt;2&lt;/em&gt; del par&amp;aacute;metro -numRuns indica que queremos realizar 2 trazas consecutivas.&lt;/p&gt;
&lt;p&gt;El par&amp;aacute;metro -prepSystem implica que se realizar&amp;aacute; un par de arranques &amp;quot;preparatorios&amp;quot; antes de la prueba en s&amp;iacute;.&lt;/p&gt;
&lt;p&gt;Una vez ejecutado el comando anterior, el sistema informar&amp;aacute; de que se va a reiniciar autom&amp;aacute;ticamente.&amp;nbsp;Cuando finalice&amp;nbsp;la traza, ver&amp;aacute; que en el directorio que haya indicado tras el par&amp;aacute;metro -resultPath se ha creado un fichero con extensi&amp;oacute;n .etl. Para extraer un resumen de la informaci&amp;oacute;n de ese fichero en formato XML, puede usar la utilidad Xperf del siguiente modo:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;xperf -i traza.etl -o resumen.xml -a boot&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(Donde &amp;quot;traza.etl&amp;quot; es la traza que se ha obtenido como resultado del comando Xbootmgr).&lt;/p&gt;
&lt;p&gt;Al abrir el fichero Resumen.xml encontrar&amp;aacute; un resumen de cada una de las fases de arranque as&amp;iacute; como los correspondientes tiempos de ejecuci&amp;oacute;n, entre otros datos.&amp;nbsp;Es bastante m&amp;aacute;s intuitivo mostrar la informaci&amp;oacute;n de una manera gr&amp;aacute;fica. Para ello, simplemente ejecute el siguiente comando:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;xperf traza.etl&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Se abrir&amp;aacute; la herramienta Windows Performance Analyzer y mostrar&amp;aacute; la informaci&amp;oacute;n de la traza de manera gr&amp;aacute;fica. La siguiente captura de pantalla muestra una parte de la informaci&amp;oacute;n mostrada en un sistema:&lt;/p&gt;
&lt;p&gt;&lt;img width="608" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/dmartin/WPA.PNG" alt="Gr&amp;aacute;ficas producidas por Windows Performance Analyzer" height="636" style="vertical-align:middle;" /&gt;&lt;/p&gt;
&lt;p&gt;En la parte superior se puede ver un diagrama temporal de los procesos del sistema operativo, es decir,&amp;nbsp;en qu&amp;eacute; momento &amp;quot;nacen&amp;quot; y en qu&amp;eacute; momento finalizan. En la parte inferior aparece el concepto &amp;quot;hard faults&amp;quot;, que hace referencia a todos aquellos fallos de p&amp;aacute;gina que han requerido una operaci&amp;oacute;n de E/S hacia el disco. Como esto es una operaci&amp;oacute;n costosa (varios&amp;nbsp;&amp;oacute;rdenes de&amp;nbsp;magnitud m&amp;aacute;s lenta que el acceso a memoria principal), toda herramienta que analice el rendimiento de un sistema suele proporcionar este dato. Es normal que en las etapas iniciales del arranque se produzca un gran n&amp;uacute;mero de fallos de p&amp;aacute;gina. Windows Performance Analyzer permite mostrar gr&amp;aacute;ficas adicionales&amp;nbsp;tales como el consumo de CPU por proceso, E/S por proceso, etc. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;En general, &amp;iquest;qu&amp;eacute; produce un inicio lento?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Suponiendo dos m&amp;aacute;quinas iguales o parecidas en lo que a hardware se refiere (hardware que cumpla los requisitos recomendados de Windows Vista), el que una de ellas arranque mucho m&amp;aacute;s lentamente que la otra puede deberse a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Controladores de arranque sin una firma digital embebida. Esto supone que Windows Vista debe ir al cat&amp;aacute;logo (%windir%\catroot) a buscar la correspondiente firma digital, demor&amp;aacute;ndose la carga del controlador.&lt;/li&gt;
&lt;li&gt;Controladores que responden lentamente a los eventos generados por el administrador Plug and Play de Windows. Concretamente, el cuello de botella suele encontrarse a la hora de manejar la IRP IRP_MN_START_DEVICE. Tiene informaci&amp;oacute;n sobre la misma en el sitio web de &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ms806454.aspx"&gt;MSDN&lt;/a&gt;. Como se comenta en la propia documentaci&amp;oacute;n, los controladores deber&amp;iacute;an devolver el resultado STATUS_PENDING&amp;nbsp;y&amp;nbsp;posponer el tratamiento de la IRP para as&amp;iacute; no perjudicar excesivamente el tiempo de arranque del sistema.&lt;/li&gt;
&lt;li&gt;Un controlador de v&amp;iacute;deo que tarda mucho tiempo en inicializarse.&lt;/li&gt;
&lt;li&gt;Conexiones de red persistentes (una unidad de red,&amp;nbsp;por ejemplo) que tardan en responder mucho tiempo.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Scripts&lt;/em&gt; de inicio impuestos mediante directivas (esto es m&amp;aacute;s com&amp;uacute;n en un dominio).&lt;/li&gt;
&lt;li&gt;Servicios que tardan demasiado&amp;nbsp;en iniciarse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si interpretando la informaci&amp;oacute;n de la traza determinase que es en la fase final del arranque en la que se consume m&amp;aacute;s tiempo, quiz&amp;aacute; desee desactivar servicios u otros elementos que arrancan junto con Windows. Para ello&amp;nbsp;lo ideal es que haga uso de la herramienta &lt;a target="_blank" href="http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx"&gt;Autoruns&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En resumen, el arranque y apagado del sistema operativo son dos procesos complejos (especialmente el primero) formados por una serie de fases bien diferenciadas. Interpretando la informaci&amp;oacute;n proporcionada por las herramientas Xbootmgr y Xperf podr&amp;aacute; comprender mejor qu&amp;eacute; es&amp;nbsp;lo que ocurre cuando arranca o&amp;nbsp;apaga su&amp;nbsp;sistema y ser&amp;aacute; capaz de detectar los cuellos de botella que tantos segundos de nuestro preciado tiempo nos roban cada vez que ponemos en funcionamiento nuestra m&amp;aacute;quina.&lt;/p&gt;
&lt;p&gt;Por supuesto, si&amp;nbsp;necesitara ayuda para interpretar los resultados de alguna traza, puede plantear su pregunta en los comentarios de esta entrada.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1650375" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/dmartin/archive/tags/Consultas/default.aspx">Consultas</category><category domain="http://msmvps.com/blogs/dmartin/archive/tags/Rendimiento/default.aspx">Rendimiento</category></item></channel></rss>