環境
- CPU: Core2Duo 6420 (2.13GHz)
- OS: Linux Ubuntu 8.04 LTS (hardy)
- kernel: linux-2.6.24-16-server
- oprofile: 0.9.3-1.1ubuntu2
- VMware: VMware server 2 beta2
VMware server 2beta2を走らせているhostOS上で、以下の手順でoprofileを実行しました。
<設定の確認>
# opcontrol --status
Daemon not running
Event 0: CPU_CLK_UNHALTED:100000:0:1:1
Separate options: none
vmlinux file: none
Image filter: none
Call-graph depth: 0
<oprofiledの起動>
# opcontrol --start
Using 2.6+ OProfile kernel interface.
Using log file /var/lib/oprofile/samples/oprofiled.log
Daemon started.
Profiler running.
<カウンタをreset>
# opcontrol --reset
<調査プロセスの実行>
% ./a.out
<サンプルデータの保存>
# opcontrol --dump
<レポートの表示>
# opreport
opreport error: No sample file found: try running opcontrol --dump
or specify a session containing sample files
<oprofiledをkill>
# opcontrol --shutdown
こんな感じでサンプルデータをとることができませんでした。
いろいろ試行錯誤の結果、
# /etc/init.d/vmware stop
を実行してvmware serverプロセスを落としたらサンプルデータがとれて、opreportで期待したものがとれるようになりました。
# opreport -l
CPU: Core 2, speed 2133.36 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) coun
t 100000
samples % image name app name symbol name
157027 58.8134 no-vmlinux no-vmlinux (no symbols)
29359 10.9962 python2.5 python2.5 (no symbols)
17135 6.4178 perl perl (no symbols)
9006 3.3731 bash bash (no symbols)
7953 2.9787 mysqld mysqld (no symbols)
2698 1.0105 libc-2.7.so libc-2.7.so _dl_addr
2680 1.0038 ld-2.7.so ld-2.7.so do_lookup_x
2590 0.9701 libc-2.7.so libc-2.7.so _int_malloc
2367 0.8865 libc-2.7.so libc-2.7.so strncpy
1851 0.6933 libsensors.so.4.0.0 libsensors.so.4.0.0 (no symbols)
1572 0.5888 ld-2.7.so ld-2.7.so strcmp
1548 0.5798 ld-2.7.so ld-2.7.so _dl_relocate_object
1250 0.4682 libc-2.7.so libc-2.7.so memcpy
1233 0.4618 oprofiled oprofiled (no symbols)
1140 0.4270 libc-2.7.so libc-2.7.so mbrtowc
.
.