40장. SystemTap을 사용하여 커널 활동 프로파일링
다음 스크립트를 사용하여 함수 호출을 모니터링하여 커널 활동을 프로파일링할 수 있습니다.
40.1. SystemTap을 사용하여 함수 호출 수
functioncallcount.stp SystemTap 스크립트를 사용하여 특정 커널 함수 호출 수를 계산할 수 있습니다. 이 스크립트를 사용하여 여러 커널 함수를 대상으로 지정할 수도 있습니다.
사전 요구 사항
- Systemtap 설치에 설명된 대로 SystemTap을 설치했습니다.
절차
functioncallcount.stp 스크립트를 실행합니다.
# stap --example functioncallcount.stp 'argument'
이 스크립트는 타겟 커널 기능을 인수로 사용합니다. 인수 와일드카드를 사용하여 특정 범위까지 여러 커널 함수를 대상으로 지정할 수 있습니다.
스크립트의 출력에는 알파벳순으로 호출되는 함수 이름과 샘플 시간 동안 호출된 횟수가 포함됩니다.
다음 예제를 고려하십시오.
# stap -w -v --example functioncallcount.stp "*@mm*.c" -c /bin/true
다음과 같습니다.
- -w : 경고를 표시하지 않습니다.
- -v : 시작 커널의 출력이 표시됩니다.
-c 명령 : 이 예제에서는
/bin/true인 명령을 실행하는 동안 함수 호출을 계산하도록 SystemTap에 지시합니다
.출력은 다음과 유사해야 합니다.
[...] __vma_link 97 __vma_link_file 66 __vma_link_list 97 __vma_link_rb 97 __xchg 103 add_page_to_active_list 102 add_page_to_inactive_list 19 add_to_page_cache 19 add_to_page_cache_lru 7 all_vm_events 6 alloc_pages_node 4630 alloc_slabmgmt 67 anon_vma_alloc 62 anon_vma_free 62 anon_vma_lock 66 anon_vma_prepare 98 anon_vma_unlink 97 anon_vma_unlock 66 arch_get_unmapped_area_topdown 94 arch_get_unmapped_exec_area 3 arch_unmap_area_topdown 97 atomic_add 2 atomic_add_negative 97 atomic_dec_and_test 5153 atomic_inc 470 atomic_inc_and_test 1 [...]