Red Hat Training

A Red Hat training course is available for RHEL 8

40장. SystemTap을 사용하여 커널 활동 프로파일링

다음 스크립트를 사용하여 함수 호출을 모니터링하여 커널 활동을 프로파일링할 수 있습니다.

40.1. SystemTap을 사용하여 함수 호출 수

functioncallcount.stp 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
    [...]