2012-07-12 26 views
5

我正在使用OPROFILE收集一些性能数据。 但我得到了麻烦。OPROFILE无法获得性能数据

这里是我的外壳:

~ # rm -f /root/.oprofile/daemonrc 
~ # opcontrol --setup --no-vmlinux 
~ # opcontrol --init 
~ # opcontrol --reset 
~ # opcontrol --start 
~ # opcontrol --status 

Daemon running: pid 14909  
Separate options: none 
vmlinux file: none  
Image filter: none  
Call-graph depth: 0 

~ # opcontrol --shutdown 

Stopping profiling. 
Killing daemon. 

~ # opreport 

error: no sample files found: profile specification too strict? 

~ # tree /var/lib/oprofile/ 

/var/lib/oprofile/ 
├── abi 
├── complete_dump 
├── jitdump 
├── opd_pipe 
└── samples 
    ├── current 
    │ └── stats 
    │  ├── bt_lost_no_mapping 
    │  ├── cpu0 
    │  │ ├── backtrace_aborted 
    │  │ ├── sample_invalid_eip 
    │  │ ├── sample_lost_overflow 
    │  │ └── sample_received 
    │  ├── event_lost_overflow 
    │  ├── multiplex_counter 
    │  ├── sample_lost_no_mapping 
    │  └── sample_lost_no_mm 
    └── oprofiled.log 


5 directories, 13 files 

~ # dmesg |grep oprofile 

oprofile: using NMI interrupt. 


~ # uname -a 

Linux localhost.localdomain 2.6.32-220.4.2.el6.x86_64 #1 SMP Tue Feb 14 04:00:16 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux 

~ # cat /proc/cpuinfo 

processor : 0  
vendor_id : GenuineIntel 
cpu family : 6  
model  : 44  
model name : Intel(R) Xeon(R) CPU   E5620 @ 2.40GHz 
stepping : 2  
cpu MHz  : 2400.085 
cache size : 12288 KB 
fpu  : yes  
fpu_exception : yes  
cpuid level : 11  
wp  : yes 
flags  : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat epb dts  
bogomips : 4800.17  
clflush size : 64 
cache_alignment : 64 
address sizes : 40 bits physical, 48 bits virtual 
power management: 
+0

什么是你真正剖析,虽然?您的脚本刚启动,然后立即停止分析器。 – alk 2012-07-12 14:26:34

+0

我开始oprofile然后运行我的应用程序(不包括在我的脚本) – Terry 2012-07-17 10:01:06

+0

这是RHEL6(或派生的分布,如CentOS)? – 2013-07-11 10:24:09

回答

0

我遇到了在基于RHEL6分布类似的问题。在某个时候,我开始使用perf,我能够获得分析器报告和注释源代码。

1

某些CPU类型不提供所需的hardware support以使用硬件性能计数器。 在这些机器上,OProfile退回到使用timer interrupt for profiling,回到使用实时时钟中断来采集样本。

您可以通过使用timer = 1模块参数强制使用定时器中断。如果OProfile是作为内核模块构建的,那么您必须使用modprobe命令传递'timer = 1'参数。执行“opcontrol --init”之前执行此操作或编辑modprobe的的opcontrol命令的调用传递“定时器= 1”参数

modprobe oprofile timer=1

然后继续你的分析过程