Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Wprowadzenie do DTrace

Wprowadzenie do DTrace

Wykład dla BLUG.

Tomasz

June 06, 2009
Tweet

More Decks by Tomasz

Other Decks in Technology

Transcript

  1. Plan akcji • *ja* • czym właściwie jest DTrace •

    jak może się przydać • hands-on • SystemTap
  2. Dynamic Tracing • systemowa komisja śledcza • ( ) ★

    ★ ★ ★ ★ Euro NCAP • język D • histogramy, agregacje • Solaris (styczeń 2005), FreeBSD, Mac OS X
  3. Co można śledzić • sąsiada • wywołania systemowe • funkcje

    jądra i sterowników • wywołania I/O • żonę sąsiada • blokady
  4. Jak • koszernie #! /usr/sbin/dtrace -s syscall:::entry /pid == 1000/

    { @c[probefunc] = count(); } • perliście dtrace -n 'syscall:::entry/pid==1000/{@c[probename]=count();}'
  5. Informacja z aplikacji • USDT • coś mądrego o transakcjach

    (bazy danych) • PHP, Ruby, Python • Xen
  6. vIH legh • choQ gnochwI' • (★★★★★) DivI' NCAP •

    Hol D • ngoqDe', chel • Hov (wen 2005), FreeBSD, naHnagh OS X
  7. #pragma D option destructive BEGIN { self->interested =0; } proc:::exec-success

    /(execname =="rm") && (self->interested == 0) && (dirname(curpsinfo->pr_psargs) != " { self->interested = 1 ; printf("Someone is trying to delete %s\n",dirname(curpsinfo->pr_psargs +3)); printf("%s %d",dirname(curpsinfo->pr_psargs+3),timestamp); printf("Snapshotting %s %d",dirname(curpsinfo->pr_psargs+3),timestamp); system("/usr/sbin/zfs snapshot rpool%s@%d",dirname(curpsinfo->pr_psargs+3),times stop(); system("prun %d", pid); }
  8. Drób arktyczny • First rule of … • Second rule

    of … • http://www.crisp.demon.co.uk/blog/ • kranik • ½ roku