SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
はじめての DTrace(1)
“簡単なことからコツコツと”

shojih
今日の学習目標

 DTrace とはどのようなもの?
 DTrace を使うと何が便利?
 何から学習するといいだろうか?
DTrace とは?
動的トレース機能です。
(Dynamic Trace)
動的って何が?
トレース(観測)のON
とOFFが動的に切り替えら
れるのです。
通常はOFF。
dtrace(1M) 実行中は ON。
ON にすると。。。
稼働中のシステムで何が起
きているのか観測できます
数万の備え付けの観測ポイ
ントを利用できます
観測方法は
プログラミングできます
Dスクリプト(Dプログラム)
しかも安全に!
 「事件は会議室で起きてるんじゃない!
 現場で起きてるんだ!」




  観測はカーネルで起きてても
  dtrace はユーザーランドおきてます。
DTraceの仕組み
                        Dプログラム
                        ソースファイル
  a.d    b.d
                ..                            plockstat(1M)
                        intrstat(1M)
                .
        dtrace(1M)             lockstat(1M)                   DTrace
                                                ..            コンシューマ
                                                .
                          libdtrace(3LIB)
                                                              ユーザーランド
                           dtrace(7D)
                                                                  カーネル
                           DTrace

                                                                DTrace
         sysinfo           vminfo           fasttrap            プロバイダ
                                                         ..
   syscall           profile           fbt               .
                                                       sdt
でも注意も必要!
システムを丸裸にしてしまう
ので、許された役割でのみ
で使用可能です。
大人のツールなのです
DTrace でできることは?
計測点で、主に
- のぞく/見る
- 時間を計る
- 回数をカウントする
DTraceで覚えたいことば(1)
●   プローブ
     ● システムの計測点

     ● プロバイダ:モジュール:関数:名前


        Provider : Module : Function : Name
     ● dtrace - l で計測点が表示される

●   プロバイダ
     ● カーネルの中に実装済み

     ● プローブ機構の提供

        ● オンオフの制御

     ● システム計測方法のカテゴリに相当
DTraceで覚えたいことば(2)
 コンシューマ
 ●   DTrace機構とやりとりするプロセス
 ●   複数コンシューマの同時実行が可能
 ●   dtrace(1M)コマンドはコンシューマの一つ
プロバイダの種類(1)
●
    プロバイダの種類(1)
    ●   dtraceプロバイダ
         ●   DTraceの初期化、後処理、エラー処理
    ●   profileプロバイダ
         ● 単位時間ごとのシステム状態の標本収集
    ●   syscallプロバイダ
         ●
           システムコールのentryとreturnを計測
    ●   sysinfoプロバイダ
         ●   sysに分類されるカーネル統計情報の取得
プロバイダの種類(2)
●
    プロバイダの種類(2)
     ● vminfoプロバイダ

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

     ● procプロバイダ

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

        ● CPUスケジューリング情報の計測

     ● ioプロバイダ

        ● 入出力情報の計測
DTrace を使うと何が便利?
実はDTrace を使わないと
できないということはない。
proc tool や stat tool で
だいだいのことはできる。
UNIX シェルプログラミング
のように、知ってると何かと
便利なだけ。
でも使い出すと依存症にな
ることもあります。
さて、何から学習しましょう
か?
この後はアドリブで、



     次回につづく!

Weitere ähnliche Inhalte

Ähnlich wie DTrace for biginners part(1)

20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
Takuya Matsunaga
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
Hirotaka Kawata
 

Ähnlich wie DTrace for biginners part(1) (20)

システムコール
システムコールシステムコール
システムコール
 
MeeGo Seminar Winter Porting 20101209
MeeGo Seminar Winter Porting 20101209MeeGo Seminar Winter Porting 20101209
MeeGo Seminar Winter Porting 20101209
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
eBPFを用いたトレーシングについて
eBPFを用いたトレーシングについてeBPFを用いたトレーシングについて
eBPFを用いたトレーシングについて
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
godo m
godo mgodo m
godo m
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
 
Snapdragon-SCORER
Snapdragon-SCORERSnapdragon-SCORER
Snapdragon-SCORER
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell script
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
 
AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化AVX命令を用いたLJの力計算のSIMD化
AVX命令を用いたLJの力計算のSIMD化
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
 
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
エヌビディアが加速するディープラーニング ~進化するニューラルネットワークとその開発方法について~
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-tree
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
 
機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編機械学習 / Deep Learning 大全 (4) GPU編
機械学習 / Deep Learning 大全 (4) GPU編
 

DTrace for biginners part(1)