<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://rjblog.es/style/nb_rusted.css" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://rjblog.es/archives/cat_1/index-rss.xml" rel="self" type="application/rss+xml" />
<title>Roger Jordan Blog</title>
<link>http://rjblog.es/</link>
<description> Afortunado de haber encontrado la salsa de la vida, dedicado a ti.</description>
<language>es-Es</language>
<item>
<link>http://rjblog.es/archives/2010/01/25/T15_54_59/</link>
<guid>http://rjblog.es/archives/2010/01/25/T15_54_59/</guid>
<title>Pollsys Oracle y consumo de CPU</title>
<pubDate>Mon, 25 Jan 2010 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[En muchas ocasiones me he encontrado procesos oracle con un alto consumo de
CPU que pr&aacute;cticamente solo est&aacute;n ejecutando la llamada al sistema
<strong>pollsys</strong>, la salida a un truss muestra tal que:<p />

<p class="shell">
box# truss -faelid -c -p 12564
^C
syscall               seconds   calls  errors
read                     .000       2
write                    .000       2
times                    .000      47
yield                    .000     145
pollsys                 6.568 1335638
                     --------  ------   ----
sys totals:             5.569 1335834      0
usr time:              35.453
elapsed:               70.540
</p>

La llamada pollsys se usa para ver si hay nuevos datos disponibles en un
file descriptor, vamos a comprobarlo:<p />
<p class="shell">

box# truss -faelid -v pollsys -p 12564 
[...]

7219/1:          0.0193 pollsys(0xFFFFFFFF7FFF21D0, 2, 0xFFFFFFFF7FFF2110, 0x00000000) = 1
7219/1:                 fd=8  ev=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND rev=POLLIN|POLLRDNORM
[...]

box#pfiles 12564
[...]

  8: S_IFSOCK mode:0666 dev:298,0 ino:49586 uid:0 gid:0 size:0
      O_RDWR|O_NDELAY FD_CLOEXEC
 	     SOCK_DGRAM
	     SO_SNDBUF(65536),SO_RCVBUF(131072)
	     sockname: AF_INET 172.16.xxx.xxx  port: 5884
[...]

</p>

Nuestro proceso oracle est&aacute; ejecutando la llamada pollsys sobre un
socket de forma continua, &iquest;por qu&eacute;?, &iquest;que datos
est&aacute; esperando?. <p />

La respuesta la encontr&eacute; en el <a
href="http://blog.tanelpoder.com/2008/02/05/oracle-hidden-costs-revealed-part-1/">blog
de Tanel Poder</a>. Para resumir, Oracle est&aacute; comprobando continuamente
que el usuario no pulse un &quot;ctrl+break&quot; para abortar la consulta que ha
lanzado en caso que esta sea de larga duraci&oacute;n.<p />

Existe el par&aacute;metro <strong>break_poll_skip</strong> en el fichero
sqlnet.ora para que esta comprobaci&oacute;n no se haga tan
frecuentemente, ahorrando tiempo de CPU.]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/10/07/T16_43_43/</link>
<guid>http://rjblog.es/archives/2009/10/07/T16_43_43/</guid>
<title>En que emplea el equipo el tiempo de sistema.</title>
<pubDate>Wed, 07 Oct 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[Estos &uacute;ltimos d&iacute;as hemos tenido bastantes problemas de
rendimiento en un nodo de un cluster de base de datos. Despu&eacute;s de un
breve an&aacute;lisis se observa que el tiempo de servicio de uno de los luns
supera a los 200 milisegundos, con picos de hasta 300. A la vez  se
observa que la cpu est&aacute; empleando un 30% de tiempo en tareas de
kernel.<p />

A partir de estos dos datos &quot;los de siempre&quot; empiezan a especular
que el tiempo de consumo por parte de kernel es consecuencia de los altos
tiempos de respuesta de ese lun.<p />

Si alguien se toma la molestia de leer algo de documentaci&oacute;n enseguida
ver&aacute; que mientras un proceso espera datos de una operaci&oacute;n de
i/o est&aacute; durmiendo. Esto es f&aacute;cilmente observable con el comando
<code>prstat -m</code>, veremos la columna SLP (donde se incluye el tiempo de espera para
operaciones de i/o) muy cercana al 100%. Un proceso dormido no consume cpu ...
saquen pues sus propias conclusiones.<p />

El problema que se me plante&oacute; es demostrar con datos objetivos que
realmente es as&iacute;, para ello he recurrido a dtrace y he hecho <a
href="http://rjblog.es/software/dtrace/syscall/syscall_time.d">un
script</a>
que calcula cuanto tiempo de cpu ha consumido cada llamada al sistema, es
decir se han empleado <code>13212600 nanosegundos</code> ejecutando la llamada
<code>waitsys</code>, <code>29667600</code> ejecutando <code>send</code>,
etc. Con esos datos y un poco de ayuda de una hoja de calculo es f&aacute;cil ver
que porcentaje de tiempo de sistema se est&aacute; usando en cada una.<p />

Como curiosidad el resultado fue que el 60% de tiempo de kernel no
estaba relacionado directamente con operaciones de i/o.<p />]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/07/14/T12_17_59/</link>
<guid>http://rjblog.es/archives/2009/07/14/T12_17_59/</guid>
<title>Nuevo apartado de Software</title>
<pubDate>Tue, 14 Jul 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<a href="http://www.opensolaris.org">
<img class="imgleft"  alt="OpenSolaris: Love at First Boot"
title="OpenSolaris: Love at First Boot"
src="http://www.opensolaris.org/os/about/buttons/love1st_os_blk_125.gif">
</a>Desde hace unos pocos d&iacute;as est&aacute; disponible la secci&oacute;n
<a href="http;//rjblog.es/software">software</a> en el men&uacute; superior de
la web. Aunque ahora se encuentra pr&aacute;cticamente vac&iacute;a, poco a
poco la
iremos llenando de peque&ntilde;as utilidades que nos ayudan cuando tenemos
que diagnosticar alg&uacute;n problema de rendimiento.<p />

Si os fij&aacute;is he dicho 'iremos', mi idea es que cualquiera pueda colaborar
enviando aquel script, programita en D, lo que sea, que considere que puede ser
&uacute;til a la gente y no le importe compartirlo. No hace falta decir que
todo tendr&aacute; los correspondientes cr&eacute;ditos al autor.<p />

Tambi&eacute;n hay que aclarar que el software es para OpenSolaris, esto
quiere decir que no tiene porque funcionar en Solaris 10. Es
especialmente importante cuando nos referimos a Dtrace, ya que los distintos
probes/providers suelen estar disponibles en Solaris algo m&aacute;s tarde que
en OpenSolaris.<p />

Aprovecho para dar las gr&aacute;cias <a href="http://jjmora.es">Jose Juan
Mora</a> por colaborar con un par de scripts en perl para medir el <a
href="http://rjblog.es/software/perl/net/net_perf.pl">throughput
de las interfaces de red</a> y <a
href="http://rjblog.es/software/perl/cpu/cpu_perf.pl">la saturaci&oacute;n en
las cpus</a> respectivamente.<p/>]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/07/09/T15_11_41/</link>
<guid>http://rjblog.es/archives/2009/07/09/T15_11_41/</guid>
<title>OpenSolaris: Java y Dtrace</title>
<pubDate>Thu, 09 Jul 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<a href="http://www.java.com?cid=2436">
<img class="imgleft"  alt="Java Get Powered" title="Java Get Powered"
src="http://java.com/im/get_powered_sm.jpg"></a> 
Como coment&eacute; en la entrada anterior, en el Sun OpenCommunities Forum fue patente el gran
inter&eacute;s por la tecnolog&iacute;a <a href="http://java.sun.com">java</a>
que existe. As&iacute; que pens&eacute; en como llamar la atenci&oacute;n
acerca de opensolaris a toda esa masa de gente, y &#161;et voil&#224;! que
mejor que ense&ntilde;ar aquello en lo que Opensolaris sobresale.<p />

Como resultado he escrito <a
href="http://rjblog.es/articulos/java_dtrace/">Java y Dtrace</a>, un
art&iacute;culo explicando como podemos obtener datos de la &uacute;ltima
versi&oacute;n de JSE mediante
<href="http://www.sun.com/bigadmin/content/dtrace/">Dtrace</a>.<p />

<b class="subtitle">Entradas anteriores relacionadas:</b>
<ul>
<li><a href="http://rjblog.es/archives/2009/06/24/T16_06_47/">Revisando el Sun
Opencommunities Forum</a></li>
<li><a
href="http://rjblog.es/archives/2009/01/05/T12_12_54/">Lentitud en
el sistema en formato pdf.</a><br></li>
</ul>]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/05/27/T12_05_13/</link>
<guid>http://rjblog.es/archives/2009/05/27/T12_05_13/</guid>
<title>Sun Open Communities Forum</title>
<pubDate>Wed, 27 May 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<img class="mage" alt="Sun
Open Communities Forum" title="Sun Open Communities Forum"
	 src="http://sunopencommunitiesforum.es/index_files/pic_01.jpg"><p />

Los pr&oacute;ximos 18 y 19 de junio se celebrar&aacute; en la Escuela
Polit&eacute;cnica Superior de la Universidad San Pablo CEU (Boadilla del
Monte, Madrid) el evento <a href="http://sunopencommunitiesforum.es/">"Sun
Open Communities Forum"</a>. De asistencia gratuita,
el Forum est&aacute; especialmente dirigido a desarrolladores y
tecn&oacute;logos tanto del &aacute;mbito empresarial como universitario.<p />

Personalmente me podr&eacute;is encontrar el viernes 18 en el taller de
An&aacute;lisis de rendimiento que organizaremos, espero veros por
all&iacute;. :)]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/01/12/T13_11_16/</link>
<guid>http://rjblog.es/archives/2009/01/12/T13_11_16/</guid>
<title>Parece que hemos obtenido buena nota.</title>
<pubDate>Mon, 12 Jan 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<img class="imgleft" alt="Lentitud en el sistema" title="lentitud en el
sistema" src="http://rjblog.es/images/lentitud-en-el-sistema.png">

La semana pasada vi&oacute; la luz <a title="Lentitud en el sistema"
href="http://rjblog.es/lentitud/lentitud-sistema.pdf">la versi&oacute;n en
pdf</a> de los
art&iacute;culos <strong>Lentitud en el sistema</strong> y para mi
satisfacci&oacute;n el feedback fu&eacute; en general muy positivo. Por si fuera poco, hablaron <a
title="Barrapunto" href="http://barrapunto.com/comments.pl?sid=79610&op=&threshold=-1&commentsort=0&mode=thread&pid=0">de
&eacute;l</a> en la portada de <a title="Barrapunto" href="http://barrapunto.com">Barrapunto</a>.<p />

Cosas para mejorar de cara a nuevas versiones:<p />

<ul>
<li>Mayor profundidad en los ejemplos, algunos son  muy simples.</li>
<li>Desarrollar un apartado espec&iacute;fico para la
monitorizaci&oacute;n.</li>
<li>Cuidar la ortograf&iacute;a.</li>
</ul>

Sobre el segundo punto he empezado a trabajar, a&ntilde;adiendo un
cap&iacute;tulo especifico para &eacute;l, un poco b&aacute;sico por el momento pero
tendr&aacute; m&aacute;s contenido en breve.<p />

Resumiendo, gr&aacute;cias por vuestros comentarios y a disfrutar de las
nuevas versiones futuras.<p />]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/01/05/T12_12_54/</link>
<guid>http://rjblog.es/archives/2009/01/05/T12_12_54/</guid>
<title>Lentitud en el sistema en formato pdf.</title>
<pubDate>Mon, 05 Jan 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<img class="imgleft" alt="Lentitud en el sistema" title="lentitud en el
sistema" src="http://rjblog.es/images/lentitud-en-el-sistema.png" />

<a href="http://rjblog.es/lentitud/lentitud-sistema.pdf">
<img class="imgright" alt="Lentitud en el sistema" title="lentitud en el
sistema" src="http://rjblog.es/images/pdf.jpg" />
</a>

Desde hace tiempo que vengo pensando que un blog no es el formato m&aacute;s
indicado para leer documentaci&oacute;n t&eacute;cnica, he tratado de paliar
sus deficiencias manteniendo un men&uacute; espec&iacute;fico para los
art&iacute;culos y recientemente otro exclusivamente para la serie "Lentitud en
el sistema", aun as&iacute; su lectura ordenada y su consulta en caso de
necesidad es m&aacute;s complicada de lo ideal.<p />

Para compensar todas estas deficiencias he creado un pdf con casi todo el
contenido t&eacute;cnico de la web, intentando darle un orden coherente y un
formato com&uacute;n a todos los art&iacute;culos. <p />

Todav&iacute;a quedan muchas cosas por mejorar, adem&aacute;s de a&ntilde;adir
m&aacute;s contenido, pero ya est&aacute; disponible <a
alt="Lentitud en el sistema en PDF" href="http://rjblog.es/lentitud/lentitud-sistema.pdf">la primera
versi&oacute;n</a>. Agradecer&iacute;a cualquier tipo de comentario que me
permita mejorarlo en las sucesivas versiones.</p>]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2008/12/29/T13_03_53/</link>
<guid>http://rjblog.es/archives/2008/12/29/T13_03_53/</guid>
<title>Lentitud en el sistema: analizando un proceso.</title>
<pubDate>Mon, 29 Dec 2008 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<img class="imgleft" alt="Lentitud en el sistema" title="lentitud en el
sistema" src="http://rjblog.es/images/lentitud-en-el-sistema.png" />

Verg&uuml;enza me da tener el blog sin actualizar durante tanto tiempo, pero
entre unas cosas y otras &uacute;ltimamente tengo poco tiempo libre.<p />

As&iacute; pues aunque todav&iacute;a es solo un esbozo de lo que pretendo sea
el art&iacute;culo final os presento <a title="Analizando un proceso"
href="http://rjblog.es/lentitud/lentitud-en-el-sistema-f/">analizando un
proceso</a> de la serie <strong>Lentitud en el sistema</strong>. En
posteriores revisiones ir&eacute; complet&aacute;ndolo con m&aacute;s contenido.
<p />
<center><h2> &iexcl;&iexcl;&iexcl;Felices fiestas a todos !!! </h2></center>
<br />]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2008/10/23/T11_46_39/</link>
<guid>http://rjblog.es/archives/2008/10/23/T11_46_39/</guid>
<title>Lentitud en el sistema, competencia por los recursos</title>
<pubDate>Thu, 23 Oct 2008 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<img class="imgleft" alt="Lentitud en el sistema" title="lentitud en el
sistema" src="http://rjblog.es/images/lentitud-en-el-sistema.png" />

En esta ocasi&oacute;n presento una reedici&oacute;n del <a title="Bloqueos en
el kernel"
href="http://rjblog.es/articulos/blocks_ii/">art&iacute;culo
original</a> acerca de bloqueos. Lo he expandido y adaptado al formato de la
serie "Lentitud en el sistema".<p />

Los bloqueos es un tema complejo, de diagn&oacute;stico dif&iacute;cil y que
en muchas ocasiones se suelen usar de excusa cuando la gente no tiene ni idea
de lo que est&aacute; pasando. Frecuentemente ser&aacute; un tema de roces
entre departamentos tanto cuando teng&aacute;is que argumentar que son un problema
como cuando los existentes sean perfectamente normales.<p />

Espero que encontr&eacute;is &uacute;til el nuevo <a title="Bloqueos en
el kernel y los procesos"
href="http://rjblog.es/lentitud/lentitud-en-el-sistema-e/">art&iacute;culo</a>.
El feedback de cualquier tipo es bienvenido. <p />]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2008/10/14/T14_35_23/</link>
<guid>http://rjblog.es/archives/2008/10/14/T14_35_23/</guid>
<title>Analizamos los problemas de rendimiento relacionados con la I/O</title>
<pubDate>Tue, 14 Oct 2008 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>Opensolaris</category>
<description><![CDATA[<img class="imgleft" alt="Lentitud en el sistema" title="lentitud en el
sistema" src="http://rjblog.es/images/lentitud-en-el-sistema.png" />

Nueva entrega de <srtong>Lentitud en el sistema</strong>, en esta ocasi&oacute;n analizamos los
problemas de rendimiento derivados de una i/o excesiva. Ten&eacute;is el
art&iacute;culo <a title="Problemas de i/o"
href="http://rjblog.es/lentitud/lentitud-en-el-sistema-d/">aqu&iacute;</a>.<p
/>

Tambi&eacute;n he rehecho un poco los men&uacute;s del blog, creando una
secci&oacute;n espec&iacute;fica para esta serie.<p />

Espero que sea de vuestro agrado. Cualquier feedback ser&aacute; agradecido.<p />]]></description>
</item>
</channel>
</rss>
