カーネル読書会に参加してきた

第95回カーネル読書会に参加してきました。

今回のお題は、「Linux Collaboration Summit出張報告」で、以下の3セッションでした。

(1)全体報告 鈴木さん
参考URL http://itpro.nikkeibp.co.jp/article/NEWS/20090414/328333/
(2)Moblin 天野さん
参考URL http://moblin.org/
(3)GreenIT 大岩さん

全体報告

まず、鈴木さんから、Linux Collaboration Summitの全体報告がありました。

IPAの「リナックスにおけるグリーンITの調査研究」の調査ということで、このサミットに参加したようです。

内容は、全体報告なので、技術的にはそこまで突っ込んだ話はされなかったんですが、普段耳にしない単語がちょこちょこ出てきました。

Moblin

次に、Moblinについて、天野さんが発表されました。
Moblinとは、Linuxプラットフォームの構築を推進するOSSプロジェクトだそうです。

Tizen | An open source, standards-based software platform for multiple device categories.


主に、Net Book向けで、ディストリビューションになってるようで、もちろん、普通のPCにインストールすることも出来ますが、デバイスドライバ無いとかあって面倒なようです。

このセッションで、興味深かったのは、Connection Managerの話でした。

Connection Managerとは、次世代のネットワーク管理ユーティリティで、IPアドレスの割り当て、接続方式、通信方式など全てプラグイン形式になっています。
現在の、Network Managerでは、拡張が困難なので、Moblinで新しく作っちゃえって感じのようです。
今後、VPNなど様々な接続方式に対応していくようです。

また、Clutterというのも使ってみたいなと思いました。
僕は、Clutterというのを今回初めて知ったのですが、簡単にいうと、OpenGLを簡単に使えるようにするための、APIだそうです。
非常に簡単に、2D/3Dのアニメーションを作れるとのことです。

あと、自分がWeb業界にいるからか、librestにも少し、興味が惹かれました。
restとは、名前通り「REST」を扱うライブラリで、WebサービスGUIをつなげるものです。
サミットでは、Flickerや、Twitterを使ったアプリケーションを10数行で作れるというデモがあったそうです。

Green IT

最後は、大岩さんの、Green ITについての発表でした。

  • Green by IT

ITを積極的に、かつ有効に活用することで、CO2排出量を削減する取り組み

  • Green of IT

ITに関連する電力消費を削減することで、CO2排出量を削減させる取り組み

  • データセンターのGreen IT

建物の場所や、冷却方法など、ITというより、建物、設備。

  • デスクトップのGreen IT

クライアントPC(シンクライアント)や、省電力PCを使うというもの。
また、サーバでは、仮想化で、リソースを有効活用出来るが、デスクトップPCでは難しい。
→そもそも、問題はそこじゃなくて、Linuxには、ちゃんと省電力機能が実装されてるのに、それがあまり使われていないのが問題だ

ARP要求などにPCではなくアクセスポイントが答える
→ノートPCはアイドル状態でいられる

こういうこと


これは、僕には、全く無かった発想だったので、おもしろかったです。

  • mc/ smt power saving policy

CPUの省電力ポリシー。今までは、パフォーマンス重視なため、CPUが複数ある場合、うまい具合にロードバランスしていたが、それでは、電力をくうから、特定のCPUに処理をまとめて、ほかはスリープしときましょうってこと。

  • Powertop

topっぽいコマンド。アプリケーションの起床回数を表示する。
起床回数が多いとそれだけ電力をくうので、異常に起床回数が多いアプリケーションを発見して改善しましょうってことです。

測定データが公表されていないので、実際に計測してみたら、少しは効果あり、サーバの台数が増えるととても効果的とのこと。

  • NICまわりを計測

LANケーブルをはずした影響を実際に計測。
計測したのは、以下の三つ

    • e1000
    • e1000e
    • e100

結果は、e1000、e1000eはLANケーブルをはずすと消費が下がるが、e100は下がらない。
そこで、パッチを作り、省電力化を試みた。

パッチのロジック

while(1){
    リンクアップをチェック。

    if (リンクダウン){
        省電力モードに切り替えて、10秒スリープ
        通常モードに切り替える
    }
}

確か、こんな感じだったはず。。。間違ってたら指摘してください。

結果は、通常モードに切り替えるときに、電力が異常に上がって、逆に増えてしまった。

ここで、会場から、様々意見があり盛り上がりました。

僕の記憶に残ってる意見は、以下。

    • 通常モードに切り替えるときにFAIをチェックしちゃっているので消費電力があがってるのではないか?
    • リンクアップの割り込みをとればいいはず
    • Gigabitは電力を食うので、コントローラが落とせるときは落とすように工夫されてるが、e100とかは大した電力じゃないのでされてない。

皆さん、すごいです。

最近までは、仮想化が取り上げられていたけど、大分落ち着いて、今はデバイスの方に移ってきている。


ちょっと時間がたってしまったので、うろ覚えの所もありますが、大体こんな感じでした。

講演が終わったあとは、ピザとビールの懇親会。
何だか、とっても健康には悪そうですが、もちろん参加しました。

懇親会で、特に印象に残っているのは、CPUのキャッシュラインの話でした。

今のCPUは、ほぼ全て32バイトなので、データブロックは、キャッシュライン境界をまたがないように配置したほうが効率が良いそうです。


つまり、こういうことかなと思います。


今回初参加だったのですが、非常に楽しかったです。
また、次回参加したいと思います。