twitter icon   twitter icon   rss icon

Linux.com Japan

Home 特集 仕掛け人に聞く 「LinuxCon Japan 2010 トレーシングミニサミット」仕掛け人 平松 雅巳氏

仕掛け人に聞く 平松雅巳氏

第一回目は、2010年9月27日~29日に六本木ヒルズで開催されたLinuxCon Japan 2010 において、トレーシングミニサミットを仕掛けた、(株)日立製作所の平松さんにお話を伺いました。(インタビュア:杉田 由美子 The Linux Foundation)

 


杉田:  最初に、現在、平松さんがどのようなコミュニティ開発をしているかを教えて下さい。


平松:  現在は、Linuxカーネルの中のパフォーマンスモニタリング用のツールの機能のうち、ダイナミックイベントというカーネルの中に動的にイベントを追加するという機能開発を担当しています。


杉田:  それは、例えば、“kprobesを使ってperf toolsなどで使えるイベントを追加する”ような機能でしょうか?


平松:  はい、そうです。またその機能開発だけではなく、kprobes自体のメンテナも担当しています。


杉田:  なるほど。2010年9月に行われたLinuxCon Japanでトレーシングのミニサミットのモデレートしたのは、トレーサやパフォーマンスツール関係の開発者兼メンテナだったからなのでしょうか?


平松:  はい、そうです。トレース関係者は、最近、それぞれのサブシステムごとに集まってサミットを開催しています。トレーシングミニサミットも、2010年に4回行われました。そのサミットに日本人は参加していますが、いつも数人です。今回は日本での開催ということもあり、ぜひミニサミットを行いたいと思いました。というのも、日本の開発者やユーザにはトレーサの使用者が多いと感じており、彼らが必要とするトレーシング技術を実現するためにも、直接、各トレーシング技術の開発者達に要望を伝え、議論して欲しかったのです。


杉田:  そもそもトレーサ/トレーシングとはどういうもので、どう役に立つのでしょう?


仕掛け人に聞く 平松雅巳氏 平松:  そうですね。開発した機能をテストした時、もしくは運用の現場で、障害や予期しない処理がおきることがあります。それが解決しないことには製品出荷できないし、運用も続けられない。そういう時に役立つ、カーネル内の動きを知るツールがトレーサです。
基本的にオペレーティングシステムの場合、その動作を、実行を止めずに確認することは難しい訳です。そうすると、デバックのやり方としては、オーソドックスな方法はprintkを使うことです。あるタイミングでの特定のシステム情報をprintkを使って出力し、自分の意図したように動いているか状態を確認する。実は、これはトレーシング機能そのものなんです。でもprintkだとオーバヘッドもかかるし、収集したい情報を動的には増やせないため、運用の現場では使えない。開発者もそれは良くわかっていて、色々工夫をして今のトレーサを開発してきたわけです。
例えば、Red Hat Enterprise LinuxにはSystemTapというツールがあって、障害の起きている運用現場で、または再現させた状況で、どういうことがカーネル内で起きているかを知ることができる。オペレーティングシステムの場合、ひとつの関数のコード規模が大きく、基本的にマルチスレッドで動いて、しかも非同期割り込みが入ることもあり、複雑に動作するのですが、それを見える化できる。それによって、障害の原因、もしくは、ロジックを特定していくことが比較的に容易にできるようになってきました。分岐に入ったとか、ここでこの関数が呼ばれていないとか、システムがビジーなのはどこで処理がおこなわれているせいなのか、そういったことを見ることができるので、どこのリソースを増やせば性能が上がるとか、どの処理のアルゴリズムを改善する必要があるとかを、判断できるようになってきました。また、性能チューニングツールとして使うこともできる。つまり、開発時のデバッグから障害解析、チューニングにも使えるツールであり、サポートグループの人たちにも開発者にも有用なんです。

杉田:  そんなに良いものならば、みんなが使ってくれるでしょうし、機能への要望も多いのでは?


平松:  いいえ、それがそうでもないんです。ユーザや他の開発者に聞くと、「使いたいけど、現場でトレーサを使うには色々な知識が必要で難しい、欲しい情報をどうすれば取れるかわからない」などの意見が結構あります。先程述べた利点は、“トレーサを使いこなすことができれば得られるもの”だったということです。ですので、今使っている人たちも、トレーサを熟知している技術者が多いようです。その人たちからも、もっとオーバヘッドが少なく、必要な情報を、もっと簡単に、取りたいという意見が出ています。
  ただ、その要求が開発コミュニティにまで届かない。届いても、どう使うから欲しいのかなどの背景がわからないため、開発に踏み切れないことが多いのです。
もっと使ってもらうためには、現場からの要望を直接開発者に伝えて議論することが必要でした。でも現場で使ってくれる人達は、なかなか海外のカンファレンスやサミットに参加できません。そこで今回、日本で開催するというメリットを活かし、直接議論を行う場を作りたいと考えました。


杉田:  なるほど。ミニサミットを仕掛けた背景が良くわかりました。
ところで、今回選ばれたトレーシングの種類は、SystemTap、Ftrace、Perf toolsだったと思いますが、発表者はどういう人たちで、なぜその人たちを招聘しようと思ったのでしょうか?


平松:  ミニサミットで議論する対象は、Linux カーネルの中にすでにはいっている、お客さん先ですでに使われて、日本の企業でも使っているトレーシング技術をメインにしたいと考えました。加えて、その技術をコミュニティ開発で活発に行っているメンテナクラスに参加して欲しいと思いました。そこで選んだのがSystemTap, ftrace, perf toolsです。
SystemTapはRed Hat Enterprise Linuxでサポート対象になっている技術であり、日本でも使っている人が多いと思っています。自分も5年くらい前から開発に参加して、顧客環境で使うために必要な機能を追加してきたので、機能も開発状況も良く知っています。FtraceはLinux カーネルのトレーサの事実上のデファクトスタンダードになっています。そのため、日本の開発者・ユーザの関心も高いだろうと思いました。最後にPerf toolsですが、これはパフォーマンス情報を取得するためのツールです。このPerf toolsは、最近、トレーシング機能も兼ね備えてきていますので、知っておくと便利だと思いました。他にもトレーシングツールは色々あるのですが、少なくともこの3つはカバーしたかったのです。
そして、招聘した開発者ですが、他のカンファレンスで行われたトレーシングサミットの状況についても、知りたい人が多いと思いましたので、まずはそこでモデレータを務めたOracleのElena(Elena Zanonni)に概要説明をお願いしました。彼女が現在のトレーシングの状況を説明してくれたおかげで、その後の各ツールの説明も理解しやすかったと思います。SystemTapは、開発者側代表として自分が説明しました。FtraceはRed HatのSteven(Steven Rostedt)にお願いしました。彼はftraceのメンテナです。彼は日本での発表をとても楽しみにしていて、実際、ミニサミットでも活発に議論して盛り上げてくれました。Perf toolsのメンテナはRed HatのIngo(Ingo Molnar)とArnaldo(Arnaldo Carvelho de Melo)なのですが、残念ながら彼らにはいろいろな事情により、今回は参加が叶いませんでした。でもPerf toolsのコア開発者であり、カーネル内部の機能を開発しているPeter(Peter Zijlstra)が発表を引き受けてくれました。まさにディープなことを議論するのに相応しい人たちが集まってくれたわけです。また、彼らは皆、メンテナや発表者としてだけではなく、友人としても、このミニサミットの進行で私を支えてくれました。


杉田:  日本に来て発表しないかと誘ったときに、彼らはどのような反応を示しましたか?


平松:  日本に関心が高かったようで、すぐにOKの返事をもらいました。実は、日本のミニサミットに参加したいと言ってくれた人が他に何人もいたのですが、予算や日程の都合で結局参加できなかったようです。残念でした。


杉田:  ミニサミットの全体の盛り上がりはどうでしたか?


平松:  カンファレンスのトラックとしては良かったと思います。発表の順序なども流れとしてよかったし。聴講者も多かったですし、熱心に聴いている方も多いようでした。だた、会場からの質問が少なかったのが残念ですね。もっと意見を言い合うようなセッションにしたかったのですが。。。。 やはり日本人はシャイなのかなぁ。どこまで役に立ったか、どう使用しているのかなどのフィードバックを得るのは、今後の課題ですね。それから、コア開発者がもっと参加していれば、喧々諤々とした議論ができて、聞いている人たちにも面白かったかもしれません。コミュニティで、どういう議論をして開発を進めているのかを知ってもらうことも大切だと思うので、次に機会があればぜひやってみたい。
また、「ユーザとメンテナのパネルディスカッション」では、パネラの人たちが激しく意見を交わすこともできたのでよかったですね。最後の仮想化ミニサミットとの合同パネルも、お互い仮想化の面から、トレーシングの面から、それぞれの意見を言い合って、どこで問題になっているのか、かなりはっきりさせられたと思います。


杉田:  「ユーザとメンテナのパネルディスカッション」では、使っていて困っているので直して! などの意見は出ました?


平松:  うーん。困っている、という意見ではありませんでしたが、どういう使い方をしているかの説明や、こうして欲しいという要望が出ました。開発者側が想定していなかった使い方もあり、意識あわせができたと思います。例えば、企業ではフライトレコーディング機能やマルチセッションで情報を取る機能などの要望が出たのですが、メンテナからは開発の優先度を上げるとの話がありました。
  これまでは、ユーザからは、機能としてこういうものが欲しいという要望を開発者に伝えるだけだったのですが、実際Face to Faceで話して、お互いに開発の目的・利用の目的を確認しあって、それだったら、こう開発すれば良いのではないか、こう使えばよいのではないか、という提案があったり、こういう理由でこの機能を作ってないんだ、という話が出たり、今まで知らなかったことを聞くことができたと思うので、本当に良かったと思います。


杉田:  今回テーマにした3つの機能に関して、ミニサミット効果のようなことはありましたか? 例えば、ミニサミット後に開発や仕様検討に関して何か動きがあったとか?


平松:  ありました! 今年はトレーシングサミットが4回あったのですが、4月のCollaboration Summitでは現状の把握、8月のLinuxCon North Americaではユーザの話が中心でした。これに対して、9月のLinux Con Japanでは、この3つの機能を統一するにしてはどのような機能が必要かなどを話し合い、要求をまとめることができました。これは大きな一歩でした。
実は、その後、11月に開催されたカーネルサミット(Kernel Summit(*))でその内容を報告し、また、その直後に開催されたPlumbers Conferenceで他の開発者とも話し合い、統合の方向で検討していくことを合意したのです。ただし、すぐに統合というわけには行かない。どこを削ってどこをとるかなど、つめ切れてない項目も多いので、どのような方法でいつ統合するかは、まだ議論中です。でも、今まで話題には出ていても何も進まなかった統合について動きが出てきたことはミニサミット効果だと思います。

*) その年の最も優れたLinux Kernel の開発者が集まる会合。毎年1回開催される。このサミットへ参加できるのはLinus Torvals氏から招待された者のみで、通常80人程度。


杉田:  なるほど! 大きな一歩ですね。ミニサミットでFace to Faceで話し合うことがいかに重要かということが良くわかります。
ところで、平松さんはカーネルサミットに招待されていたのですね。おめでとうございます。そして、そのカーネルサミットで今回の進捗を報告できたのはすごい成果ですね。メンテナの皆さんの反応はいかがでした?


平松:  実は、これに一番興味を持ってくれたのはLinusだったんです。 彼が不満に思っているのは、細かいトレース機能のことではなく、何をしたいかに応えていないこと。“自分のデスクトップ上でアプリケーションが遅い理由が何で、それを解消するにはどうしたらよいか、ということがわかるツール”など、目的に合わせたトレーシングが欲しいと言っていました。“何でもできる”ではなく、“これがしたいならばこの機能/この使い方”がすぐにわかるツールが欲しいということですね。


杉田:  確かに、たいていの場合、目的にあった情報だけが欲しいのであって、いらない情報を提供されても邪魔かもしれませんね。それに、その情報を取るせいでオーバヘッドがかかるのでは意味が無いですし。実現できると、カーネルに詳しくないユーザにとってもありがたいですね。


平松:  そうですね。そこで、この1週間後、linutronix GmbH のThomas(Thomas Gleixner)がIngoと一緒に、Perf Toolsの一部の機能を改良して、straceと同じようなツールtraceをサンプルとして開発しました。システムコール、スケジューラ情報, 割り込みなどを表示できます。traceというコマンドで、straceと同じようなインターフェースでより多くの情報が取れる。ただ、この機能がLinusへの返事、というわけではなく、そういう機能を作ろうと思えばこうすればできる、ということを示したという感じですね。
もちろん、我々はLinusから要望があっただけでこのような機能を検討しているわけではありません。利用者からの要望を聞いて検討しています。今は、Enterprise分野とかデバックに使うならどういう機能が必要かなど、用途と機能の整理が必要と考えています。
また、デバッガであるKGDB、KDBの開発者からも、トレーサと機能がかぶる部分は統合を考えていきたいと言われていますし、方向性としては、基本機能を共通化した上で、用途に合わせた提供形態を考える、という方向で進められればと思っています。


杉田:  今後の進展が楽しみですね。
ところで、話はミニサミットに戻りますが、ミニサミット開催で苦労した点はありましたか?


平松:  実は、事前準備が大変でした。こういう経験が無かったので、誰に相談すればよいのかでまず悩み、誰に来てもらうか、何を発表してもらうか、どの順番で発表してもらうかで悩みました。ある程度、頭の中に描いていたのですが、途中で、あの人も呼びたい、この人は来られない、などを考え始めると、大変でした。開発者の人たちと密にメールをやりとりして調整したのですが、日本で実施するとなると日程や旅費(予算)の調整もあるので、もう少し早い時期から動いたほうが良かったなぁと反省しています。また、ユーザ側の方々は、今回始めて会って参加をお願いした方もいましたので、引き受けて下さるか心配でした。結果的には取り越し苦労でしたけど。
さらに、公開されたプログラムを見たら、ミニサミットと関係の深いネタで別にCFPを出していた人がいることがわかって、ミニサミットへ組み入れる交渉をしたりとか、でも組み入れたらセッションがぎちぎちのスケジュールになってしまったりとか、思い出すといろいろありましたね。でも面白かったです。


杉田:  では、ミニサミットを開催して良かった点はありますか?


平松:  良かった点は、それぞれの開発者と直にメールでやり取りして、関係を深めることができたということですね。モデレータとして中心的な立場に立ってやることで、普段からの信用の大切さを実感しました。でも、今回やり遂げたことで、少しは彼らからの信用度が上がったような気がします。気がするだけかもしれませんが。また、特にユーザ側の人脈が広がったことも良かった点です。


杉田:  今回のミニサミットでやり残したことはありますか? 


仕掛け人に聞く 平松雅巳氏平松:  そうですね。日本の開発者、サポートの現場などで、実際にトレースを使ってこういうことに困っているのでこうして欲しいとか、実際のユースケースの紹介だとか、そういうことを深く広くできたらよかったのですが、そこまでできませんでした。今回機能を中心に話を進めたのですが、もっと目的ベースで、こういったことに使っているという事例や、こういったことができた・できなかったというような話が、事例として出てくると、リアリティがでると思っています。機能はいろいろ開発されているので、それをどう使っていくかの議論がもっとしたかったですね。つまり、今回のユーザとのパネルディスカッションをさらに深堀して、会場全体で喧々諤々と本音で議論できたらよかったなぁと。また、組込み系への適用も議論したかったです。
カーネルをあまり知らなくてもトレーサを使って問題を解決したいという人が結構いると思うので、それぞれの用途に合わせて、ユーザーインターフェイスを作り、それに対応するカーネル内部の機能も作っていくことが必要になるでしょう。それらのニーズも聞きたかったですね。

杉田:  最後に、Linux Con Japan 2011への意気込みや希望があれば教えて下さい。


平松: トレーサの議論がどのくらい進展するかによるのですが、何か進展があればまたミニサミットかBOFをやりたいですね。今回やり残したこともありますし。
トレーサのセッションの面白いところは、全く違う機能をトレーサに必要だと思っている人たちが集まっている。トレーサのイメージが人によって違うのでしょう。なので、継続的に議論をしていかないと、ばらばらな方向に開発が進んで、似たような機能が乱立してしまう可能性があります。だから小規模でもよいから、議論する場を作ることは続けたいですね。集まるメンバによっても話の内容が違うので、テーマを絞って少人数のBOFを行うのも面白い気がしています。また、カクテルパーティーや立食パーティーみたいなものとBOFをあわせると、もっと議論が活発になるかもしれませんね。
  いずれにしても、LinuxConは、技術面でもユーザニーズを収集する面でも、開発者にとって重要な場です。次回も参加して、大いに議論をしたいと思っています。


杉田: ぜひ、ミニサミットかBOFをモデレートして、議論を盛り上げて欲しいです。楽しみにしていますので、よろしくお願いします。今日はありがとうございました。




「仕掛け人に聞く」 バックナンバー

最新パッケージでサポートされたControl Group(以下cgroup)。今回は、その開発でメモリ管理部分のメンテナとして活躍し、ユーザにとって有用な機能の実現を仕掛けている、富士通株式会社の亀澤さんにお話を伺いました。cgroupの開発の動機や現在の状況、コミュニティ開発の様子などをお聞きしました... ...
第二回目は、2010年9月27日~29日に六本木ヒルズで開催されたLinuxCon Japan 2010 において、仮想化ミニサミットを仕掛けた、日本電信電話株式会社のフェルナンドさんにお話を伺いました... ...
第一回目は、2010年9月27日~29日に六本木ヒルズで開催されたLinuxCon Japan 2010 において、トレーシングミニサミットを仕掛けた、(株)日立製作所の平松さんにお話を伺いました... ...
Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ


Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!