際際滷

際際滷Share a Scribd company logo
DTrace Totalna inwigilacja




Marcin Kula
Agenda

   Wstp
   Wprowadzenie do DTrace
   Maa przerwa
   wiczenia laboratoryjne
Kim jestem ?

   Absolwet Wydziau Elektrycznego PW
   Administrator System坦w Linux
   Moje ulubione OS
       Centos
       FreeBSD
       Solaris
Wybrane funkcjonalnoci

   Solaris         FreeBSD         Linux
       DTrace          DTrace          SystemTap
       ZFS             ZFS             Brtfs
       Zones           Jails           LXC
       ...             ...             ...
Jak zbada ...

                    Przykad
     Jzyki         Java, PHP


                    /usr/bin/*
Pliki wykonywalne

    Biblioteki      /usr/lib/*


     Syscall        man -s2


                    ZFS,TCP
     Kernel

                    disk data
     Sprzt         controller
Jak zbada ...

                    Przykad Kiedy
     Jzyki         Java, PHP    debuggers

Pliki wykonywalne   /usr/bin/*   truss -ua.out

                    /usr/lib/*
                                 apptrace,
    Biblioteki                   sotruss

     Syscall        man -s2      truss

     Kernel         ZFS,TCP      mdb

                    disk data    kstat
     Sprzt         controller
Jak zbada ...

                    Przykad Kiedy               DTrace
     Jzyki         Java, PHP    debuggers         Tak

Pliki wykonywalne   /usr/bin/*   truss -ua.out     Tak
                                 apptrace,
    Biblioteki      /usr/lib/*
                                 sotruss           Tak

     Syscall        man -s2      truss             Tak

     Kernel         ZFS,TCP      mdb               Tak

     Sprzt
                    disk data    kstat             Nie
                    controller                   (Porednio, tak)
DTrace

   Dynamiczna instrumentacja
       Nieaktywne sondy nie obni甜aj wydajnoci
   Ujednolicona instrumentacja
       ledzenie jdra i aplikacja
       ledzenie przejcia midzy warstwami
   Sondy z predykatami i akcjami
   Jzyk D wysokiego poziomu
       Podobny do awk, C
   Agregacja danych
Blok instrukcji

   Sonda
       Dostawca  modu DTrace jdra
       Modu  nazwa moduu jdra lub biblioteki
       Funkcja  nazwa funkcji zawierajcej sonde
       Nazwa  nazwa identyfikujca sonde
   Predykat  rodzaj wyra甜enia warunkowego
   Akcja  zgrupowane intrukcje jzyka D
                                syscall::openat:entry
                                / pid == 123 /
                                { trace(1); }
Dostawcy

   fbt           pid
   fsinfo        profile
   io
                  sched
                  syscall
   lockstat
                  sysinfo / vminfo
   mib
                  ...
   proc
                             # dtrace -l
Dostawcy

   pid - probes for tracing any function in a user process
       entry : arg0, arg1,  are the values of the arguments
       return: arg1 holds the return value
   fbt -probes associated with most functions in the kernel
       entry : arg0,.. are the values of the arguments
       return: arg1 holds the return value



                     fbt:::{
                       printf(%s:%s:%sn,probemod,probefunc,probename);
                     }
Dostawcy

   syscall - probes associated with system call in the system
       entry : arg0 .. argn are the arguments to the system call.
       return: both arg0 and arg1 contain the return value
       A non-zero value in the errno indicates system call failure.

                             syscall::open:entry
                             { printf("%s %s", execname, copyinstr(arg0)); }

   io - probes related to disk input and output
       probes: start, done, wait-start, wait-done
       arg[0]: bufinfo_t *, arg[1]: devinfo_t *, arg[2]: fileinfo_t *
                             io:::start { /* DEVICE, FILE, RW */
                                   printf("%10s %58s %2sn",
                                         args[1]->dev_statname,args[2]->fi_pathname,
                                         args[0]->b_flags & B_READ ? "R" : "W"); }
Dostawcy

   sched - probes related to CPU scheduling
       on-cpu, off-cpu, enqueue,..
   proc - probes pertaining to the following activities:
       process creation and termination
       LWP creation and termination
                                                proc:::exec-success
       executing new program images            {trace(curpsinfo->pr_psargs);}

       sending and handling signals
       Ex. create, exec, exit, signal-send, signal-handle
   profile - probes associated with a time-based interrupt firing
    every fixed, specified time interval
Dostawcy

   sysinfo / vminfo
         kernel statistics classified by the name sys / vm
   mib - counters in the Solaris management information bases
   ip - probes for tracing both IPv4 and IPv6 protocols.
   lockstat
         allow to understand virtually any aspect of locking behavior
   ...
Free your mind
When to use DTrace
System monitoring


   Probing kernel subsystems
       file systems
       networks
       zones
       etc.
   Collecting information from whole system
       DExplorer tool
   Tuning system and applications
When to use DTrace
Web-development


   Server-side          Tools
       Ruby                 Apache
       Java                 Glassfish
       PHP                  MySQL
       Groovy               PostgreSQL
       Perl
       Python
   Client-side
       Java-script
When to use DTrace
Software development


   Debugging
   Profiling
       Memory leaks
       Lost CPU cycles
       Function calls
       etc.
Zota myl



It needs to borrow your brain to do the thinking
                                                       Brendan Gregg




                http://blogs.oracle.com/brendan/entry/unusual_disk_latency
Wicej informacji

   Solaris Dynamic Tracing Guide
       http://download.oracle.com/docs/cd/E19082-01/819-3620/
   Wiki
       http://wikis.sun.com/display/DTrace/Documentation
   Blog tw坦rc坦w
       http://dtrace.org/blogs/
   DTrace Tools
       http://www.brendangregg.com/dtrace.html
wiczenia
laboratoryjne
Pytania




          ?
Dzikuje


Marcin Kula

More Related Content

What's hot (8)

What is Linux?
What is Linux?What is Linux?
What is Linux?
Piotr Perzyna
[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...
[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...
[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...
Future Processing
Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Semihalf
Barcamp 08/06/2010
Barcamp 08/06/2010Barcamp 08/06/2010
Barcamp 08/06/2010
Micha Gruchaa
Czym sa岬 heterogeniczne systemy mikroprocesorowe?
Czym sa岬 heterogeniczne systemy mikroprocesorowe?Czym sa岬 heterogeniczne systemy mikroprocesorowe?
Czym sa岬 heterogeniczne systemy mikroprocesorowe?
Semihalf
Python io
Python ioPython io
Python io
robert_zaremba
201105 OWASP Fuzzing interpretera PHP
201105 OWASP Fuzzing interpretera PHP201105 OWASP Fuzzing interpretera PHP
201105 OWASP Fuzzing interpretera PHP
Logicaltrust pl
MCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - DiagnosticsMCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - Diagnostics
Marcin Daczkowski
[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...
[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...
[FDD 2016] Krzysztof Bartnicki - Wszechwiat kontra programista system坦w wbud...
Future Processing
Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Jak stworzy wysokowydajny i skalowalny stos sieciowy dla 72 rdzeni CPU?
Semihalf
Barcamp 08/06/2010
Barcamp 08/06/2010Barcamp 08/06/2010
Barcamp 08/06/2010
Micha Gruchaa
Czym sa岬 heterogeniczne systemy mikroprocesorowe?
Czym sa岬 heterogeniczne systemy mikroprocesorowe?Czym sa岬 heterogeniczne systemy mikroprocesorowe?
Czym sa岬 heterogeniczne systemy mikroprocesorowe?
Semihalf
201105 OWASP Fuzzing interpretera PHP
201105 OWASP Fuzzing interpretera PHP201105 OWASP Fuzzing interpretera PHP
201105 OWASP Fuzzing interpretera PHP
Logicaltrust pl
MCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - DiagnosticsMCTS 70-536 Study Group - Diagnostics
MCTS 70-536 Study Group - Diagnostics
Marcin Daczkowski

Viewers also liked (13)

Agriculture in united kingdom.Agriculture in united kingdom.
Agriculture in united kingdom.
traververa
Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)
Christopher Haupt
Podemos1Podemos1
Podemos1
traververa
Agriculture in australiaAgriculture in australia
Agriculture in australia
traververa
Ppp Lettuce2
Ppp Lettuce2Ppp Lettuce2
Ppp Lettuce2
Mohandis
Edge new media and content 2013 v02.03 to post
Edge new media and content 2013 v02.03 to postEdge new media and content 2013 v02.03 to post
Edge new media and content 2013 v02.03 to post
Derrick Chiang
Seven centro deportivo montijo welington fabricio s叩nchez hueblSeven centro deportivo montijo welington fabricio s叩nchez huebl
Seven centro deportivo montijo welington fabricio s叩nchez huebl
traververa
Arabic Ict4 Ie Education Conf
Arabic Ict4 Ie Education ConfArabic Ict4 Ie Education Conf
Arabic Ict4 Ie Education Conf
Ahmed Hussein
Mission to Mongolia
Mission to MongoliaMission to Mongolia
Mission to Mongolia
Alex Lim
Cartoline Serie Italia Sec Xxi
Cartoline Serie Italia Sec XxiCartoline Serie Italia Sec Xxi
Cartoline Serie Italia Sec Xxi
Luigi Vimercati
Agriculture in united kingdom.Agriculture in united kingdom.
Agriculture in united kingdom.
traververa
KoLoReAk
KoLoReAkKoLoReAk
KoLoReAk
amunozlhi2008
Agriculture in united kingdom.Agriculture in united kingdom.
Agriculture in united kingdom.
traververa
Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)Metaprogramming Primer (Part 1)
Metaprogramming Primer (Part 1)
Christopher Haupt
Podemos1Podemos1
Podemos1
traververa
Agriculture in australiaAgriculture in australia
Agriculture in australia
traververa
Ppp Lettuce2
Ppp Lettuce2Ppp Lettuce2
Ppp Lettuce2
Mohandis
Edge new media and content 2013 v02.03 to post
Edge new media and content 2013 v02.03 to postEdge new media and content 2013 v02.03 to post
Edge new media and content 2013 v02.03 to post
Derrick Chiang
Seven centro deportivo montijo welington fabricio s叩nchez hueblSeven centro deportivo montijo welington fabricio s叩nchez huebl
Seven centro deportivo montijo welington fabricio s叩nchez huebl
traververa
Arabic Ict4 Ie Education Conf
Arabic Ict4 Ie Education ConfArabic Ict4 Ie Education Conf
Arabic Ict4 Ie Education Conf
Ahmed Hussein
Mission to Mongolia
Mission to MongoliaMission to Mongolia
Mission to Mongolia
Alex Lim
Cartoline Serie Italia Sec Xxi
Cartoline Serie Italia Sec XxiCartoline Serie Italia Sec Xxi
Cartoline Serie Italia Sec Xxi
Luigi Vimercati
Agriculture in united kingdom.Agriculture in united kingdom.
Agriculture in united kingdom.
traververa

Similar to DTrace (20)

PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcji
Marcin Kurzyna
Gluster FS
Gluster FSGluster FS
Gluster FS
3camp
GlusterFS
GlusterFSGlusterFS
GlusterFS
ukasz Jagieo
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Leszek Mi?
PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...
PROIDEA
100 M pakiet坦w na sekund dla ka甜dego.
100 M pakiet坦w na sekund dla ka甜dego. 100 M pakiet坦w na sekund dla ka甜dego.
100 M pakiet坦w na sekund dla ka甜dego.
Redge Technologies
PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...
PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...
PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...
PROIDEA
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
Leszek Mi?
4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...
4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...
4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...
PROIDEA
infraxstructure: Robert Mroczkowski "Maszyny si ucz - admiskie rozm坦wki p...
infraxstructure: Robert Mroczkowski  "Maszyny si ucz - admiskie rozm坦wki p...infraxstructure: Robert Mroczkowski  "Maszyny si ucz - admiskie rozm坦wki p...
infraxstructure: Robert Mroczkowski "Maszyny si ucz - admiskie rozm坦wki p...
PROIDEA
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
Kamil Grabowski
Przekierowanie strumienia danych
Przekierowanie strumienia danychPrzekierowanie strumienia danych
Przekierowanie strumienia danych
Jacek Tomczak
ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.
ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.
ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.
Semihalf
PLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek Mi
PLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek MiPLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek Mi
PLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek Mi
PROIDEA
Prezentacja Jabber
Prezentacja JabberPrezentacja Jabber
Prezentacja Jabber
bm9ib2r5
PLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domen
PLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domenPLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domen
PLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domen
PROIDEA
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
allegro.tech
Pod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczej
Pod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczejPod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczej
Pod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczej
Krzysztof Binkowski
Hierarchia pamie岬ci w systemach komputerowych.
Hierarchia pamie岬ci w systemach komputerowych.Hierarchia pamie岬ci w systemach komputerowych.
Hierarchia pamie岬ci w systemach komputerowych.
Semihalf
PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcji
Marcin Kurzyna
Gluster FS
Gluster FSGluster FS
Gluster FS
3camp
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Exatel Security Days 2017 - Niech dane pozostan z Tob! Sieciowe techniki ek...
Leszek Mi?
PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...
PLNOG19 - Jakub Sociski - Wieloprocesorowa platforma x86 a wydajny routing ...
PROIDEA
100 M pakiet坦w na sekund dla ka甜dego.
100 M pakiet坦w na sekund dla ka甜dego. 100 M pakiet坦w na sekund dla ka甜dego.
100 M pakiet坦w na sekund dla ka甜dego.
Redge Technologies
PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...
PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...
PLNOG22 - Leszek Mi - Symulacje zdarze i anomalii sieciowych jako proaktywn...
PROIDEA
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Mi@Defensive-Security.com
Leszek Mi?
4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...
4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...
4Developers 2015: Orleans - aplikacje, kt坦re skaluj i dystrybuuj si same -...
PROIDEA
infraxstructure: Robert Mroczkowski "Maszyny si ucz - admiskie rozm坦wki p...
infraxstructure: Robert Mroczkowski  "Maszyny si ucz - admiskie rozm坦wki p...infraxstructure: Robert Mroczkowski  "Maszyny si ucz - admiskie rozm坦wki p...
infraxstructure: Robert Mroczkowski "Maszyny si ucz - admiskie rozm坦wki p...
PROIDEA
Przekierowanie strumienia danych
Przekierowanie strumienia danychPrzekierowanie strumienia danych
Przekierowanie strumienia danych
Jacek Tomczak
ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.
ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.
ARM CoreSight - sprawd添, co tak naprawd robi Tw坦j SoC.
Semihalf
PLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek Mi
PLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek MiPLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek Mi
PLNOG16: Yoyo ! To my, pakiety ! Zap nas jesli potrafisz, Leszek Mi
PROIDEA
Prezentacja Jabber
Prezentacja JabberPrezentacja Jabber
Prezentacja Jabber
bm9ib2r5
PLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domen
PLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domenPLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domen
PLNOG 21: Pawe Foremski - DNS_intelligence:_czas_甜ycia_nowych_domen
PROIDEA
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o uzytkownikach allegro
allegro.tech
Pod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczej
Pod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczejPod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczej
Pod甜ajc ladami u甜ytkownika Windows elementy informatyki ledczej
Krzysztof Binkowski
Hierarchia pamie岬ci w systemach komputerowych.
Hierarchia pamie岬ci w systemach komputerowych.Hierarchia pamie岬ci w systemach komputerowych.
Hierarchia pamie岬ci w systemach komputerowych.
Semihalf

DTrace

  • 2. Agenda Wstp Wprowadzenie do DTrace Maa przerwa wiczenia laboratoryjne
  • 3. Kim jestem ? Absolwet Wydziau Elektrycznego PW Administrator System坦w Linux Moje ulubione OS Centos FreeBSD Solaris
  • 4. Wybrane funkcjonalnoci Solaris FreeBSD Linux DTrace DTrace SystemTap ZFS ZFS Brtfs Zones Jails LXC ... ... ...
  • 5. Jak zbada ... Przykad Jzyki Java, PHP /usr/bin/* Pliki wykonywalne Biblioteki /usr/lib/* Syscall man -s2 ZFS,TCP Kernel disk data Sprzt controller
  • 6. Jak zbada ... Przykad Kiedy Jzyki Java, PHP debuggers Pliki wykonywalne /usr/bin/* truss -ua.out /usr/lib/* apptrace, Biblioteki sotruss Syscall man -s2 truss Kernel ZFS,TCP mdb disk data kstat Sprzt controller
  • 7. Jak zbada ... Przykad Kiedy DTrace Jzyki Java, PHP debuggers Tak Pliki wykonywalne /usr/bin/* truss -ua.out Tak apptrace, Biblioteki /usr/lib/* sotruss Tak Syscall man -s2 truss Tak Kernel ZFS,TCP mdb Tak Sprzt disk data kstat Nie controller (Porednio, tak)
  • 8. DTrace Dynamiczna instrumentacja Nieaktywne sondy nie obni甜aj wydajnoci Ujednolicona instrumentacja ledzenie jdra i aplikacja ledzenie przejcia midzy warstwami Sondy z predykatami i akcjami Jzyk D wysokiego poziomu Podobny do awk, C Agregacja danych
  • 9. Blok instrukcji Sonda Dostawca modu DTrace jdra Modu nazwa moduu jdra lub biblioteki Funkcja nazwa funkcji zawierajcej sonde Nazwa nazwa identyfikujca sonde Predykat rodzaj wyra甜enia warunkowego Akcja zgrupowane intrukcje jzyka D syscall::openat:entry / pid == 123 / { trace(1); }
  • 10. Dostawcy fbt pid fsinfo profile io sched syscall lockstat sysinfo / vminfo mib ... proc # dtrace -l
  • 11. Dostawcy pid - probes for tracing any function in a user process entry : arg0, arg1, are the values of the arguments return: arg1 holds the return value fbt -probes associated with most functions in the kernel entry : arg0,.. are the values of the arguments return: arg1 holds the return value fbt:::{ printf(%s:%s:%sn,probemod,probefunc,probename); }
  • 12. Dostawcy syscall - probes associated with system call in the system entry : arg0 .. argn are the arguments to the system call. return: both arg0 and arg1 contain the return value A non-zero value in the errno indicates system call failure. syscall::open:entry { printf("%s %s", execname, copyinstr(arg0)); } io - probes related to disk input and output probes: start, done, wait-start, wait-done arg[0]: bufinfo_t *, arg[1]: devinfo_t *, arg[2]: fileinfo_t * io:::start { /* DEVICE, FILE, RW */ printf("%10s %58s %2sn", args[1]->dev_statname,args[2]->fi_pathname, args[0]->b_flags & B_READ ? "R" : "W"); }
  • 13. Dostawcy sched - probes related to CPU scheduling on-cpu, off-cpu, enqueue,.. proc - probes pertaining to the following activities: process creation and termination LWP creation and termination proc:::exec-success executing new program images {trace(curpsinfo->pr_psargs);} sending and handling signals Ex. create, exec, exit, signal-send, signal-handle profile - probes associated with a time-based interrupt firing every fixed, specified time interval
  • 14. Dostawcy sysinfo / vminfo kernel statistics classified by the name sys / vm mib - counters in the Solaris management information bases ip - probes for tracing both IPv4 and IPv6 protocols. lockstat allow to understand virtually any aspect of locking behavior ...
  • 16. When to use DTrace System monitoring Probing kernel subsystems file systems networks zones etc. Collecting information from whole system DExplorer tool Tuning system and applications
  • 17. When to use DTrace Web-development Server-side Tools Ruby Apache Java Glassfish PHP MySQL Groovy PostgreSQL Perl Python Client-side Java-script
  • 18. When to use DTrace Software development Debugging Profiling Memory leaks Lost CPU cycles Function calls etc.
  • 19. Zota myl It needs to borrow your brain to do the thinking Brendan Gregg http://blogs.oracle.com/brendan/entry/unusual_disk_latency
  • 20. Wicej informacji Solaris Dynamic Tracing Guide http://download.oracle.com/docs/cd/E19082-01/819-3620/ Wiki http://wikis.sun.com/display/DTrace/Documentation Blog tw坦rc坦w http://dtrace.org/blogs/ DTrace Tools http://www.brendangregg.com/dtrace.html
  • 22. Pytania ?