ablog

不器用で落着きのない技術者のメモ

SystemTap

iostat はどのように %util を算出しているか(2)

iostat はどのように %util を算出しているか - ablog でソースコードから追ってみたが静的な追跡だけだとしんどいので、動的な追跡もやってみた。strace を使って iostat でオープンしているファイルを調べて、 [root@www****** ~]# strace -e open iostat …

SystemTap を使おうとすると"Missing separate debuginfos"とエラーが出る

こんなスクリプトを作って、 [root@www****** ~]# cat diskstats_show.stp #!/usr/bin/stap -v probe kernel.statement("*@*block/genhd.c:1078") { print_backtrace() } 実行すると、 [root@www****** ~]# ./diskstats_show.stp Pass 1: parsed user script…

SystemTap で Linux のカーネル内のコールスタックを見てみる

SystemTap を使って Linux カーネル内のコールスタックを見てみた。 submit_bio.stp probe kernel.function("submit_bio"){ printf("%s[%d]\n",execname(),pid()) print_backtrace() } 実行結果 [root@localhost ~]# stap submit_bio.stp kjournald[316] 0xc…

SystemTap で特定のプロセスが発行したシステムコールを表示する

スクリプトを用意する targeted.stp probe syscall.* { if ( pid() == target() ) printf("Syscall: %s\n",name) } 実行してみる モニタリングするプロセスを起動する $ ping localhost モニタリングしたいプロセスのPIDを調べる。 $ ps -elf|grep [p]ing 4 …