タグ「dtruss」が付けられているもの

mac osx leopardでlinuxのstraceみたいに特定のプロセスで
どのようなシステムコールが呼ばれているか確認してみる
システムコールを覗いてみれば実際にUNIXのシステムが何を行っているか
確認できるのでチューニングやデバックに役立つはずである

特定のプロセスでのシステムコールの呼び出し数を確認する
 
# sc_usage プロセスID
Tornad(python)とRemedie(perl)のプロセスを確認してみる

Tornad(python)のchatサンプルを確認する # sc_usage 278
Tornado_sc_usage

Remedie(perl)のプロセスを確認する # sc_usage 293
Remedie_sc_usage>


特定のプロセスのシステムコールを時系列で確認する
 
# dtruss -p プロセスID
Tornad(python)のchatサンプルを確認する # dtruss -p 278
Tornado_dtruss

Remedie(perl)のプロセスを確認する # dtruss -p 293
Remedie_dtruss

実際にデバックで便利だったのは、
Apacheがcoredumpしてしまいゾンビプロセスが多数発生する状態になった時に
ログのフェーズに行く前にゾンビになってたので、
どのプログラムをディスパッチした時にエラーが起きているか判断するのに有効であった。

linuxでもstraceを行い macとカーネルコールの呼び出しの比較を行ってみるのも面白そうである。

参考にさせていただいたサイト :
strace on Mac OS X Leopard
Kernel Programming Guide