26
はじめての DTrace(1) “簡単なことからコツコツと” shojih

DTrace for biginners part(1)

Embed Size (px)

Citation preview

Page 1: DTrace for biginners part(1)

はじめての DTrace(1)“簡単なことからコツコツと”

shojih

Page 2: DTrace for biginners part(1)

今日の学習目標

DTrace とはどのようなもの? DTrace を使うと何が便利? 何から学習するといいだろうか?

Page 3: DTrace for biginners part(1)

DTrace とは?

Page 4: DTrace for biginners part(1)

動的トレース機能です。(Dynamic Trace)

Page 5: DTrace for biginners part(1)

動的って何が?

Page 6: DTrace for biginners part(1)

トレース(観測)のONとOFFが動的に切り替えられるのです。

Page 7: DTrace for biginners part(1)

通常はOFF。dtrace(1M) 実行中は ON。ON にすると。。。

Page 8: DTrace for biginners part(1)

稼働中のシステムで何が起きているのか観測できます

Page 9: DTrace for biginners part(1)

数万の備え付けの観測ポイントを利用できます

Page 10: DTrace for biginners part(1)

観測方法はプログラミングできますDスクリプト(Dプログラム)

Page 11: DTrace for biginners part(1)

しかも安全に!「事件は会議室で起きてるんじゃない!現場で起きてるんだ!」

観測はカーネルで起きててもdtrace はユーザーランドおきてます。

Page 12: DTrace for biginners part(1)

DTraceの仕組み

DTrace

dtrace(1M)

b.da.d

intrstat(1M)

lockstat(1M)

plockstat(1M)

libdtrace(3LIB)

..

.

..

.

dtrace(7D)

sysinfo vminfo fasttrap

profile fbt sdtsyscall

..

.

Dプログラムソースファイル

DTraceコンシューマ

DTraceプロバイダ

ユーザーランド

カーネル

Page 13: DTrace for biginners part(1)

でも注意も必要!システムを丸裸にしてしまうので、許された役割でのみで使用可能です。大人のツールなのです

Page 14: DTrace for biginners part(1)

DTrace でできることは?

Page 15: DTrace for biginners part(1)

計測点で、主に- のぞく/見る- 時間を計る- 回数をカウントする

Page 16: DTrace for biginners part(1)

DTraceで覚えたいことば(1)● プローブ

● システムの計測点● プロバイダ:モジュール:関数:名前 Provider : Module : Function : Name● dtrace - l で計測点が表示される

● プロバイダ● カーネルの中に実装済み● プローブ機構の提供

● オンオフの制御● システム計測方法のカテゴリに相当

Page 17: DTrace for biginners part(1)

DTraceで覚えたいことば(2)

コンシューマ● DTrace機構とやりとりするプロセス● 複数コンシューマの同時実行が可能● dtrace(1M)コマンドはコンシューマの一つ

Page 18: DTrace for biginners part(1)

プロバイダの種類(1)

● プロバイダの種類(1)● dtraceプロバイダ

● DTraceの初期化、後処理、エラー処理● profileプロバイダ

● 単位時間ごとのシステム状態の標本収集● syscallプロバイダ

● システムコールのentryとreturnを計測● sysinfoプロバイダ

● sysに分類されるカーネル統計情報の取得

Page 19: DTrace for biginners part(1)

プロバイダの種類(2)● プロバイダの種類(2)

● vminfoプロバイダ● vmに分類されるカーネル統計情報の取得

● procプロバイダ● プロセス、LWP、シグナルの計測

● schedプロバイダ● CPUスケジューリング情報の計測

● ioプロバイダ● 入出力情報の計測

Page 20: DTrace for biginners part(1)

DTrace を使うと何が便利?

Page 21: DTrace for biginners part(1)

実はDTrace を使わないとできないということはない。

Page 22: DTrace for biginners part(1)

proc tool や stat tool でだいだいのことはできる。

Page 23: DTrace for biginners part(1)

UNIX シェルプログラミングのように、知ってると何かと便利なだけ。

Page 24: DTrace for biginners part(1)

でも使い出すと依存症になることもあります。

Page 25: DTrace for biginners part(1)

さて、何から学習しましょうか?

Page 26: DTrace for biginners part(1)

この後はアドリブで、

次回につづく!