Pollsys Oracle y consumo de CPU
lun 25 de enero del 2010
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
La llamada pollsys se usa para ver si hay nuevos datos disponibles en un file descriptor, vamos a comprobarlo: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 [...]
Nuestro proceso oracle está ejecutando la llamada pollsys sobre un socket de forma continua, ¿por qué?, ¿que datos está esperando?. La respuesta la encontré en el blog de Tanel Poder. Para resumir, Oracle está comprobando continuamente que el usuario no pulse un "ctrl+break" para abortar la consulta que ha lanzado en caso que esta sea de larga duración. Existe el parámetro break_poll_skip en el fichero sqlnet.ora para que esta comprobación no se haga tan frecuentemente, ahorrando tiempo de CPU.En que emplea el equipo el tiempo de sistema.
mié 07 de octubre del 2009
prstat -m, 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.
El problema que se me planteó es demostrar con datos objetivos que
realmente es así, para ello he recurrido a dtrace y he hecho un
script
que calcula cuanto tiempo de cpu ha consumido cada llamada al sistema, es
decir se han empleado 13212600 nanosegundos ejecutando la llamada
waitsys, 29667600 ejecutando send,
etc. Con esos datos y un poco de ayuda de una hoja de calculo es fácil ver
que porcentaje de tiempo de sistema se está usando en cada una.
Como curiosidad el resultado fue que el 60% de tiempo de kernel no
estaba relacionado directamente con operaciones de i/o.
Muestran un portatil con KDE 4 diciendo que es Windows 7
lun 10 de agosto del 2009
Nuevo apartado de Software
mar 14 de julio del 2009
Desde hace unos pocos días está disponible la sección
software en el menú superior de
la web. Aunque ahora se encuentra prácticamente vacía, poco a
poco la
iremos llenando de pequeñas utilidades que nos ayudan cuando tenemos
que diagnosticar algún problema de rendimiento.
Si os fijá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
útil a la gente y no le importe compartirlo. No hace falta decir que
todo tendrá los correspondientes créditos al autor.
Tambié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ás tarde que
en OpenSolaris.
Aprovecho para dar las grácias Jose Juan
Mora por colaborar con un par de scripts en perl para medir el throughput
de las interfaces de red y la saturación en
las cpus respectivamente.
OpenSolaris: Java y Dtrace
jue 09 de julio del 2009
Como comenté en la entrada anterior, en el Sun OpenCommunities Forum fue patente el gran
interés por la tecnología java
que existe. Así que pensé en como llamar la atención
acerca de opensolaris a toda esa masa de gente, y ¡et voilà! que
mejor que enseñar aquello en lo que Opensolaris sobresale.
Como resultado he escrito Java y Dtrace, un
artículo explicando como podemos obtener datos de la última
versión de JSE mediante
Revisando el Sun OpenCommunities Forum
mié 24 de junio del 2009

Sun Open Communities Forum
mié 27 de mayo del 2009
Los próximos 18 y 19 de junio se celebrará en la Escuela
Politécnica Superior de la Universidad San Pablo CEU (Boadilla del
Monte, Madrid) el evento "Sun
Open Communities Forum". De asistencia gratuita,
el Forum está especialmente dirigido a desarrolladores y
tecnólogos tanto del ámbito empresarial como universitario.
Personalmente me podréis encontrar el viernes 18 en el taller de
Análisis de rendimiento que organizaremos, espero veros por
allí. :)
Mirando el throughput de la red con DTRACE
mar 14 de abril del 2009
/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); } '
Entradas anteriores relacionadas:Ya soy padre
jue 02 de abril del 2009
10 verdades que todo administrador de sistemas debe tener en cuenta.
lun 19 de enero del 2009
Por favor que nadie se tome en serio ni uno de los apartados anteriores, son fruto de una tarde aburrida y mucha imaginación. ¿Tú también te aburres? ¿Cuales de ellas quitarías y cuales añadirías tú?







![Validate my RSS feed [Valid RSS]](http://validator.w3.org/feed/images/valid-rss.png)