저는 Linux perf_events
프레임워크를 사용하여 우리 서버 중 하나에 있는 애플리케이션의 문제를 조사하려고 합니다. perf
도구에 대해 읽은 내용에 따르면 스택을 수집하는 것은 비교적 간단합니다.
단순히 N초마다 스택을 수집하는 이벤트로 벽 시간을 사용할 수 있는지 궁금합니다.
현재 사용하고 있는 명령은 다음과 같습니다.
perf record -e cycles -T -o <dir>/samples.data -F 1 --call-graph dwarf -T -p <pid>
현재 이해에 따르면 명령은 -F 1
perf 명령이 신호에 의해 종료될 때까지 1초마다 프로세스()에서 샘플링()하고 스택()을 가져옵니다.-g
-p <pid>
그런데 제가 수집한 데이터에 따르면 초당 샘플 세트가 두 개 이상인 것 같은데요? 그래서 샘플 수집 방식을 오해하거나 오해한 것 같습니다 perf
.
또한 수집되는 데이터의 양을 줄이기 위해 2초, 5초 또는 10초마다 스택을 기록하려면 어떻게 해야 합니까? 이것을 달성할 수 있는 방법이 있나요 perf
?