Red Hat Training
A Red Hat training course is available for RHEL 8
第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 コマンド : コマンドの実行中に関数呼び出しを数えるように SystemTap に指示します (この例では
/bin/true
)。この出力は、以下のようになります。
[...] __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 [...]