Tip – Monitoreos de performance, el punto de partida y de fin de cualquier optimización web

Desde hace un tiempo estoy trabajando en varios proyectos de optimización web, sobre todo en abocado al frontend. Y vengo recomendando en este blog algunas coas a tener en cuenta.

Debo decir que mas allá de cual sea la técnica o herramienta que utilicemos para identificar los posibles problemas de performance de nuestro site, y cuales sus posibles soluciones,  lo mas importantes  es tener información REAL que nos da un buen punto de partida, de la performance de nuestro sitio. Y no basta con hace un análisis en un momento desde nuestra PC con YSLOW, lo mas REAL es saber como funciona todo desde otros ambientes (OS, Browser, conexión, país, etc), para eso lo mejor es utilizar algún servicio de monitoreo sobre nuestro site.  Esto nos va a dar la información y estadísticas necesarias para poder ver cual es a lo largo del tiempo el desempeño del site. Y con esa información podremos decidir cuales son los puntos a atacar en el análisis de problemas y en el proceso de optimización, y cual es el verdadero impacto que van a tener.

Adicionalmente, los monitoreos de performance nos permiten definir un nivel de servicio mínimo y disparar alarmas para poder atacar problemas de esta indole.  Por ej: definimos que la url: www.mysite.com/singup, no puede demorar mas de 1.5 seg en contestar. Si el monitor no obtiene una respuesta en ese lapso u obtiene un error, nos da una alarma, por mail o SMS.

Existen 3 tipos de monitoreos de performance que podemos realizar:

  1. Own Server:  mediante cualquier técnica,  server side,  podemos medir el tiempo que tardan nuestro server en responder cada request. Para ello, solo incluímos algún script en nuestro server (de los cientos que hay en internet).  Estos script van a guardar un log en cada request.  Esto se usa mayormente para monitorear cual es la performance de nuestro site (server-side).
  2. Monitoring Service:  Obviamente si nuestro server se cae o tiene alguna falla, el sistema previo no va a funcionar. Por ello lo mas usado actualmente son los servicios de monitoreo. La verdad que existen cientos, solo basta con buscar en google. Estos servicios dan muchas características, se puede usar diferentes protocolos, dan reportes muy lindos, flows de alarmas, y plugins para incluir macros y cookies.  De los que he visto, lo mejor que encontre fue: http://mon.itor.us/  y http://watchmouse.com/   (comenten si ven algo mejor!)
  3. Client-measurement:  Un ejemplo de esto es Jiffy-web , que nos permite incluir en el frontend de nuestro site, un pequeño javascript y podemos agregar las mediciones que nosotros queramos realizar. También trae todo lo necesario server-side, para almacenar esa info y poder analizarla mediante algunos reportes. Lo mejor de esto, es que las mediciones se realizan con los clientes reales, y en ambientes variados. La gente de digg y twitter, usan esto con solo un porcentaje de los request (obviamente no guardan los millones diarios).  Y lo único malo, es que la configuración server-side, no es tan sencilla para cuentas-share y necesita oracle como base de datos.

Por ejemplo, con este sencillo código, podríamos medir el tiempo que demora la carga de un script de tercero:

<script type="text/javascript">
  Jiffy.mark("slowThirdPartyStart");
</script>

<script type="text/javascript" src="http://www.slowsite.com/slow.js"></script>

<script type="text/javascript">
  Jiffy.measure("slowThirdPartyDone", "slowThirdPartyStart");
</script>

Esta solución es end-to-end, y habra que esperar un poco para que sea mysql friendly.

En resumen: Es muy importante tener una visión constante, del uso real de los usuarios sobre el sitio y de la performance del mismo. Y para eso necesitas datos, cuando mas reales mejor… el secreto es tener info, analizarla y pensar que cambiar…  Si estas leyendo esta página sabes el valor que tiene la alta performance en la calidad de un site (google example ;) )

Suerte :)

This entry was posted in performance, webapps and tagged , , , , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

2 Comments

  1. Posted 2009/07/24 at 19:28 | Permalink

    Muy buen post, yo puedo agregar al monitoreo http://servermojo.com/ lo he usado y es muy bueno.

  2. Posted 2009/07/24 at 20:12 | Permalink

    No lo conocia, pero ya lo estoy testeando para compararlo con los otros que he probado…

    Gracias por la data.

    Probaste algunos anteriores, que no sean solo de availability

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>