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

Wprowadzenie do DTrace

Avatar for Tomasz Tomasz
June 06, 2009

Wprowadzenie do DTrace

Wykład dla BLUG.

Avatar for Tomasz

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