현재 trace-cmd
(ftrace 프런트 엔드)에 ftrace의 기능 그래프 인프라를 사용하여 지정된 작업을 추적 할 수 있습니다. 일부 추적 데이터 처리 도구를 사용하여 함수가 호출 된 빈도와 각 함수 호출의 해당 총 지속 기간을 볼 수 있습니다. 예 출력이 내 작업 부하에 의해 생성 된 ext4 함수 호출 추적 다음과 같이 보일 수 있습니다 : 나는 eBPF
생성 할 수있는 놀라운 flame graphs 본 적이eBPF 또는 perf를 사용하여 개별 추적 함수에서 소비 한 시간을 계산할 수 있습니까?
# trace-cmd post-processing example output
# function name, frequency, total duration (us)
ext4_alloc_inode(),1,35.567
ext4_read_inode_bitmap(),1,12.076
ext4_init_io_end(),2,41.216
ext4_journal_check_start(),39,716.3
ext4_da_write_end(),10,102.661
ext4_da_get_block_prep(),9,257.46999999999997
ext4_block_write_begin(),2,88.069
ext4_bio_write_page(),1,33.016
, systemtap
, perf
등에 저를 인도하는 나는 perf
또는 eBPF
을 사용하여 내 trace-cmd
출력과 비슷한 출력을 얻을 수 있어야한다고 생각합니다. 그러나, 몇 가지 장애물이 있습니다
- 내 부하 내가
perf
를 사용한다면 엄청난 로그를 생성 할 수있는 최대 15 분 동안 실행할 수 있습니다. 참고로, 더 짧은 시간 동안 bash를 추적 한 example output을 볼 수 있습니다. - 후불 출력 예
trace-cmd
과 비슷한 데이터/출력을 얻을 수 있는지 여부를 확인하려면 충분히 익숙하지 않습니다.eBPF
eBPF
또는 나보다perf
더 잘 알고있는 분들을 위해
, 내가 알고 싶습니다 :
- 내 목표를 달성하기 위해
eBPF
또는perf
를 사용할 수 있습니까? - 그렇다면 왜 가능합니까?
내 목표를 달성하는 데 도움이되는 샘플 코드/명령을 사용하면 만족할 것입니다.