안녕하세요.
아래의 문제의 원인을 찾기 위한 다른 방법으로 커널 프로파일링을 해보고자 합니다.
커널을 프로파일링하면 어떤 어플리케이션이든 함께 프로파일링 할 수 있기 때문에
프로세스 실행시 어떤 부분이 문제가 있는지 좀 더 명확히 파악 할 수 있을 것 같아서요.
그래서 좀 적합한 툴이 없나 찾아 보고 있는데 프로파일링 해서 얻을 정보는
함수별 응답시간입니다.
좀 좋은 툴이 없을까요?
Kernel function instrumentation (KFI) 구글에서 찾으면 많은 정보가 나오는데
이 툴은 어떨지 프로파일링 방식에 있어서 신뢰성 있는 데이터가 나올지
조언을 듣고 싶습니다. ^_^
아래의 문제의 원인을 찾기 위한 다른 방법으로 커널 프로파일링을 해보고자 합니다.
커널을 프로파일링하면 어떤 어플리케이션이든 함께 프로파일링 할 수 있기 때문에
프로세스 실행시 어떤 부분이 문제가 있는지 좀 더 명확히 파악 할 수 있을 것 같아서요.
그래서 좀 적합한 툴이 없나 찾아 보고 있는데 프로파일링 해서 얻을 정보는
함수별 응답시간입니다.
좀 좋은 툴이 없을까요?
Kernel function instrumentation (KFI) 구글에서 찾으면 많은 정보가 나오는데
이 툴은 어떨지 프로파일링 방식에 있어서 신뢰성 있는 데이터가 나올지
조언을 듣고 싶습니다. ^_^
댓글 6
-
태훈
2008.12.19 13:53
-
태훈
2008.12.19 13:55
저도 예전에 써본적이 없는 것들인데...
덕분에 재밌는 툴을 익히게 되는군요.^^ -
원민수
2008.12.19 17:38
linux라면, oprofile이 있습니다. 저도 잠깐 봐본것이라 자세히 말씀 드릴 수는 없지만, 일단, kernel, Application 둘다 profiling이 가능했던 것으로 기억하네요. -
허경탁
2008.12.20 21:22
안녕하세요? ^^;;
oprofiler를 사용하시면, application과 kernel 둘 다 프로파일링이 가능합니다. application을 프로파일링 하실려면 kernel의 vmlinux이미지의 심볼을 넣어주셔야합니다. 이게 embedded 용으로 사용하기엔 용량이 너무 크더군요.
Embedded 환경이시라면, T32이나 ETM Tracer로 확인하시면 가장 확실하게 하실 수 있습니다. ETM은 별도의 핀 포트를 뽑아야 하고 장비가 비싸므로 실질적으로 해 보기에는 적합하지 않습니다. T32를 사용하시면, 짧은 시간 동안만 프로파일링하실 수 있는데, 4MB정도의 T32 버퍼에 들어가는 정도로 프로파일링이 가능합니다..
oprofiler를 사용하시면, ARMv6까지는 지원이 되는데, ARMv7도 지원이 되는지 모르겠네요. 마지막으로 oprofiler 사용해 본 것이 2.6.25였는데, 지금은 추가되었는지도 모르겠습니다. ARM core architecture 메뉴얼대로 조금만 바꿔주시면 v7도 사용할 수 있습니다...
결국엔 GNU tool과 외부 Hardware Debugger를 사용했을 경우의 프로파일링 문제인데, GNU tool을 사용할 경우에 stack frame을 정확하게 못 잡아서 프로파일링에 실패하는 경우도 있었습니다. -
이창만
2009.01.20 09:13
systemtap, kprobe 도 디버깅에 도움이 될거 같습니다. -
송선희
2009.03.07 23:26
많은 답변에 너무나도 감사드려요~~~
Oprofiler는 사용은 해봤는데 뭔가 원하는 결과를 얻지 못했습니다.
제가 사용법을 몰라서 그런지 병목현상이 일어나는 부분을 메소드 단위로 알고 싶은데 공유라이브러리는 제대로 결과가 나오지를 안더라구요.
(dlopen을 사용하는 공유라이브러리)
systemptap은 처음 들어 보는 거네요. 한번 시도를 해봐야겠어요.
.
http://kldp.org/node/32606
위 링크를 참고하세요. 원하시는 함수별 수행 시간이 나오는군요.
자바는
target=_blank>http://www.ulfdittmer.com/profileviewer/index.html
이걸 써서 프로파일링 하시면 될것같네요.