El comando plockstat acude en nuestra ayuda
Veíamos en el artículo anterior que con el comando lockstat
podíamos tracear
los bloqueos que se dan en nuestro sistema a nivel de kernel. Sin embargo
nuestra aplicación puede sufrir bloqueos a nivel de usuario. Estos
se crean desde el código de una aplicación usando las llamadas
mutex_init() o
rwlock_init(). Lógicamente su función es sincronizar el acceso
de los distintos threads a determinados recursos.
OpenSolaris nos permite tracear los dichos bloqueos con el comando plockstat,
usa dtrace internamente, de forma que podemos medir el impacto en la
performance. En la página man encontraremos explicadas las distintas
opciones, nosotros usamos las opciones -A para que nos reporte todos los
eventos, con la opción -p podemos monitorizar a un pid existente.
plockstat -A cat /etc/passwd
[...]
Mutex hold
Count nsec Lock Caller
1 70200 libc.so.1`_uberdata+0xfc0 cat`_start+0x110
1 40900 libc.so.1`__sbrk_lock libc.so.1`_smalloc+0x4c
1 39400 libc.so.1`_uberdata+0x40 LM1`ld.so.1`call_init+0x70
1 34300 libc.so.1`_uberdata+0x40 LM1`ld.so.1`call_init+0x70
1 27600 libc.so.1`_uberdata+0xfc0 cat`_start+0xac
1 24700 libc.so.1`_uberdata+0x40 cat`main+0x24
1 23100 libc.so.1`_uberdata+0x40 cat`main+0x24
1 4900 libc.so.1`_uberdata+0xfc0 cat`_start+0xb8
La salida es casi autoexplicativa:
- Count: número de veces que se ha producido el evento
- nsec: duración media en nanosegundos del bloqueo
- Lock: nombre del bloqueo
- Caller: función mas offset que ha llamado al bloqueo.
Estos datos pueden ser de una gran ayuda para que nuestros desarrolladores
mejoren la performance de sus aplicaciones.
Posted by Roger Jordan
| Categories:
Opensolaris
Warning: fopen(/datafiles/www/blog/nanotest/htdocs/komm/comments.txt) [
function.fopen]: failed to open stream: Permission denied in
/datafiles/www/blog/nanotest/htdocs/komm/module/blogkomm_show_link.php on line
29
Añadir Comentarios, Total: 0