===== Erste Schritte mit dtrace unter Linux 7 ===== Nach dem meine 12c Cluster Installation beim Anlegen des Cluster Service mit einem unbekannten Fehler scheitert, muss ich nun wohl oder übel tiefer das System untersuchen. Dtrace soll sich dafür ideal eignen. Mehr dazu: * https://blogs.oracle.com/wim/entry/trying_out_dtrace * http://www.tablespace.net/quicksheet/dtrace-quickstart.html * http://www.oracle.com/technetwork/articles/servers-storage-dev/dtrace-on-linux-1956556.html * http://www.hhutzler.de/blog/using-dtrace/ * http://www.hhutzler.de/blog/troubleshooting-clusterware-startup-problems-dtrace/#first-dtrace-steps ====Oracle Linux und dtrace==== In einen ersten Test pürfen ob im Public Yum von Oracle Linux 7 evlt. in der Version 7 ein dtrace enthalten ist: Oracle Linux 7: #was ist bereits installiert: yum list | grep dtrace ... dtrace-modules-3.8.13-35.3.1.el7uek.x86_64 ... #Tools installieren yum install dtrace-utils #nicht gefunden .-( ## leider => aus der Doku: # The DTrace dtrace-utils package is available from ULN. # Your system must be registered with ULN and be # installed with or be updated to Oracle Linux Release 6 Update 4 or later or Oracle Linux 7. Doku: * http://docs.oracle.com/cd/E37670_01/E50705/E50705.pdf * http://docs.oracle.com/cd/E37670_01/E50705/html/ol_config_dtrace.html Leider ist dtrace in der Standard Variante von Oracle Linux nicht verfügbar! ==== dtrace für Linux in der freien Variante unter Oracle Linux einsetzen ==== Alternativ gibt es die freie Version hier: * https://github.com/dtrace4linux/linux #alles als der user root #OS update, damit später die nachzuinstallierenden Libs dazupassen yum update #Reboot falls eine neuer Kernel eingepielt wird! ######### mkdir /srv/dtrace yum install git cd /srv git clone "https://github.com/dtrace4linux/linux.git" dtrace cd dtrace ./get-deps-fedora.sh Nachinstalliert wird bei meinem System: binutils-devel bison crash elfutils-devel elfutils-libelf-devel flex kernel-devel libdwarf zlib-devel m4 #### cd /srv/dtrace make all => Bricht leider gleich mal mit einem Fehler ab .... ================================================================= === You need /usr/lib/libdwarf.a or /usr/lib64/libdwarf.a === (libdw is not yet supported) to build. === === apt-get install binutils-dev === apt-get install libdw-dev ... /lib/modules/3.8.13-55.1.5.el7uek.x86_64/build does not exist yum install binutils-devel Package binutils-devel-2.23.52.0.1-30.el7.x86_64 already installed and latest version yum install libdwarf Package libdwarf-20130207-4.el7.x86_64 already installed and latest version #hmm yum install kernel-uek-devel yum install dtrace-modules make all # ein Schritt weiter nächster Fehler: /srv/dtrace/build-3.8.13-55.1.8.el7uek.x86_64/driver/../../uts/common/sys/sdt.h:209:16: error: redefinition of 'struct sdt_probedesc' typedef struct sdt_probedesc { In file included from /srv/dtrace/build-3.8.13-55.1.8.el7uek.x86_64/driver/sdt_linux.c:42:0: /srv/dtrace/build-3.8.13-55.1.8.el7uek.x86_64/driver/../../uts/common/sys/sdt.h:213:3: error: conflicting types for 'sdt_probedesc_t' } sdt_probedesc_t; # Da passt wohl etwas nicht so recht zusammen ..... make install make load Leider läßt sich das so nicht mit dem Oracle Kernel übersetzen ... =====Alternative SystemTap===== Bei Fedora und RedHat Linux als RPM verfügbar Vergleich zu dtrace * https://sourceware.org/systemtap/wiki/SystemtapDtraceComparison * https://blogs.oracle.com/ahl/entry/dtrace_knockoffs Overview und Einsatz: * https://sourceware.org/systemtap/index.html * http://neependra.net/kernel/Systemtap-I.pdf * http://www.linuxtopia.org/online_books/rhel6/rhel_6_systemtap_guide/ * http://dtrace.org/blogs/brendan/2011/10/15/using-systemtap/ Oracle and SystemTap: * http://db-blog.web.cern.ch/blog/luca-canali/2014-09-systemtap-oracle * http://www.pythian.com/blog/troubleshooting-ora-27090-async-io-errors/