2012-07-12 20 views
5

Używam OPROFIL, aby zebrać dane o wydajności. , ale wpadłem w tarapaty.OPROFILE nie może uzyskać danych o wydajności

Oto moja skorupa:

~ # 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

Co ty właściwie profilowania chociaż ? Twój skrypt właśnie się uruchamia, a następnie natychmiast zatrzymuje profilera. – alk

+0

uruchamiam oprofile, a następnie uruchamiam moją aplikację (nie zawartą w moim skrypcie) – Terry

+0

czy to jest RHEL6 (lub wyprowadzona dystrybucja, taka jak CentOS)? –

Odpowiedz

0

wpadłem na podobny problem w sprawie podziału RHEL6 bazie. W pewnym momencie zacząłem używać perf, dzięki któremu mogłem uzyskać raporty profilera i opatrzony komentarzem kod źródłowy.

1

Niektóre typy procesorów nie zapewniają wymaganego hardware support do używania liczników wydajności sprzętowej. Na tych maszynach, OProfile wraca do korzystania z timer interrupt for profiling, z powrotem do korzystania z przerywania zegara w czasie rzeczywistym do zbierania próbek.

można wymusić użycie przerwania timera za pomocą timera = 1 parametr modułu.Jeśli OProfile został zbudowany jako moduł jądra, musisz przekazać parametr "timer = 1" za pomocą polecenia modprobe. Czy to przed wykonaniem „--init opcontrol” lub edytować wezwanie na komendy opcontrol za modprobe aby przekazać parametr „Timer = 1”

modprobe oprofile timer=1

Następnie kontynuować swoją procedura profilowanie

Powiązane problemy