2009년 10월 8일 목요일

Linux Trace Toolkit

LTT(Linux trace toolkit)은 process들의 운영서 발생하는 event,signal 등등의 정보를 나타내게 하는 toolkit이다. 다음은 toolkit이 수행이 일어나는 부분이다.
1.Kernel내에서 log을 위해 event가 발생할때
2. kernel에서 event를 buffer에 저장할때
3. signal발생할때

실행 방법 :1. 만약 kernel에 LTT patch되어 있지 않다면 "ltt-0.9.x-xxx.tar.bz2"다운받아 patch
(패치 방법)
1-1. /usr/src/linux
patch -p1 -dry-run < /usr/src/ltt/ltt-0.x.x/Patches/ltt-linux-2.x.x.patch 수행시 문제 없으면.
patch -p1 < /usr/src/ltt/ltt-0.x.x/Patches/ltt-linux-2.x.x.path수행하여 patch를 적용한다.
2. LTT patch를 위해서는 relayfs 설정도 필요하다.
3. make xconfig
4. "Kernel hacking"에서
"Kernel events tracing support"를 "y"로 선택
5. build
6. LTT package설정된것은 아래 명령을 통해 확인 가능하다.
rpm -qf /usr/bin/trace 하게 되면 -qt는 설치된 LTT package 버젼을 볼수 있다.
7. 설치된 이후, 아래와 같은 명령을 수행할 수 있게 된다.
  • tracedaemon : user space daemon이며 kernel과 communcate한다.
  • tracevisualizer는 그래픽 trace file viewer이다.
8. data를 collection하기 전에 relayfs file system을 반드시 mount해야 한다.
#mount -t relayfs nodev /mnt/relay
9. 여러 helper script들은 trace daemon을 시작하고 멈출 수 있다.
  • trace [seconds] [filename] : trace 결과는 2개의 파일들에 저장된다.:filename.trace(trace data를 저장), filename.proc(/proc information을 저장)
  • tracecpuid [seconds][filename] : trace와 동일하나, CPU identification 정보가 추가된다.
  • traceu filename : trace daemon이 죽을때까지 activate된다. 그리고 정보는 trace와 같은 파일에 저장된다.
10. 수행 방법
tracer가 module로 build된다면, "modprobe tracer"명령을 수행해야 하며, 그렇지 않고 kernel에 build가 되어있다면 이 과정은 필요 없다.
이후 , "trace [시간] [ 파일 이름] ex) trace 20 trace1와같이 수행 하면 된다.


참고 : Debugging and Performance Tuning Chapter 9