<?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/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/08/10/T14_19_42/</link>
<guid>http://rjblog.es/archives/2009/08/10/T14_19_42/</guid>
<title>Muestran un portatil con KDE 4 diciendo que es Windows 7</title>
<pubDate>Mon, 10 Aug 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>De la vida</category>
<description><![CDATA[Normalmente soy de los que suelo borrar los t&iacute;picos correos con Power
Points, videos, y dem&aacute;s pavadas que suele enviar la gente sin siquiera
mirarlos. Solo hago dos excepciones, que sea una c&aacute;mara oculta o que me
llame la atenci&oacute;n de forma especial.<p />

En el primer de los casos no puedo evitarlo, me pirran las c&aacute;maras ocultas. Si
lo s&eacute;, muchos lo considerar&aacute;n un humor f&aacute;cil, algunos
incluso de mal gusto, puede que hasta cruel. Y debo darles la raz&oacute;n,
pero si dijera que una buena c&aacute;mara oculta me deja impasible
mentir&iacute;a, lo
cierto es que me destornillo de risa hasta llorar a lagrim&oacute;n suelto.<p
/>

El segundo de los casos es sencillo de comprender, si el t&iacute;tulo del mail te
hace pensar que trata sobre un tema que te interesa, te resulta curioso, etc.
Lo abres, as&iacute; de sencillo.<p />

Hace unos d&iacute;as me lleg&oacute; el enlace a un video, que muchos
conocer&aacute;n ya pues tiene unos meses, donde unos
periodistas muestran un port&aacute;til con Windows 7 piden la opini&oacute;n a la
gente. Las inocentes v&iacute;ctimas no saben que en realidad se trata de un
Linux con KDE 4.<p />

Desde luego los comentarios de lo f&aacute;cil, bonito y r&aacute;pido que es
no tienen precio, a juzgar por ellos migrar de Windows a Linux es
cuesti&oacute;n sencilla.<p />

<p class="center"><object width="400" height="330"><param name="movie"
value="http://www.zdnet.com.au/video/embed/22470997"></param></param><param
name="allowfullscreen" value="true"></param><param name="allowscriptaccess"
value="always"></param><embed
src="http://www.zdnet.com.au/video/embed/22470997"
type="application/x-shockwave-flash" allowfullscreen="true"
allowscriptaccess="always" width="400" height="330"></embed></object></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/06/24/T16_06_47/</link>
<guid>http://rjblog.es/archives/2009/06/24/T16_06_47/</guid>
<title>Revisando el Sun OpenCommunities Forum</title>
<pubDate>Wed, 24 Jun 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>

<description><![CDATA[<p class="center"><img class="image" alt="
Autor de la foto: www.flickr.com/photos/jmiguel" title="Autor de la foto:
www.flickr.com/photos/jmiguel"
         src="http://farm3.static.flickr.com/2480/3643686752_03a46ccd9c.jpg?v=0"></p>

Este viernes pasado estuve en el Sun Open Communities Forum, lo cierto es que
no puedo opinar sobre la mayor&iacute;a de charlas ya que estuve casi todo el
tiempo ocupado preparando mi taller, comentando cosas sobre la comunidad con
los dem&aacute;s miembros y bromeando un rato.<p />

La impresi&oacute;n que me dio es que la mayor&iacute;a de gente estaba
m&aacute;s interesada en Java y tecnolog&iacute;as relacionadas con la Web que no en
Opensolaris. Coincide con mi opini&oacute;n el hecho que la 
retroalimentaci&oacute;n que he le&iacute;do se centra en ese apartado, como por
ejemplo <a
href="http://www.danilat.com/weblog/2009/06/24/sun-open-communities-forum/">Daniel
Latorre</a> o <a
href="http://vsbabylon.blogspot.com/2009/06/sun-open-communities-forum.html">Abel
Mendivil</a>. <p />

A pesar del menor protagonismo de OpenSolaris, un peque&ntilde;o grupo de
&quot;fan&aacute;ticos&quot; aprovechamos la ocasi&oacute;n para disfrutar de
lo lindo. La asistencia al taller de rendimiento fue modesta, aunque
eso favoreci&oacute; el dinamismo, siendo la interacci&oacute;n con los
asistentes notable. Entre bromas, ejemplos y ejercicios fuimos aprendiendo a
ver las tripas del sistema. Posiblemente lo que m&aacute;s llam&oacute, la
atenci&oacute;n fue las posibilidades de Dtrace, mostrando como se pueden
obtener datos dif&iacute;cilmente observables en otros *nix.<p />

Al final de la charla el feedback de los asistentes fue muy positivo,
lo que me anima a repetirla en alguna futura ocasi&oacute;n. <p />

Os dejo <a href="http://rjblog.es/docs/rendimiento.odp">la
presentaci&oacute;n</a> usada para que pod&aacute;is revisarla a
vuestro gusto.<p />

Gracias a todos los que hicieron posible el evento y espero veros en
el siguiente.<p />]]></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/04/14/T13_26_31/</link>
<guid>http://rjblog.es/archives/2009/04/14/T13_26_31/</guid>
<title>Mirando el throughput de la red con DTRACE</title>
<pubDate>Tue, 14 Apr 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>

<description><![CDATA[En breve tengo pensado publicar una nueva cap&iacute;tulo de <strong>
<a href="http://eregion.no-ip.info/archives/2009/01/05/T12_12_54/">Lentitud
en el sistema</a></strong> dedicado exclusivamente a problemas de red. Es un tema
bastante complejo, ya que a menudo dependes de la colaboraci&oacute;n de
terceros.<p />

Como parte la documentaci&oacute;n vienen varios ejemplos de
<strong>dtrace</strong> bastante
&uacute;tiles, de momento adelanto este, nos da el troughput actual de cada
interfaz. Aviso, debido a que el provider ip se ha incorporado recientemente
no funciona ni en Solaris 10, ni en versiones antiguas de OpenSolaris.

<p class="shell">
/usr/sbin/dtrace -q -n '

ip::: send
{ 
        @bytes_snd[args[3]->if_name] = sum(args[4]->ipv4_length);
}


ip:::receive 
{ 
	@bytes_rcp[args[3]->if_name] = sum(args[4]->ipv4_length); 
}

profile:::tick-1sec
{
	printf("Enviados (bytes/seg): ");
	printa(@bytes_snd);
	clear(@bytes_snd);
	printf("Recividos (bytes/seg):");
	printa(@bytes_rcp);
	clear(@bytes_rcp);
}
'
</p>

<b class="subtitle">Entradas anteriores relacionadas:</b>
<ul>
<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/04/02/T11_07_06/</link>
<guid>http://rjblog.es/archives/2009/04/02/T11_07_06/</guid>
<title>Ya soy padre</title>
<pubDate>Thu, 02 Apr 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>

<description><![CDATA[Si, el blog ha estado un poco abandonado &uacute;ltimamente, los primeros meses
de un padre son bastante duros, creedme. Es una mezcla entre felicidad,
satisfacci&oacute;n y desesperaci&oacute;n. Pronto aprendes esa palabra nueva,
c&oacute;licos, que nadie sabe explicarte muy bien en que consisten y aun
menos como se curan, pero son totalmente reales.<p />

Pasados ya estos dos primeros meses, ni&ntilde;a y padres ya nos hemos adaptado y
aprendido a comprendernos mutuamente, as&iacute; que espero que despu&eacute;s
de semana santa poder ir retomando la actividad en el blog.<p />

Os dejo una foto de mi chiquitina. <p />

</p><p class="center">
<img class="image" alt="Mi hija" title="Mi_hija "
src="http://rjblog.es/images/paula_2.JPG"></p>]]></description>
</item>
<item>
<link>http://rjblog.es/archives/2009/01/19/T18_25_15/</link>
<guid>http://rjblog.es/archives/2009/01/19/T18_25_15/</guid>
<title>10 verdades que todo administrador de sistemas debe tener en cuenta.</title>
<pubDate>Mon, 19 Jan 2009 15:00:00 +0100</pubDate>
<dc:creator>Roger Jordan</dc:creator>
<category>De la vida</category>
<description><![CDATA[
Esta tarde, ten&iacute;amos poco trabajo, as&iacute; que junto a los
compa&ntilde;eros de la oficina, hemos elaborado una lista, en clave de humor,
sobre aquellas verdades que todo administrador de sistemas que se precie debe
tener en cuenta:<p />

<b>1.- El backup es para cobardes.<p /></b>

Para que perder el tiempo en algo que al final, nunca usas. Adem&aacute;s si
en alguna ocasi&oacute;n llegas a necesitarlo seguro que ese d&iacute;a no ha
funcionado la copia. <p />

<b>2.- Entorno de pruebas = entorno de producci&oacute;n.<p /></b>

Aunque a todos nos gustar&iacute;a tener un entorno de producci&oacute;n
inmaculado, seguro que no te podr&aacute;s librar del desarrollador mediocre
que te estar&aacute; pidiendo subidas cada dos por tres para solucionar sus
metidas de pata.<p />

<b>3.- En tu pr&oacute;ximo trabajo tampoco habr&aacute; t&iacute;as buenas.<p
/></b>

Hace falta explicaci&oacute;n? en cuantas empresas has trabajado t&uacute;?
cuantas chicas guapas hab&iacute;a? ... pues eso.<p />

<b>4.- Si tienes un problema pregunta a Google.<p /></b>

Google es el or&aacute;culo de los dioses del binario, si el no lo sabe a
quien podr&aacute;s acudir? si si, dir&aacute;s que llamemos al soporte
t&eacute;cnico, pero donde crees que buscan ellos las respuestas?<p />

<b>5.- Si Google no sabe la respuesta tienes un problema.<p /></b>

Simplemente, si no est&aacute; en Google no existe, si tienes algo que no existe
debes estar en una paradoja temporal.<p />

<b>6.- Los usuarios mienten.<p /></b>

Es un hecho constatado ampliamente, cuantas veces he escuchado a alguien decir
"no yo no he tocado nada" y t&uacute; en los logs est&aacute;s leyendo "rm -rf
/home/pepito".<p />

<b>7.- Puedes luchar contra la estupidez de los usuarios, pero no contra la de
ESE usuario.<p /></b>

Da igual el nivel de seguridad que implementes, da igual el grado de
monitorizaci&oacute;n que tengas, etc siempre habr&aacute; un zopenco que
conseguir&aacute; joderlo todo.<p />

<b>8.- No importa lo que digan, el problema no es del sistema, es de ... (sustituye ... por
lo que te de m&aacute;s rabia).<p /></b>

No hay nada como la jerga t&eacute;cnica para despistar a la gente sobre la
fuente del problema, eso s&iacute;, recuerda que lo del condensador de fluzo
est&aacute; demasiado visto.<p />

<b>9.- Ubuntu no es sistema operativo.<p /></b>

Bueno vale, aceptamos pulpo, Ubuntu es un sistema operativo, pero no
hab&eacute;is tenido nunca ganas de mandar a paseo al &uacute;ltimo fan boy que os explica
la gran novedad que incluye su africana distribuci&oacute;n. Sin darse cuenta que cualquier 
otra tambi&eacute;n la tiene incorporada.<p /> 

<b>10.- Digan lo que digan, no parchees un sistema que funciona.<p /></b>

Si, los badpatch existen, yo los he sufrido. No hay nada m&aacute;s jodido y
dif&iacute;cil de justificar que algo que funcionaba bien deje de hacerlo. Si
a&uacute;n as&iacute; eres tan responsable como para aplicar los parches, rompe
el espejo primero. !!!<p /><br />

Por favor que nadie se tome en serio ni uno de los apartados anteriores, son
fruto de una tarde aburrida y mucha imaginaci&oacute;n. &iquest;T&uacute; tambi&eacute;n 
te aburres? &iquest;Cuales de ellas quitar&iacute;as y cuales a&ntilde;adir&iacute;as t&uacute;?<p />]]></description>
</item>
</channel>
</rss>
