Linux의 스케줄링, 메모리, 지연 정보를 확인하고 싶을때는 unix, linux 모두에 포함되어있는 Ftrace 를 사용하면 쉽다.
정말 간단한 예제 하나만 따라 해보고 나머지는 응용해서 확인해 보자.
1. 라이브러리 위치
이미 커널에 삽입되어 배포 되므로 하기 위치로 이동해서 기능을 활성/비활성화 해서 사용할 수 있다.
$cd /sys/kernel/debug/tracing
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 |