Profile Ruby 2.0 apps using DTrace – Part 1(crypt.codemancers.com)
crypt.codemancers.com
Profile Ruby 2.0 apps using DTrace – Part 1
http://crypt.codemancers.com/posts/2013-04-16-profile-ruby-apps-dtrace-part1/
6 comments
If anyone is interested in learning DTrace in detail, Amazon has a fairly comprehensive text:
http://www.amazon.com/DTrace-Dynamic-Tracing-Solaris-FreeBSD...
http://www.amazon.com/DTrace-Dynamic-Tracing-Solaris-FreeBSD...
I found the book's website -- it has the errata and you can download all of the scripts from the book:
http://www.dtracebook.com/index.php/Main_Page
There's another very detailed book available for free from illumos (the OpenSolaris fork):
http://dtrace.org/guide/preface.html
http://www.dtracebook.com/index.php/Main_Page
There's another very detailed book available for free from illumos (the OpenSolaris fork):
http://dtrace.org/guide/preface.html
DTrace is a great tool that doesn't get enough attention. I'm glad to see articles like this that show off the basics of how to use it.
DTrace support is also one reason I'd really like to see FreeBSD supported as a first-class platform on AWS and/or Azure. Maybe this'll be the year...
DTrace support is also one reason I'd really like to see FreeBSD supported as a first-class platform on AWS and/or Azure. Maybe this'll be the year...
thanks for your input. indeed, we are going to follow it up with some live examples.
Really great to see more articles on dtrace recently. The one feature I was missing from them all, is a way to sort and parse dtrace logs programmatically. Since dtrace can dump method calls out-of-order, some sorting is necessary to see the correct program flow.
So here's a start: dtrace-json
https://github.com/doublerebel/dtrace-json
It's in IcedCoffeeScript but could easily be adapted to Ruby or another language. I used it to debug a native iOS module for a Titanium Mobile app. HTH others as much as it did me!
So here's a start: dtrace-json
https://github.com/doublerebel/dtrace-json
It's in IcedCoffeeScript but could easily be adapted to Ruby or another language. I used it to debug a native iOS module for a Titanium Mobile app. HTH others as much as it did me!
For the JVM we have btrace (https://kenai.com/projects/btrace), which also integrates nicely with dtrace. It also has a good VisualVM plugin (http://visualvm.java.net/plugins.html).
Mono also supports DTrace on Mac OS X and FreeBSD:
http://www.mono-project.com/DTrace
http://www.mono-project.com/SGen_DTrace
http://www.mono-project.com/DTrace
http://www.mono-project.com/SGen_DTrace
btrace is a complete DTrace-like implementation for the JVM that doesn't require DTrace (but can integrate with it if you want). It allows complete runtime instrumentation of the code - you can profile specific methods, trace argument values and much more.
I don't see any info about the version they're running, commands
"dtrace -l" and
"dtrace -f write"
just fail and print the usage on my Fedora 18 (package systemtap-sdt-devel-2.1-2.fc18.x86_64). Too bad, DTrace seems interesting !
I am not sure about how well DTrace works on Fedora. What Oracle is shipping with Oracle Linux is not compatible with GPL licensing (read CDDL) and hence can't be included as it is by other Linux distributions. Having said, I will try the fedora 18 package when I get a chance and reply back here. But in the meanwhile, for best results - please try it on one of the OSes I mentioned in blog post.
Also, just to double check you are running those commands with sudo right? dtrace won't work without root access.
Also forgot to mention, I am using DTrace that ships with Mountain Lion and DTrace api version is - Sun D 1.6.2.
Also, just to double check you are running those commands with sudo right? dtrace won't work without root access.
Also forgot to mention, I am using DTrace that ships with Mountain Lion and DTrace api version is - Sun D 1.6.2.
DTrace requires support from the kernel to work. It started out in Solaris, then was ported to FreeBSD (which is why it's in Mac OS X). I don't think it's supported by Linux in general, but it appears that Oracle ported DTrace to Oracle Linux just recently: https://www.networkworld.com/news/2013/030113-oracle-ports-d...
If you want to give DTrace a try, you could try PC-BSD (the desktop version of FreeBSD) -- there are preinstalled images for VMWare, VirtualBox, etc., and live USB images if you prefer: http://www.pcbsd.org/en/download.html
If you want to give DTrace a try, you could try PC-BSD (the desktop version of FreeBSD) -- there are preinstalled images for VMWare, VirtualBox, etc., and live USB images if you prefer: http://www.pcbsd.org/en/download.html
You are using SystemTap and not DTrace. It probably has different and incompatible CLI.
oh you're certainly right ! I just queried yum for a bin/dtrace binary, got this package, and assumed dtrace was part of systemtap!
Full disclosure: I work at Big Nerd Ranch.