パスワードを忘れた? アカウント作成
5256 story

デスクトップを加速する新スケジューラー 20

ストーリー by Oliver
2.6が待ちきれない 部門より

yosshy曰く、"KernelTrap より。Intel Xeon 等に搭載されているハイパースレッディング対応のスケジューラの投稿が発端となり、Linux の著名なハッカー達が X やマルチメディアアプリケーションの応答性などについて議論や評価を重ねた成果が 2.5.65 に採用される予定です。これにより、X などの UI やストリーミング再生などマルチメディア系のアプリケーションの応答性が大幅に改善される事でしょう。
この新スケジューラ誕生劇は、皆でアイデアやサンプル実装を検討・評価するというオープンソースの成果の典型的な一例と思います。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • ちょいとタレコミからずれてるかもしれませんが
    HT対応スケジューラについての参考資料です。

    >Intel Xeon 等に搭載されているハイパースレッディング対応のスケジューラ

    http://lc.linux.or.jp/lc2002/detail.html#c12
    上記から引用
     論理 CPU 間での共有リソース競合を考慮する必要がある
     Hyper Threading 機能を持つ最新 CPU について、
     各スケジューラの性能測定および改良について検討する。

    去年のLinux Conference 2002で聞いた内容です。
    ここに論文やプレゼンのpdfがありHT技術の論理CPUなどに
    考慮したスケジューラについての研究結果が報告されています。

    #勘違いで全然関係なかったらマイナスモデお願いします。
    --
    -------------------------- 探し物は見つかりましたか? sk1y2k
  • by Anonymous Coward on 2003年03月15日 15時39分 (#279405)
    http://members.optusnet.com.au/ckolivas/kernel/ に
    2.4.20にあてられるDesktop Tuning のパッチがあります。
    これは、ここで紹介されているHTとはちがうのでHTがつかえない
    マシンでもOKです。
  • KernelTrapのStoryの先にあるIngo Molnar氏のメールに登場するプロトタイプの作成者の中島淳氏ですが、 今年の1月31日、わざわざ来日(帰国?)していただいて、OSDL-Jの Linux カーネルシンポジウム in Yokohama Vol. 3 [www.osdl.jp]で講演してもらいました。
    プレゼン資料[英語] Enhancements for Hyper-Threading Technology in Linux - Looking at the Micro-Architecture Level [www.osdl.jp]が公開されていますので、ご参考まで。
  • by trueOne (134) on 2003年03月16日 1時35分 (#279810)
    タイミング良く、developerWorks@IBMにも関連記事 [ibm.com]が出てますね。
    --
    trueOne
    • 参考になりました。
      でも、やってるベンチマークがしょぼい:-P

      うまく説明できなくて、なおかつ当たり前ですけど、
      単純なSMPじゃないんですよねえ。だから従来のSMP対応の
      Windows 2000では性能が出ないのといっしょかな。

      Intelが言う注意点はスピン・ウェイトだったかなあ。
      デベロッパーサイト [intel.com]にはWh

  • だったら素晴らしいですね。
    • どういう仕組みなのか詳細不明なのですが、2.4.xまでのスケジューラは純粋なTSSのため、マルチメディア系の処理が駄目駄目なんですよねぇ。
      2.5.2+で、MontaVistaの0(1)スケジューラが取り込まれていますが、これも謳い文句の割にはマルチメディア系の処理はイマイチなようで。
      きめ細かいスレッド処理が可能なスケジューラなら、通常のシングルCPUでのスレッド処理でも、効果はあるでしょうね。
      親コメント
      • O(1) スケジューラの肝は、スケジュールするべきプロセスの選択にかかるオーバーヘッドが一定(プロセス/スレッドが増えても増加しない、Orderが定数(1)である)ことです。

        一方、マルチメディア系で求められるのは、応答時間が保証されるリアルタイム性ですから、スケジューリングの戦略が異なります(両立は容易ではない)。

        古い実装だとプロセス増加でスケジューリングのオーバーヘッドが増え、特にマルチプロセッサのとき顕著だ、ということです。オーバーヘッド増加の原因としてスケジューリングでアクセスするプロセス情報がメモリの広範囲に及ぶ(キャッシュミスを起こしやすい)と言うのがあり、この問題を解決すると、マルチプロセッサや HT での性能はもちろん、従来のプロセッサでも性能が上がります。

        前から BSD に比べて Linux のスケジューリング(高負荷時の応答性、バックグラウンドでコンパイルしてるときシェルの応答性とか)が悪いなぁ、と思っていたんですが、まんざら気のせいでもなかったようです。高負荷時のパフォーマンスは BSD の方が良いというのはスケジューラの出来の差でしょう(TCP スタックの出来もあるけど)。 まあ、高負荷な状況で使う人じゃないとあまり違いはないんでしょうけどね。

        --
        親コメント
        • by Anonymous Coward on 2003年03月16日 13時02分 (#280070)
          Linuxの高負荷での問題の大きな原因はスケジューラよりも
          async mountにあると指摘しておきます。

          dirtyなメタデータの書き込みにはかなりのメモリと時間が 必要なのですが、async mountの場合は高負荷かつ メモリが足りない状況でこの処理が発生することが多く、 著しく性能が低下してしまいます。

          対策は行われつつあるので、近いうちに改善されることでしょう。
          親コメント
        • 古い実装だとプロセス増加でスケジューリングのオーバーヘッドが増え、特にマルチプロセッサのとき顕著だ、ということです。オーバーヘッド増加の原因としてスケジューリングでアクセスするプロセス情報がメモリの広範囲に及ぶ(キャッシュミスを起こしやすい)と言うのがあり、この問題を解決すると、マルチプロセッサや HT での性能はもちろん、従来のプロセッサでも性能が上がります。
          2.4.Xのスケジューラでキャッシュミスが多発するのは"メモリの広範囲"にアクセスするからではなくて、task_struct が8KBでアラインしているためにキャッシュコンフリクトをおこすからです。メモリプロファイリングをすると一発でわかります。
          http://hardmeter.osdn.jp/prosym.pdf あたりを参照してください。
          親コメント
      • >>MontaVistaの0(1)
        0(1)じゃなくてO(1)です。
        MontaVistaではなく、Ingo Molnarです。
  • by Zerow_jp (945) on 2003年03月19日 7時59分 (#282158) 日記
    2.5.65を使ってみたが、確かに素晴らしく反応がよい。
    高負荷下での応答性は2.4のスケジューラより良いのではないかと思いました。
    ただ、LKMLで流れたベンチマークテストの結果では、性能が最大で半分まで
    落ち込んでいたのが気になります。

    あ、あとOpenOfficeはやっぱり動かなかったw
    --
    -- By Grabthar's Hammer!
  • by Anonymous Coward on 2003年03月16日 13時40分 (#280089)
    Linusの数行のパッチが読めずにちとショックを受けますた。
    勉強しなおしだわさ~
    • by Anonymous Coward on 2003年03月17日 6時36分 (#280489)
      O(1)スケジューラでの挙動は、使ってればわかるけど、後ろでmake -j4
      とかすると、フロントエンド(特にX)での応答性が、極端に悪くなります。みんなこの点に不満だらけだったの。Ingoは「niceして」と言っていたけど、Linusは「いちいちniceするなんて!」と言って、この点の改善に乗り出したわけ。
      sleep_avgは、コードからだと、sleepしている時間で、これが長いものを調べて、割り込みの延長にあるもの(応答性が必要)ではないものについては、わざとsleepしていた時間を、短く記録するの。
      この値は、タスクがランキューに入る時の優先度ボーナスの要素なので、これが小さいタスクは、低い優先度しか与えられないの。つまりサービスは優先度が低くなる、というパッチなのね。
      bk10では最大優先度の実行時間も短く(200ms)抑えられているようなので、効果はあるのかもね。

      #笑い男なのでAC
      親コメント
typodupeerror

Stableって古いって意味だっけ? -- Debian初級

読み込み中...