Oprofile
• 실행중인 프로세스의 CPU Usage를 프로파일링
• 실행중인 프로세스의 어떤 함수가 CPU 자원을 많이 사용하는지를 식별
• Database 개발자에게 자주 사용됨
• 특정 함수가 많은 자원을 사용할 경우, 프로그램은 그 함수 콜을 줄일 수 있는 방법으로 재설계될 수 있음
• CPU 사용률이 낮은 장비(I/O 바운딩 서버나 Mutex 대기와 같은)에서는 별로 쓸모가 없음
• How to use
– $ opcontrol --start (--no-vmlinux)
– 여기에서 실제 벤치마킹 수행
– $ opcontrol --dump
– $ opcontrol --shutdown
– $ opreport -l /usr/local/bin/mysqld
실행 예제
[root@TestServer:/mysql/bin]$ opcontrol --start --no-vmlinux
Using default event: CPU_CLK_UNHALTED:100000:0:1:1
Using 2.6+ OProfile kernel interface.
Using log file /var/lib/oprofile/samples/oprofiled.log
Daemon started.
Profiler running.
## ------------------------------------------------------------
## Doing benchmarking here
## sysbnech ....
## ------------------------------------------------------------
[root@TestServer:/mysql/bin]$ opcontrol --dump
[root@TestServer:/mysql/bin]$ opcontrol --shutdown
Stopping profiling.
Killing daemon.
[root@TestServer:/mysql/bin]$ opreport -l /mysql/bin/mysqld
CPU: Core 2, speed 2394.05 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples % symbol name
196 52.5469 sync_array_print_long_waits
156 41.8231 srv_lock_timeout_thread
19 5.0938 sync_array_get_nth_cell
1 0.2681 my_pthread_fastmutex_lock
1 0.2681 os_event_reset
댓글 없음:
댓글 쓰기