CS/운영체제
[OS] strace기반 시스템 콜 관찰하기
yoon_seon
2023. 9. 7. 14:47
strace : 시스템 콜을 추적하기 위한 도구
pid : 실행중인 프로세스에 할당되어있는 고유번호
strace 기본 사용법
- $ strace <commend(명령어)>
- $ strace -p <pid번호>
시스템 호출 결과를 콘솔에 출력하지 않고 파일로 저장
- $ strace -o <output파일명>.txt <commend명령어>
생성된 파일을 다음과 같이 열어볼 수 있음.
시간과 시스템 호출 결과 출력
- $ strace -t ls : 타임스탬프
- $ strace -tt ls : 타임스탬프를 밀리세컨드까지 보여줌
- $ strace -T ls : 각 시스템 호출 소요 시간
시스템 콜 요약 결과 출력
- $ strace -c <command명령어>
$ whoami : 현재 사용자의 이름을 출력
실행 파일의 시스템 호출결과 필터링
$ strace -e trace=opne,read ls
프로그램이 실행되는 과정에서 시스템 콜은 빈번하게 호출되기 때문에 불필요하게 많이 호출하는 것은 당연히 성능에 좋지 않을 것이다. 어떤 프로그램의 성능을 밑단까지 끌어올릴려면 불필요한 시스템 콜이 얼마나 호출되었고 시간이 소요되었는지를 볼 수 있어야할 것이다. 이 과정에서 strace 도구는 유용하게 사용될 수 있다.