본문 바로가기
IT 이야기/Android

[성능분석] systrace 개요

by KaySeo 2020. 9. 15.
반응형

systrace는 Android system의 성능을 분석할 때 사용되는 툴 중 하나입니다. systrace의 경우 CPU scheduler, Disk 정보, Process / Thread 정보와 함께 Android kernel 정보를 시간의 흐름에 따라 비주얼 하게 보여주기 때문에 Android system 및 Process 에 대한 전반적인 상황을 분석하는 데 유용합니다. 특히 CPU schedule 및 irq 정보를 전체적으로 볼 수 있어 화면 버벅거림이나 음성의 끊어짐 같은 현상을 분석하고 개선하는 데 많이 사용되고 있습니다.

 

systrace 명령으로 정보를 HTML 형식으로 추출하면 Chrom 브라우저를 통해 아래와 같이 시스템의 성능 정보를 확인할 수 있습니다.

Android developer 사이트에서 제공하는 샘플 systrace 보고서

systrace를 사용하려고 developer 사이트를 접속하면 atrace, ftrace와 같은 새로운 용어들을 접하게 되는데요. systrace의 이해를 돕기 위해 이와 같은 용어가 무엇을 의미하는 지 알아보고 나서 사용방법을 공부해볼까 합니다.

 

먼저 ftrace 는 리눅스 커널에서 제공하는 profile tool 중의 하나로 이를 이용하면 Interrupt나 Scheduling과 같은 커널 내부의 동작을 trace 할 수 있습니다.

 

atrace는 Android framework (frameworks/native/cmds/atrace)에서 제공하는 native android bin으로 ftrace 를 Android 에서 사용하기 위한 확장 Tool 입니다. atrace를 이용하면 Android Platform 에 추가한 trace 정보뿐만 아니라 ftrace를 통해 Kernel의 trace 정보도 가져올 수 있기 때문에 Android system에 대한 전반적인 디버깅을 가능하게 해줍니다. 특히나 ftrace를 사용하려면 sysfs node에 복잡한 설정을 해야 하는데 이를 간단하게 할 수 있도록 해줍니다. 

adb를 이용하여 atrace를 실행할 수 있으며, 명령어의 사용방법은 adb shell에서 "atrace --help"를 하시면 확인할 수 있습니다.

 

systrace는 Host computer에서 실행시키는 python script로, adb 명령어를 통해 atrace를 실행시키고 atrace를 통해 가져온 output 파일을 Catapult라는 Tool을 이용해서 HTML 파일로 변환해주는 Tool 입니다.

 

참고자료

developer.android.google.cn/studio/profile/systrace.html?hl=ko

source.android.google.cn/devices/tech/debug/systrace?hl=ko

www.kernel.org/doc/Documentation/trace/ftrace.txt

반응형