准备:
下载最新的dtrace for linux的源包
到这个ftp下找一个最新版本,下载,解压
先看一下readme,有关于作者的信息,我贴一下相关信息,以表达对作者的尊敬
Linux port of DTrace
June 2009
Paul D. Fox
fox@crisp.demon.co.uk
http://www.twitter.com/crispeditor
http://www.crisp.demon.co.uk
Blog – latest news and stuff about the dtrace project:
http://www.crisp.demon.co.uk/blog/
Download dtrace tarballs for linux here:
ftp://crisp.dynalias.com/pub/release/website/dtrace
安装/install
1:make all
报错:
1
2
3
4
5
6
| BUILD_DIR=build-2.6.28-11-generic tools/build.pl build-2.6.28-11-generic `uname -m`
Sorry - but I cannot find bison or yacc on your system.
You may need to install more packages. See utils/get-deps.pl
for a script to semi-automate this for you.
Continue ? [y/n] n
make: *** [all] 错误 1 |
事实上,utils/get-deps.pl并不存在,而tools目录下是有,而这个脚本就是用来在ubuntu下install dtrace的,于是
tools/get-deps.pl
你可以看一下这个脚本,其实就是一个安装脚本,他会下载dtrace的一个源包,然后在安装一些依赖的包
1
2
| sudo apt-get install zlib1g-dev flex bison \
elfutils libelf-dev libc6-dev linux-libc-dev |
在http://khushildep.blogspot.com这个blog上,也指出了ubuntu要安装的包,当然要看到这个blog得翻墙
sudo apt-get install zlib1g-dev bison flex libelf-dev
再次make all,ok了
2: sudo make install
3: sudo make load
安装完成!!!
4: 接下来验证一下dtrace是否可用
先启一个java程序
然后shell中执行:
dtrace -n ‘syscall::read:entry /execname == “java”/ { jstack(); }’
输出:
1
2
3
4
5
6
7
8
9
10
11
12
| dtrace: description 'syscall::read:entry ' matched 1 probe
CPU ID FUNCTION:NAME
0 257149 read:entry
aux[0]: type=32
aux[1]: type=33
aux[2]: type=16
aux[3]: type=6
aux[4]: type=17
aux[5]: type=3
.
.
. |
5:下面的地址是dtrace和java的相关资料,可作为入门学习用
http://www.solarisinternals.com/wiki/index.php/DTrace_Topics_Java
1:apache
A: 下载 httpd-2.2.9.tar.bz2
B: bunzip2 httpd-2.2.9.tar.bz2
C: tar -xvf httpd-2.2.9.tar
D: 进入httpd-2.2.9,执行安装
a: $ ./configure –prefix=/usr/local/install/httpd-2.2.9 –enable-rewrite
b: $ make
c: $ make install
2:mod_jk
A: wget http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.26/tomcat-connectors-1.2.26-src.tar.gz
B: tar -zxvf tomcat-connectors-1.2.26-src.tar.gz
C: 进入目录,执行编译
a: ./configure –with-apxs=/usr/local/install/httpd-2.2.9/bin/apxs
b: make
c: cp apache-2.0/mod_jk.so ../../../install/httpd-2.2.9/modules/
3:jdk
A: 下载包安装包:jdk-6u7-linux-x64.bin
B: 进入install目录,执行 ./../software/jdk-6u7-linux-x64.bin
4: jai安装
A: wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64-jdk.bin
wget http://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-amd64-jdk.bin
B: 进入jdk安装目录,/usr/local/install/jdk1.6.0_07
执行: ../../software/jai-1_1_3-lib-linux-amd64-jdk.bin
结果:inflating: COPYRIGHT-jai.txt
inflating: DISTRIBUTIONREADME-jai.txt
inflating: LICENSE-jai.txt
inflating: THIRDPARTYLICENSEREADME-jai.txt
inflating: UNINSTALL-jai
inflating: jre/lib/amd64/libmlib_jai.so
inflating: jre/lib/ext/jai_core.jar
inflating: jre/lib/ext/jai_codec.jar
inflating: jre/lib/ext/mlibwrapper_jai.jar
执行:../../software/jai_imageio-1_1-lib-linux-amd64-jdk.bin
报错: Unpacking…
tail: cannot open `+215′ for reading: No such file or directory
Checksumming…
1
The download file appears to be corrupted. Please refer
to the Troubleshooting section of the Installation
Instructions on the download page for more information.
Please do not attempt to install this archive file.
网上找了一下:http://forums.java.net/jive/thread.jspa?messageID=278462
执行: vi -b ../../software/jai_imageio-1_1-lib-linux-amd64-jdk.bin
修改: tail +215 $0 > $outname 为 tail -n +215 $0 > $outname
再执行:../../software/jai_imageio-1_1-lib-linux-amd64-jdk.bin
结果:inflating: COPYRIGHT-jai_imageio.txt
inflating: DISTRIBUTIONREADME-jai_imageio.txt
inflating: ENTITLEMENT-jai_imageio.txt
inflating: LICENSE-jai_imageio.txt
inflating: THIRDPARTYLICENSEREADME-jai_imageio.txt
inflating: UNINSTALL-jai_imageio
inflating: jre/lib/amd64/libclib_jiio.so
inflating: jre/lib/ext/jai_imageio.jar
inflating: jre/lib/ext/clibwrapper_jiio.jar