22
DTrace OpenSource Data Center Conference Johannes Schlüter, Sun Microsystems <[email protected]> Nürnberg, 30. April 2009

DTrace - netways.de · DTrace, MUCOSUG DTrace Eigenschaften Kein Effekt wenn deaktiviert Beliebig (“arbitrary”) nutzbar Datenintegrität Skalierbar Skriptbarkeit Benutzerdefinierte

Embed Size (px)

Citation preview

DTraceOpenSource Data Center Conference

Johannes Schlüter, Sun Microsystems<[email protected]>

Nürnberg, 30. April 2009

DTrace, MUCOSUG

Systemanalyse

Que

lle: u

nbek

annt

DTrace, MUCOSUG

Debugger?

gdb

dbx

Foto: Klaus Schön

DTrace, MUCOSUG

Tracing

trussstrace

mpstatvmstat....

Foto: Thom “minifig” B.

DTrace, MUCOSUG

DTrace!

Foto: Mart

in De

ák

DTrace, MUCOSUG

DTrace EigenschaftenKein Effekt wenndeaktiviertBeliebig (“arbitrary”)nutzbarDatenintegritätSkalierbarSkriptbarkeit

Benutzerdefinierte VariablenAggregation von Daten

...

DTrace, MUCOSUG

Architektur

userlandkernel

DTrace

syscall fbtpid ....

dtrace(7d)

libdtrace(3LIB)

dtrace(1M) plockstat(1M)

lntstat(1M)b.da.d

DTrace scripts

DTrace basierte Tools

Provider

DTrace, MUCOSUG

Wo?

100% OpenSource, CDDL

Solaris 10OpenSolarisFreeBSDMacOS XLinux?

ftp://crisp.dynalias.com/pub/release/website/dtrace/

DTrace, MUCOSUG

Wer?

dtrace_proc – dtrace_user – dtrace_kernel

Foto

: Jen

s Fe

rner

DTrace, MUCOSUG

Sonden (Probes)

provider:modul:funktion:name

Foto

: Ser

gei G

olys

hev

DTrace, MUCOSUG

Providerfunction boundary tracingsyscallpidprofileioschedvminfoproc...

Foto

: Nic

k K

ocha

rhoo

k

DTrace, MUCOSUG

Syscall Provider

$ dtrace -n 'syscall:::entry'

DTrace, MUCOSUG

Aggregation

#!/usr/sbin/dtrace -s

syscall:::entry { @[execname, probefunc] = count();}

DTrace, MUCOSUG

Prädikatlogik

$ dtrace -n 'syscall:::entry/execname==”Xorg”/{}'

DTrace, MUCOSUG

pid provider

#!/usr/sbin/dtrace -s

pid$target::malloc:entry{ @ = quantize(arg0);}

DTrace, MUCOSUG

Programmablauf

#!/usr/sbin/dtrace -s

#pragma D option flowindent

pid$target:::entry,pid$target:::return{}

DTrace, MUCOSUG

Wo samma denn?

#!/usr/sbin/dtrace -s

syscall::read:entry/execname==”Xorg”/{ @[ustack()] = count();}

DTrace, MUCOSUG

Statische Sonden

#!/usr/sbin/dtrace -smysql*:::query-start { self->start = timestamp; printf("%s", copyinstr(arg0));}

mysql*:::query-done { this->duration = timestamp – self->start; @=quantize(this->duration); printf(" (%i ns)\n", this->duration);}

DTrace, MUCOSUG

GUI? - Chime

http://opensolaris.org/os/project/dtrace-chime

DTrace, MUCOSUG

Sun Storage 7000

http://blogs.sun.com/brendan/entry/unusual_disk_latency

http://blogs.sun.com/brendan/entry/heat_map_analytics

DTrace, MUCOSUG

Weitere InformationenOpenSolaris DTrace Community http://opensolaris.org/os/community/dtrace/

DTrace Toolkithttp://opensolaris.org/os/community/dtrace/dtracetoolkit/

Solaris Big Adminhttp://www.sun.com/bigadmin/content/dtrace/

Bryan Cantrill, DTrace reviewhttp://video.google.com/videoplay?docid=-8002801113289007228

DTrace, MUCOSUG pg 22

Danke für die Aufmerksamkeit!

Fragen?

?Johannes Schlüter <[email protected]>