본문 바로가기

programmer/Linux 기본

Ftrace Linux 기본 사용법

Linux의 스케줄링, 메모리, 지연 정보를 확인하고 싶을때는 unix, linux 모두에 포함되어있는 Ftrace 를 사용하면 쉽다.

정말 간단한 예제 하나만 따라 해보고 나머지는 응용해서 확인해 보자.

 

1. 라이브러리 위치

이미 커널에 삽입되어 배포 되므로 하기 위치로 이동해서 기능을 활성/비활성화 해서 사용할 수 있다.

$cd /sys/kernel/debug/tracing

ftrace 라이브러리 파일들

2. ftrace 설정하기

ftrace는 다양한 종류의 메시지를 로깅한다. filter 설정을 통해 원하는 내용만 trace 할 수 있다.

 

2.1 설정되어 있는 filter 확인

$ cat set_ftrace_filter

#### all functions enabled ####

2.2 'sched~'로 시작하는 filter 설정하기

$ echo schedule_tail >> set_ftrace_filter

$ cat set_ftrace_filter schedule_tail

$ echo 'sched*' > set_ftrace_filter

$ cat set_ftrace_filter
schedule_on_each_cpu 
sched_feat_open 
sched_feat_show 
(…)

 

3. Tracer 설정하기

기본값으로는 아무 설정도 되어 있지 않다. 그래서 원하는  tracer 를 선택해서 설정해주어야 한다.

  • function: 임의의 기간동안 커널 내부 함수의 호출관계를 분석
  • function_graph: 그래프 형식의 함수 관계 분석
  • wakeup, wakeup_dl, wakeup_rt: wake up latency 분석
  • mmiotrace: 메모리 맵의 I/O에 대한 분석
  • irqsoff: interrupt latency 분석
  • nop: 디버깅 기능 off

3.1 tracer 확인

$cat current_tracer
:: nop

3.2 tracer 설정

$echo 'function' > current_tracer

3.3 설정된 tracer 확인

$cat current_tracer
:: function

4.4 trace 확인

이제 함수가 sched로 시작하고 'function' trace 설정된 값을 로깅할 것이다.

$cat trace | head -30

파일로 저장하고 싶을 때

$cat trace | head -30 | cat > ~/tracelog.txt

 

 

참조 링크

반응형
사업자 정보 표시
라울앤알바 | 장수호 | 서울특별시 관악구 봉천로 13나길 58-10, 404호(봉천동) | 사업자 등록번호 : 363-72-00290 | TEL : 010-5790-0933 | Mail : shjang@raulnalba.com | 통신판매신고번호 : 2020-서울관악-0892호 | 사이버몰의 이용약관 바로가기

'programmer > Linux 기본' 카테고리의 다른 글

Linux 사용중인 Port 확인  (0) 2020.10.12
QT creator 에서 pthread 사용 방법  (0) 2020.10.06
ubuntu 폴더 및 파일 권한 변경  (0) 2020.09.11
ubuntu json-c 설치  (0) 2020.09.11
ubuntu Swig 설치  (0) 2020.09.11