【レポート】
FreeBSD 8-CURRENTにおけるDTraceマージ/ビルドプロセス追加が着々と進んでいる。今後はシステムの動作統計をとるにあたって、従来のようにソースコードに変更を加えたり、sysctrl(8)値に統計情報を書き出したりといった処理を加えなくても、動的にオンザフライでシステムの統計情報が取得できるようになる。アプリケーションのソースコードに手を加える必要がなく、商用アプリケーションであっても計測とパフォーマンスボトルネックの解析ができる。FreeBSD 8の目玉機能のひとつとなるだろう。
FreeBSDではOpenSolarisやそれに類する技術が公開されてから、特にZFSとDTraceのFreeBSDへの移植が続けられてきた。5月6日(米国時間)から4日間にわたってJavaOne2008が実施されたわけだが、米Sun MicrosystemsはさらにOSS化を推進する姿勢を崩しておらず、現在CDDLのもとで提供されているZFSとDTraceは、場合によってはGPLのもとでの配布に変更される可能性がある。時期は明言されていないが、GPLに変更されてからはFreeBSDのみならずLinuxへの移植も進められるとみられる。
DTraceはもともとSolaris向けに開発されてきたダイナミックトレーシングフレームワーク。Solaris以外ではOpenSolarisに導入されているほか、Mac OS Xにも実装されている。Mac OS Xで実装されたDTraceがフラグを有効にするだけで特定のアプリケーション(たとえばiTunesなど)をトレース対象から外す機能を実装したため、DTrace本来の意義に反するとして反感意見を買ったのは記憶に新しいところだ。
DTraceではD Languageと呼ばれるスクリプト言語を組むことでシステムの情報をダイナミックにトレースできるようになっている。ここでのD LanguageとはDigital Marsによって開発されているD言語ではなく、DTrace向けに開発された専用のスクリプト言語のことをさす。C言語によく似たスクリプトで、C言語にawkやperlの機能を取り入れたような作りになっている。D LanguageはDTraceをもっとも特徴づける機能だ。
D Languageで記述する内容はイベント駆動形式になっている。計測したいイベントを指定し、そのイベントに対して何を実施するかを記述する。指定するイベントは、システムコールやプロセス情報などだ。D Languageは実行時にDIF形式で変換され、変換されたDIFデータがdtrace(8)によって解釈され実行される仕組みになっている。ソースに手を加えることなくシステムコールをフックして情報を取得できるというのはかなり強力な機能と言える。
DTraceは、OpenSolarisが公開される段階でほかのOSからも利用できるように公開されたものだ。ライセンスにはCDDL(COMMON DEVELOPMENT AND DISTRIBUTION LICENSE)を採用している。FreeBSDで使う場合には、カーネルモジュールを読み込んでDTraceを有効にしてからdtrace(8)コマンドを使ってトレーシングを実施する。dtrace(8)には直接命令を指定するか、D Languageで記述されたファイルを指定してトレーシングを実施する。
FreeBSDではlibdtrace(DTrace API)を叩くことでユーザランドアプリケーションからDTraceの機能が使えるようになっている。libtraceはデバイスioctlsを経由して排他的にdtrace(9)を使う仕組みになっている。デバイススペシャルファイルは/dev/dtrace/dtraceXだ。/dev/dtrace/dtraceXはDTraceクライアントごとに生成される。用意されているDTrace ioctrlsはPROVIDER、ENABLE、CONF、STATUS、GO、STOP、FORMATなど16ほどある。
DTraceの強力性はもちろんだが、特に注目すべきはすでに米Sun Microsytemsによって豊富なドキュメントが用意されている点にある。D Languageを使えば、ダイナミックトレースをスクリプト言語という形でノウハウとしてまとめておける。これまでに公開されているドキュメントやスクリプトサンプルは、今後DTraceを使ったFreeBSD開発やアプリケーション開発に大いに貢献することになるだろう。
DTraceは、デバッガではないし、自動的に何かをする機能でもない。指定したカーネル内イベントをトレースするための機能だ。特にパフォーマンスチューニングやボトルネックの解析に力を発揮することになるとみられる。FreeBSDデベロッパにおけるDTraceの活用も今後徐々に広がっていくことになるだろう。FreeBSDデベロッパは今後はデバッガ以外にもDTraceの活用を検討していきたい。
| FreeBSD、U-Boot対応で組込開発負荷軽減 - BSDCan2008 [2008/6/3] |
| 問題報告システムをより使いやすいものにするには? - BSDCan2008 [2008/6/3] |
| 急成長! FreeBSD/mips対応アプライアンス - BSDCan2008 [2008/6/3] |
| Jail + リソース制限機能、FreeBSD 8で登場か - BSDCan2008 [2008/6/3] |
| FreeBSD 7、1500%ピーク性能改善の裏にあるもの - AsiaBSDCon 2008 [2008/4/4] |
| GEOMでジャーナリング、UFSの機能を柔軟に拡張 - AsiaBSDCon 2008 [2008/4/4] |
| f.root-servers.netを支えるFreeBSDとBIND9 - AsiaBSDCon 2008 [2008/4/4] |
| 使いやすさ抜群! FreeBSDベースのデスクトップOS PC-BSD - AsiaBSDCon 2008 [2008/4/4] |
| FreeBSD 7.0登場 - 高負荷時ピーク性能が1500%改善 [2008/2/28] |
| FreeBSD 6.3登場 - 2010年1月セキュリティ対応期限 [2008/1/20] |
| 超高速HTTPアクセラレータ最新版"Varnish 1.1"登場 [2007/7/23] |
| 備えあれば憂いなし - pfSense/pfSyncでネットワーク管理を容易に [2007/5/24] |
| PCをNASサーバへ変身させる! かんたん本格派NASソリューション - FreeNAS登場 [2007/5/24] |
| 高速化プログラミングの参照実装としても活用される「Varnish」 [2007/5/24] |
| FreeBSDにおけるサーバ仮想化の取り組み [2007/5/21] |
| 足掛け7年のサクセスストーリ - マルチコアシステムで大幅に性能向上達成 [2007/5/19] |
| Ports Collection 17,000へ - インフラやメカニズムの改善へ着手 [2007/5/19] |
| インストーラが世代交代 - sysintall(8)からfinstallへ [2007/5/18] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
| マイナビ、3月より書籍連動型のクリエイティブ・デザイン系セミナー開講 [12:00 2/10] |
| Linux Mint 12 KDE登場 [10:26 2/10] |
|
【レポート】CP+2012 - フラッグシップの「D4」や「D800」など一眼レフが人気 - ニコン [20:05 2/10] 家電 |
|
あのヴォルデモート卿が主演兼監督! 映画『英雄の証明』が25日全国公開 [20:03 2/10] エンタメ |
|
マグレックス、1,900mAhのリチウムポリマー電池内蔵のiPhone 4S/4用ケース [20:01 2/10] 携帯 |
|
男性が萌える女子の仕草はこれだ! [19:53 2/10] ライフ |
|
[伊勢谷友介]2作目監督作完成に「超うれしい」 西島、森山と男子校トークさく裂 [19:50 2/10] エンタメ |